diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-07-01 01:38:42 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-07-01 01:38:42 +0000 |
commit | cdd02ffa6711c59d64803e065132b46a537144a0 (patch) | |
tree | dfa8fa2c1aeb5797de61487d6a045aecf28a7ffd /msm8996 | |
parent | 53801229e1ba91c204f0cfc11574a79c5a2bb582 (diff) | |
parent | d128a260d9c67b376b05959ab50fb7174e30cd1d (diff) | |
download | media-cdd02ffa6711c59d64803e065132b46a537144a0.tar.gz |
Merge "mm-video-v4l2: venc: Change QBUF and STREAM_ON call sequence" into oc-dr1-dev
Diffstat (limited to 'msm8996')
-rw-r--r-- | msm8996/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/msm8996/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp b/msm8996/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp index ed0ce88..03652aa 100644 --- a/msm8996/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp +++ b/msm8996/mm-video-v4l2/vidc/venc/src/video_encoder_device_v4l2.cpp @@ -3692,6 +3692,23 @@ bool venc_dev::venc_empty_buf(void *buffer, void *pmem_data_buf, unsigned index, return false; } + if (!streaming[OUTPUT_PORT]) { + enum v4l2_buf_type buf_type; + buf_type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; + int ret; + ret = ioctl(m_nDriver_fd, VIDIOC_STREAMON, &buf_type); + + if (ret) { + DEBUG_PRINT_ERROR("Failed to call streamon"); + if (errno == EBUSY) { + hw_overload = true; + } + return false; + } else { + streaming[OUTPUT_PORT] = true; + } + } + buf.index = index; buf.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; buf.memory = V4L2_MEMORY_USERPTR; @@ -3714,22 +3731,6 @@ bool venc_dev::venc_empty_buf(void *buffer, void *pmem_data_buf, unsigned index, etb++; - if (!streaming[OUTPUT_PORT]) { - enum v4l2_buf_type buf_type; - buf_type=V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; - int ret; - ret = ioctl(m_nDriver_fd, VIDIOC_STREAMON, &buf_type); - - if (ret) { - DEBUG_PRINT_ERROR("Failed to call streamon"); - if (errno == EBUSY) { - hw_overload = true; - } - return false; - } else { - streaming[OUTPUT_PORT] = true; - } - } if (m_debug.in_buffer_log) { venc_input_log_buffers(bufhdr, fd, plane[0].data_offset, m_sVenc_cfg.inputformat); } |