summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Mertz <scott@cyngn.com>2016-05-02 12:05:24 -0700
committerScott Mertz <scott@cyngn.com>2016-05-02 12:05:30 -0700
commit17c36140484853b4b7bd46fc12dfb671a474d98b (patch)
treea113f534b2e6b1982c6231ef74c2ec2ae43d5fdb
parent6060ede5605579bf674c6d2f397f09de91e76b50 (diff)
parent9f9ad5ab4f5f94318cbf51f40d80084bca6e304e (diff)
downloadandroid_hardware_qcom_media-17c36140484853b4b7bd46fc12dfb671a474d98b.tar.gz
android_hardware_qcom_media-17c36140484853b4b7bd46fc12dfb671a474d98b.tar.bz2
android_hardware_qcom_media-17c36140484853b4b7bd46fc12dfb671a474d98b.zip
Merge remote-tracking branch 'caf/LA.HB.1.3.1' into HEAD
Change-Id: Ic2298d56a02cdec757f2a1de1fc44c5821da61bd
-rw-r--r--mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
index 69eaf1c4..0c8996a5 100644
--- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
+++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
@@ -9670,10 +9670,24 @@ OMX_ERRORTYPE omx_vdec::update_portdef(OMX_PARAM_PORTDEFINITIONTYPE *portDefn)
fmt.fmt.pix_mp.pixelformat = output_capability;
} else if (1 == portDefn->nPortIndex) {
unsigned int buf_size = 0;
+ int ret = 0;
if (!client_buffers.update_buffer_req()) {
DEBUG_PRINT_ERROR("client_buffers.update_buffer_req Failed");
return OMX_ErrorHardware;
}
+
+ memset(&fmt, 0x0, sizeof(struct v4l2_format));
+ fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+ fmt.fmt.pix_mp.pixelformat = capture_capability;
+ ret = ioctl(drv_ctx.video_driver_fd, VIDIOC_G_FMT, &fmt);
+ if (ret) {
+ DEBUG_PRINT_ERROR("Get Resolution failed");
+ return OMX_ErrorHardware;
+ }
+ drv_ctx.op_buf.buffer_size = fmt.fmt.pix_mp.plane_fmt[0].sizeimage;
+ drv_ctx.op_buf.buffer_size += drv_ctx.extradata_info.buffer_size;
+ drv_ctx.op_buf.buffer_size = (drv_ctx.op_buf.buffer_size + drv_ctx.op_buf.alignment - 1)&(~(drv_ctx.op_buf.alignment - 1));
+
if (!client_buffers.get_buffer_req(buf_size)) {
DEBUG_PRINT_ERROR("update buffer requirements");
return OMX_ErrorHardware;