summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2020-02-11 23:58:16 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-02-11 23:58:16 +0000
commitcf783bb6eb103f82906681eb6a2b133fbda1e909 (patch)
treec320222b42dcbf43a652083aa43a9c1e7e82bde9
parentd8b6bd826c60ce8880b3b04f7e14b15e705b8ca5 (diff)
parent5c73ed080d048d338c66d1e640917a2f5852b9db (diff)
downloadandroid_hardware_qcom_media-cf783bb6eb103f82906681eb6a2b133fbda1e909.tar.gz
android_hardware_qcom_media-cf783bb6eb103f82906681eb6a2b133fbda1e909.tar.bz2
android_hardware_qcom_media-cf783bb6eb103f82906681eb6a2b133fbda1e909.zip
Merge cherrypicks of [10298392, 10300120, 10300112, 10298398, 10300814, 10300738, 10300777, 10300815, 10300816, 10300706, 10300528, 10300817] into qt-qpr2-release
Change-Id: I3c7deca5ed1fbfde5c0bcc31c6f831626636159a
-rw-r--r--msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp b/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
index a24c4c7e..7079f812 100644
--- a/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
+++ b/msm8998/mm-video-v4l2/vidc/vdec/src/omx_vdec_v4l2.cpp
@@ -12868,8 +12868,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 {
if (!c2d.get_buffer_size(C2D_OUTPUT,buffer_size)) {
DEBUG_PRINT_ERROR("Get buffer size failed");
@@ -12883,9 +12888,10 @@ fail_get_buffer_size:
}
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);