diff options
author | Balamurugan Alagarsamy <balaga@codeaurora.org> | 2014-12-17 15:10:25 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-09-28 05:32:09 -0700 |
commit | e2d287f3e8da562354e0fa54dad9c1c8f72318ff (patch) | |
tree | 2f876e3427fb549e4bebc08beb7a41896c3a3892 | |
parent | 04d09607452175eadd1a5c0386d25320833c4a5d (diff) | |
download | android_hardware_qcom_media-e2d287f3e8da562354e0fa54dad9c1c8f72318ff.tar.gz android_hardware_qcom_media-e2d287f3e8da562354e0fa54dad9c1c8f72318ff.tar.bz2 android_hardware_qcom_media-e2d287f3e8da562354e0fa54dad9c1c8f72318ff.zip |
mm-video-v4l2: vdec: streamoff while freeing first output buffer
Streamoff is being skipped if client sends commands loaded ->
idle -> allocate output buffers -> loaded -> free output buffers ->
get buffer requirements and results in failure. Do streamoff
while client frees the output buffer to resolve the issue.
Do not streamoff when dynamic buffer mode is enabled.
Restricting streamoff if driver flush is inprogress.
Change-Id: Ib0d11397da7597673fb02eca4be0ef87a96d8a4d
-rw-r--r-- | mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp | 8 |
1 files changed, 8 insertions, 0 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 2099b3ea..23715d5d 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp @@ -5354,6 +5354,14 @@ OMX_ERRORTYPE omx_vdec::free_output_buffer(OMX_BUFFERHEADERTYPE *bufferHdr) sizeof (vdec_bufferpayload)); if (!dynamic_buf_mode) { + if (streaming[CAPTURE_PORT] && + !(in_reconfig || BITMASK_PRESENT(&m_flags,OMX_COMPONENT_OUTPUT_FLUSH_PENDING))) { + if (stream_off(OMX_CORE_OUTPUT_PORT_INDEX)) { + DEBUG_PRINT_ERROR("STREAMOFF Failed"); + } else { + DEBUG_PRINT_LOW("STREAMOFF Successful"); + } + } #ifdef _ANDROID_ if (m_enable_android_native_buffers) { if (!secure_mode) { |