diff options
author | Olivier Karasangabo <olivier@lineageos.org> | 2017-11-08 10:47:40 +0100 |
---|---|---|
committer | Olivier Karasangabo <olivier@lineageos.org> | 2017-11-08 10:47:40 +0100 |
commit | 75cd7e88ba66bf68baedc72e26edf68649963ef1 (patch) | |
tree | a15a389fe201d584cd06f23848c0555c5d759139 | |
parent | 1afe59f2c64a8ada01cee675efe88d23a201956b (diff) | |
parent | 0ac114a146f7fd0e5366fb2864cc0933a6127392 (diff) | |
download | android_hardware_qcom_media-lineage-15.0-caf-8994.tar.gz android_hardware_qcom_media-lineage-15.0-caf-8994.tar.bz2 android_hardware_qcom_media-lineage-15.0-caf-8994.zip |
Merge remote-tracking branch 'caf/LA.BF64.1.2.3_rb1.17' into HEADlineage-15.0-caf-8994
-rw-r--r-- | mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp | 12 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/venc/src/omx_video_base.cpp | 5 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp | 14 |
3 files changed, 22 insertions, 9 deletions
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp index 60aa2b0a..d1311f6c 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp @@ -6708,6 +6708,8 @@ OMX_ERRORTYPE omx_vdec::set_callbacks(OMX_IN OMX_HANDLETYPE hComp, OMX_ERRORTYPE omx_vdec::component_deinit(OMX_IN OMX_HANDLETYPE hComp) { (void) hComp; + OMX_ERRORTYPE nRet = OMX_ErrorNone; + OMX_BUFFERHEADERTYPE *buffer; #ifdef _ANDROID_ if (iDivXDrmDecrypt) { delete iDivXDrmDecrypt; @@ -6725,14 +6727,16 @@ OMX_ERRORTYPE omx_vdec::component_deinit(OMX_IN OMX_HANDLETYPE hComp) } /*Check if the output buffers have to be cleaned up*/ - if (m_out_mem_ptr) { + buffer = client_buffers.get_il_buf_hdr(); + if (buffer) { DEBUG_PRINT_LOW("Freeing the Output Memory"); for (i = 0; i < drv_ctx.op_buf.actualcount; i++ ) { if (BITMASK_PRESENT(&m_out_bm_count, i)) { BITMASK_CLEAR(&m_out_bm_count, i); - client_buffers.free_output_buffer (&m_out_mem_ptr[i]); + nRet = client_buffers.free_output_buffer (buffer+i); + if (OMX_ErrorNone != nRet) + break; } - if (release_output_done()) { break; } @@ -10434,6 +10438,8 @@ OMX_ERRORTYPE omx_vdec::allocate_color_convert_buf::free_output_buffer( if (enabled && omx->is_component_secure()) return OMX_ErrorNone; if (!allocated_count || !bufhdr) { + for (unsigned i = 0; i < omx->drv_ctx.op_buf.actualcount; i++) + omx->free_output_buffer(&omx->m_out_mem_ptr[i]); DEBUG_PRINT_ERROR("Color convert no buffer to be freed %p",bufhdr); return OMX_ErrorBadParameter; } diff --git a/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp b/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp index aef3387e..3d413bc3 100644 --- a/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp +++ b/mm-video-v4l2/vidc/venc/src/omx_video_base.cpp @@ -1485,6 +1485,11 @@ OMX_ERRORTYPE omx_video::get_parameter(OMX_IN OMX_HANDLETYPE hComp, (unsigned int)m_sOutPortDef.nBufferSize, (unsigned int)m_sOutPortDef.nBufferCountMin, (unsigned int)m_sOutPortDef.nBufferCountActual); memcpy(portDefn, &m_sOutPortDef, sizeof(m_sOutPortDef)); + + if (secure_session) { + portDefn->nBufferSize = + sizeof(native_handle_t) + (sizeof(int) * (1/*numFds*/ + 3/*numInts*/)); + } } else { DEBUG_PRINT_ERROR("ERROR: GetParameter called on Bad Port Index"); eRet = OMX_ErrorBadPortIndex; diff --git a/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp b/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp index c25bc8ca..f59187ef 100644 --- a/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp +++ b/mm-video-v4l2/vidc/venc/src/omx_video_encoder.cpp @@ -2027,16 +2027,18 @@ OMX_ERRORTYPE omx_venc::component_deinit(OMX_IN OMX_HANDLETYPE hComp) } /*Check if the input buffers have to be cleaned up*/ - if (m_inp_mem_ptr + OMX_BUFFERHEADERTYPE* ptr = m_inp_mem_ptr; #ifdef _ANDROID_ICS_ - && !meta_mode_enable + if (meta_mode_enable) { + ptr = meta_buffer_hdr; + } #endif - ) { + if (ptr) { DEBUG_PRINT_LOW("Freeing the Input Memory"); for (i=0; i<m_sInPortDef.nBufferCountActual; i++ ) { if (BITMASK_PRESENT(&m_inp_bm_count, i)) { BITMASK_CLEAR(&m_inp_bm_count, i); - free_input_buffer (&m_inp_mem_ptr[i]); + free_input_buffer(ptr + i); } if (release_input_done()) { @@ -2044,8 +2046,8 @@ OMX_ERRORTYPE omx_venc::component_deinit(OMX_IN OMX_HANDLETYPE hComp) } } - - free(m_inp_mem_ptr); + if (m_inp_mem_ptr != meta_buffer_hdr) + free(m_inp_mem_ptr); m_inp_mem_ptr = NULL; } |