summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBalamurugan Alagarsamy <balaga@codeaurora.org>2014-12-17 15:10:25 +0530
committerSteve Kondik <steve@cyngn.com>2015-02-25 01:01:42 -0800
commite43f29783ae53de994f153538c01d5555f2465e1 (patch)
tree08b1934bb17daffa1867417824bac79e6053ff7a
parentf6f3653693688aabb507828b32f322a71b9e1b09 (diff)
downloadandroid_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.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 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) {