summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBalamurugan Alagarsamy <balaga@codeaurora.org>2014-12-17 15:10:25 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2015-09-28 05:32:09 -0700
commite2d287f3e8da562354e0fa54dad9c1c8f72318ff (patch)
tree2f876e3427fb549e4bebc08beb7a41896c3a3892
parent04d09607452175eadd1a5c0386d25320833c4a5d (diff)
downloadandroid_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.cpp8
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) {