diff options
-rw-r--r-- | mm-core/inc/OMX_QCOMExtns.h | 2 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/vdec/inc/omx_vdec.h | 1 | ||||
-rw-r--r-- | mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp | 17 |
3 files changed, 19 insertions, 1 deletions
diff --git a/mm-core/inc/OMX_QCOMExtns.h b/mm-core/inc/OMX_QCOMExtns.h index 75447455..0d33f173 100644 --- a/mm-core/inc/OMX_QCOMExtns.h +++ b/mm-core/inc/OMX_QCOMExtns.h @@ -476,6 +476,8 @@ enum OMX_QCOM_EXTN_INDEXTYPE /*"OMX.QCOM.index.param.video.CustomBufferSize"*/ OMX_QcomIndexParamVideoCustomBufferSize = 0x7F00003E, + + OMX_QcomIndexParamVideoProcessNotCodedVOP = 0x7F00003F, }; /** diff --git a/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h b/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h index ac0b6f76..503156a3 100644 --- a/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h +++ b/mm-video-v4l2/vidc/vdec/inc/omx_vdec.h @@ -966,6 +966,7 @@ class omx_vdec: public qc_omx_component unsigned int m_fill_output_msg; bool client_set_fps; + bool ignore_not_coded_vops; class allocate_color_convert_buf { public: 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 a4728e4b..e3d40481 100644 --- a/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp +++ b/mm-video-v4l2/vidc/vdec/src/omx_vdec_msm8974.cpp @@ -585,6 +585,7 @@ omx_vdec::omx_vdec(): m_error_propogated(false), m_other_extradata(NULL), m_profile(0), client_set_fps(false), + ignore_not_coded_vops(true), m_last_rendered_TS(-1), m_queued_codec_config_count(0) { @@ -3109,6 +3110,12 @@ OMX_ERRORTYPE omx_vdec::get_parameter(OMX_IN OMX_HANDLETYPE hComp, break; #endif + case OMX_QcomIndexParamVideoProcessNotCodedVOP: + { + DEBUG_PRINT_LOW("get_parameter: OMX_QcomIndexParamVideoProcessNotCodedVOP"); + ((QOMX_ENABLETYPE *)paramData)->bEnable = (OMX_BOOL)!ignore_not_coded_vops; + break; + } default: { DEBUG_PRINT_ERROR("get_parameter: unknown param %08x", paramIndex); eRet =OMX_ErrorUnsupportedIndex; @@ -3947,6 +3954,12 @@ OMX_ERRORTYPE omx_vdec::set_parameter(OMX_IN OMX_HANDLETYPE hComp, } break; } + case OMX_QcomIndexParamVideoProcessNotCodedVOP: + { + DEBUG_PRINT_LOW("set_parameter: OMX_QcomIndexParamVideoProcessNotCodedVOP"); + ignore_not_coded_vops = !((QOMX_ENABLETYPE *)paramData)->bEnable; + break; + } default: { DEBUG_PRINT_ERROR("Setparameter: unknown param %d", paramIndex); eRet = OMX_ErrorUnsupportedIndex; @@ -5996,7 +6009,9 @@ OMX_ERRORTYPE omx_vdec::empty_this_buffer_proxy(OMX_IN OMX_HANDLETYPE hComp, } - if (codec_type_parse == CODEC_TYPE_MPEG4 || codec_type_parse == CODEC_TYPE_DIVX) { + if (ignore_not_coded_vops && + (codec_type_parse == CODEC_TYPE_MPEG4 || + codec_type_parse == CODEC_TYPE_DIVX)) { mp4StreamType psBits; psBits.data = (unsigned char *)(buffer->pBuffer + buffer->nOffset); psBits.numBytes = buffer->nFilledLen; |