diff options
author | Balamurugan Alagarsamy <balaga@codeaurora.org> | 2014-10-31 23:27:44 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2014-11-07 07:34:44 -0800 |
commit | 5889621aa910af7addb97003e2355b2ed039fdc6 (patch) | |
tree | f38b737898967817c338c65db2603106e109d9bc /mm-video-v4l2/vidc/vdec | |
parent | 721ff44741b74736eead7fbad9c541506a700768 (diff) | |
download | android_hardware_qcom_media-5889621aa910af7addb97003e2355b2ed039fdc6.tar.gz android_hardware_qcom_media-5889621aa910af7addb97003e2355b2ed039fdc6.tar.bz2 android_hardware_qcom_media-5889621aa910af7addb97003e2355b2ed039fdc6.zip |
mm-video: Release driver buffers correctly
Release driver buffers when all component buffers are
released. This is needed as component may transition
back to idle state from loaded state, and prepare_buf
will fail if the buffers are not unregistered from
driver.
Change-Id: Ie25eaf7287ff05b5f403d0463eff83020716c9f9
Diffstat (limited to 'mm-video-v4l2/vidc/vdec')
-rw-r--r-- | mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc_swvdec.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc_swvdec.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc_swvdec.cpp index e9f60e68..9dbe9de5 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc_swvdec.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_hevc_swvdec.cpp @@ -5746,6 +5746,8 @@ OMX_ERRORTYPE omx_vdec::free_buffer(OMX_IN OMX_HANDLETYPE hComp, /*Free the Buffer Header*/ if (release_input_done()) { + if ((!m_pSwVdec) || (m_swvdec_mode == SWVDEC_MODE_DECODE_ONLY)) + release_buffers(this, VDEC_BUFFER_TYPE_INPUT); DEBUG_PRINT_HIGH("ALL input buffers are freed/released"); free_input_buffer_header(); } @@ -5780,6 +5782,8 @@ OMX_ERRORTYPE omx_vdec::free_buffer(OMX_IN OMX_HANDLETYPE hComp, if (release_output_done()) { + if ((!m_pSwVdec) || (m_swvdec_mode == SWVDEC_MODE_DECODE_ONLY)) + release_buffers(this, VDEC_BUFFER_TYPE_OUTPUT); free_output_buffer_header(); if (m_swvdec_mode == SWVDEC_MODE_DECODE_ONLY) { |