aboutsummaryrefslogtreecommitdiffstats
path: root/videocodec/securevideo
diff options
context:
space:
mode:
authorAndy Qiu <junhai.qiu@intel.com>2013-07-16 15:09:21 -0700
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:02:52 -0700
commit27b6ed6d5d3a9b3f19ab1b10aa308a7dedb7cb83 (patch)
treeae7009358b5d9197163de314c2ee0fe447ba45b0 /videocodec/securevideo
parentaaefabb42927db20baba7e55bf7e16e607e581e2 (diff)
downloadandroid_hardware_intel_common_omx-components-27b6ed6d5d3a9b3f19ab1b10aa308a7dedb7cb83.tar.gz
android_hardware_intel_common_omx-components-27b6ed6d5d3a9b3f19ab1b10aa308a7dedb7cb83.tar.bz2
android_hardware_intel_common_omx-components-27b6ed6d5d3a9b3f19ab1b10aa308a7dedb7cb83.zip
Don't disable display IED after protected session is created
BZ: 106070 In CTP display iED was disabled to address RGB overlay issue. This approach is no longer needed with MDS/Stagefright/HWC workaround - when video is being prepared overlay will be disabled temporarily. This patch also cleans up code formatting issue. Change-Id: I691353feca60ab2f3d1f2ed59e8d1458b5dd647a Signed-off-by: Andy Qiu <junhai.qiu@intel.com> Reviewed-on: http://android.intel.com:8080/119103 Tested-by: Post, DavidX J <davidx.j.post@intel.com> Reviewed-by: buildbot <buildbot@intel.com> Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'videocodec/securevideo')
-rw-r--r--videocodec/securevideo/merrifield/OMXVideoDecoderAVCSecure.cpp73
1 files changed, 36 insertions, 37 deletions
diff --git a/videocodec/securevideo/merrifield/OMXVideoDecoderAVCSecure.cpp b/videocodec/securevideo/merrifield/OMXVideoDecoderAVCSecure.cpp
index 82ae149..b6a96d4 100644
--- a/videocodec/securevideo/merrifield/OMXVideoDecoderAVCSecure.cpp
+++ b/videocodec/securevideo/merrifield/OMXVideoDecoderAVCSecure.cpp
@@ -144,7 +144,7 @@ OMX_ERRORTYPE OMXVideoDecoderAVCSecure::ProcessorStart(void) {
}
LOGI("drm_wv_create_session: sessionID = %#x", sessionID);
- drmCommandNone(mDrmDevFd, DRM_PSB_HDCP_DISPLAY_IED_OFF);
+ //drmCommandNone(mDrmDevFd, DRM_PSB_HDCP_DISPLAY_IED_OFF);
int ret;
struct sigevent sev;
@@ -270,7 +270,7 @@ OMX_ERRORTYPE OMXVideoDecoderAVCSecure::PrepareDecodeBuffer(OMX_BUFFERHEADERTYPE
p->flag |= HAS_COMPLETE_FRAME;
if (buffer->nOffset != 0) {
- LOGW("buffer offset %d is not zero!!!", buffer->nOffset);
+ LOGW("buffer offset %lu is not zero!!!", buffer->nOffset);
}
IMRDataBuffer *imrBuffer = (IMRDataBuffer *)buffer->pBuffer;
@@ -278,41 +278,40 @@ OMX_ERRORTYPE OMXVideoDecoderAVCSecure::PrepareDecodeBuffer(OMX_BUFFERHEADERTYPE
p->data = imrBuffer->data + buffer->nOffset;
p->size = buffer->nFilledLen;
} else {
- imrBuffer->size = NALU_BUFFER_SIZE;
- struct drm_wv_nalu_headers nalu_headers;
- nalu_headers.p_enc_ciphertext = imrBuffer->data;
-
- // TODO: NALU Buffer is supposed to be 4k but using 1k, fix it once chaabi fix is there
-
- nalu_headers.hdrs_buf_len = 1024;
- nalu_headers.frame_size = buffer->nFilledLen;
- // Make sure that NALU header frame size is 16 bytes aligned
- nalu_headers.frame_size = (nalu_headers.frame_size + 0xF) & (~0xF);
- // Use same video buffer to fill NALU headers returned by chaabi,
- // Adding 4 because the first 4 bytes after databuffer will be used to store length of NALU headers
- nalu_headers.p_hdrs_buf = (uint8_t *)(imrBuffer->data + nalu_headers.frame_size + 4);
- nalu_headers.parse_size = buffer->nFilledLen;
-
- uint32_t res = drm_wv_return_naluheaders(WV_SESSION_ID, &nalu_headers);
- if (res == DRM_FAIL_FW_SESSION || !nalu_headers.hdrs_buf_len) {
- LOGW("Drm_WV_ReturnNALUHeaders failed. Session is disabled.");
- mSessionPaused = true;
- ret = OMX_ErrorNotReady;
- } else if (res != 0) {
- mSessionPaused = false;
- LOGE("Drm_WV_ReturnNALUHeaders failed. Error = %#x, frame_size: %d, len = %d", res, nalu_headers.frame_size, buffer->nFilledLen);
- ret = OMX_ErrorHardware;
- } else {
- mSessionPaused = false;
- LOGE("Drm_WV_ReturnNALUHeaders Succeeded. ret = %#x, NALU HDR Len: %d, Input frame_size: %#x ", res, nalu_headers.hdrs_buf_len, nalu_headers.frame_size);
- // NALU headers are appended to encrypted video bitstream
- // |...encrypted video bitstream (16 bytes aligned)...| 4 bytes of header size |...NALU headers..|
- uint32_t *ptr = (uint32_t*)(imrBuffer->data + nalu_headers.frame_size);
- *ptr = nalu_headers.hdrs_buf_len;
- p->data = imrBuffer->data;
- p->size = nalu_headers.frame_size;
- p->flag |= IS_SECURE_DATA;
- }
+ imrBuffer->size = NALU_BUFFER_SIZE;
+ struct drm_wv_nalu_headers nalu_headers;
+ nalu_headers.p_enc_ciphertext = imrBuffer->data;
+
+ // TODO: NALU Buffer is supposed to be 4k but using 1k, fix it once chaabi fix is there
+
+ nalu_headers.hdrs_buf_len = 1024;
+ nalu_headers.frame_size = buffer->nFilledLen;
+ // Make sure that NALU header frame size is 16 bytes aligned
+ nalu_headers.frame_size = (nalu_headers.frame_size + 0xF) & (~0xF);
+ // Use same video buffer to fill NALU headers returned by chaabi,
+ // Adding 4 because the first 4 bytes after databuffer will be used to store length of NALU headers
+ nalu_headers.p_hdrs_buf = (uint8_t *)(imrBuffer->data + nalu_headers.frame_size + 4);
+ nalu_headers.parse_size = buffer->nFilledLen;
+
+ uint32_t res = drm_wv_return_naluheaders(WV_SESSION_ID, &nalu_headers);
+ if (res == DRM_FAIL_FW_SESSION || !nalu_headers.hdrs_buf_len) {
+ LOGW("Drm_WV_ReturnNALUHeaders failed. Session is disabled.");
+ mSessionPaused = true;
+ ret = OMX_ErrorNotReady;
+ } else if (res != 0) {
+ mSessionPaused = false;
+ LOGE("Drm_WV_ReturnNALUHeaders failed. Error = %#x, frame_size: %d, len = %lu", res, nalu_headers.frame_size, buffer->nFilledLen);
+ ret = OMX_ErrorHardware;
+ } else {
+ mSessionPaused = false;
+ // NALU headers are appended to encrypted video bitstream
+ // |...encrypted video bitstream (16 bytes aligned)...| 4 bytes of header size |...NALU headers..|
+ uint32_t *ptr = (uint32_t*)(imrBuffer->data + nalu_headers.frame_size);
+ *ptr = nalu_headers.hdrs_buf_len;
+ p->data = imrBuffer->data;
+ p->size = nalu_headers.frame_size;
+ p->flag |= IS_SECURE_DATA;
+ }
}
// reset IMR size