diff options
author | Balamurugan Alagarsamy <balaga@codeaurora.org> | 2014-12-17 15:10:25 +0530 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-02-25 01:01:42 -0800 |
commit | e43f29783ae53de994f153538c01d5555f2465e1 (patch) | |
tree | 08b1934bb17daffa1867417824bac79e6053ff7a | |
parent | f6f3653693688aabb507828b32f322a71b9e1b09 (diff) | |
download | android_hardware_qcom_media-e43f29783ae53de994f153538c01d5555f2465e1.tar.gz android_hardware_qcom_media-e43f29783ae53de994f153538c01d5555f2465e1.tar.bz2 android_hardware_qcom_media-e43f29783ae53de994f153538c01d5555f2465e1.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 7393c792..7fec825e 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp @@ -4782,6 +4782,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) { |