diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2020-02-11 23:58:18 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2020-02-11 23:58:18 +0000 |
commit | 3903fa9cea4c24ee2b269136325aaae4aa14f7a3 (patch) | |
tree | c5dc9195f7479351ef97a702ba8403c37df5d406 | |
parent | b0efeb18b5983ae92094a062ca6615f646ecf6db (diff) | |
parent | c09a90b3da06a27584e9351e5c7a0d7c6bedd3d6 (diff) | |
download | media-android10-qpr2-release.tar.gz |
Merge cherrypicks of [10298392, 10300120, 10300112, 10298398, 10300814, 10300738, 10300777, 10300815, 10300816, 10300706, 10300528, 10300817] into qt-qpr2-releaseandroid-10.0.0_r36android-10.0.0_r35android-10.0.0_r34android-10.0.0_r33android10-qpr2-s4-releaseandroid10-qpr2-s3-releaseandroid10-qpr2-s2-releaseandroid10-qpr2-release
Change-Id: I7b8d6741f03485c0583b952d9d6aedf8072cb087
-rw-r--r-- | mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp | 14 |
1 files changed, 10 insertions, 4 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 af9125f1..8eb30c3f 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp @@ -11375,8 +11375,13 @@ OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr() { bool status = true; pthread_mutex_lock(&omx->c_lock); + /* Whenever port mode is set to kPortModeDynamicANWBuffer, Video Frameworks + always uses VideoNativeMetadata and OMX receives buffer type as + grallocsource via storeMetaDataInBuffers_l API. The buffer_size + will be communicated to frameworks via IndexParamPortdefinition. */ if (!enabled) - buffer_size = omx->drv_ctx.op_buf.buffer_size; + buffer_size = omx->dynamic_buf_mode ? sizeof(struct VideoNativeMetadata) : + omx->drv_ctx.op_buf.buffer_size; else { buffer_size = c2dcc.getBuffSize(C2D_OUTPUT); } @@ -11385,9 +11390,10 @@ OMX_BUFFERHEADERTYPE* omx_vdec::allocate_color_convert_buf::get_il_buf_hdr() } OMX_ERRORTYPE omx_vdec::allocate_color_convert_buf::set_buffer_req( - OMX_U32 buffer_size, OMX_U32 actual_count) { - OMX_U32 expectedSize = enabled ? buffer_size_req : omx->drv_ctx.op_buf.buffer_size; - + OMX_U32 buffer_size, OMX_U32 actual_count) +{ + OMX_U32 expectedSize = is_color_conversion_enabled() ? buffer_size_req : omx->dynamic_buf_mode ? + sizeof(struct VideoDecoderOutputMetaData) : omx->drv_ctx.op_buf.buffer_size; if (buffer_size < expectedSize) { DEBUG_PRINT_ERROR("OP Requirements: Client size(%u) insufficient v/s requested(%u)", buffer_size, expectedSize); |