diff options
author | ywan171 <yi.a.wang@intel.com> | 2012-04-18 15:21:37 +0800 |
---|---|---|
committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:02:46 -0700 |
commit | a58f3851934aa62681d18cd358ce397d1dfe2806 (patch) | |
tree | dc87d0627540c8494067b6007cb2e7506dd3e30d /videocodec/OMXVideoDecoderBase.h | |
parent | 80b8bf146f8ec6bbbaa88d2f31d315bc599e6b8f (diff) | |
download | omx-components-a58f3851934aa62681d18cd358ce397d1dfe2806.tar.gz |
omx-component: enhance OMX IL to handle the case that resolution in container is diff from ES resolution
BZ: 25724 29844 28316
enhance OMX IL to handle the case that resolution in container is diff from ES resolution
1: if the resolution in container is larger than real ES resolution, return the correct crop
info to omxcodec to set the proper region for display
2: if the resolution in container is smaller than real ES resolution, Graphic buffer in omxcodec
should be reallocated and reset graphic related info to OMX IL and libmix, va should be restart.
Signed-off-by: ywan171 <yi.a.wang@intel.com>
Change-Id: I06eb1da32ab62654371581d7a01afeeb94d004bf
Reviewed-on: http://android.intel.com:8080/42768
Reviewed-by: Qiu, Junhai <junhai.qiu@intel.com>
Reviewed-by: Ding, Haitao <haitao.ding@intel.com>
Tested-by: Ding, Haitao <haitao.ding@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'videocodec/OMXVideoDecoderBase.h')
-rw-r--r-- | videocodec/OMXVideoDecoderBase.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/videocodec/OMXVideoDecoderBase.h b/videocodec/OMXVideoDecoderBase.h index 18858fb..a83548a 100644 --- a/videocodec/OMXVideoDecoderBase.h +++ b/videocodec/OMXVideoDecoderBase.h @@ -49,7 +49,7 @@ protected: OMX_BUFFERHEADERTYPE ***pBuffers, buffer_retain_t *retains, OMX_U32 numberBuffers); - + virtual OMX_ERRORTYPE ProcessorReset(void); virtual bool IsAllBufferAvailable(void); virtual OMX_ERRORTYPE ProcessorPreFillBuffer(OMX_BUFFERHEADERTYPE* buffer); virtual OMX_ERRORTYPE ProcessorPreFreeBuffer(OMX_U32 nPortIndex,OMX_BUFFERHEADERTYPE * pBuffer); @@ -67,6 +67,7 @@ protected: DECLARE_HANDLER(OMXVideoDecoderBase, NativeBuffer); DECLARE_HANDLER(OMXVideoDecoderBase, NativeBufferMode); DECLARE_HANDLER(OMXVideoDecoderBase, DecoderRotation); + DECLARE_HANDLER(OMXVideoDecoderBase, DecoderOutputCrop); private: enum { @@ -84,8 +85,13 @@ private: }; uint32_t mOMXBufferHeaderTypePtrNum; OMX_BUFFERHEADERTYPE *mOMXBufferHeaderTypePtrArray[MAX_GRAPHIC_NUM]; - uint32_t mGraphicBufferStride; - uint32_t mGraphicBuffercolorformat; + struct GraphicBufferParam { + uint32_t graphicBufferStride; + uint32_t graphicBufferWidth; + uint32_t graphicBufferHeight; + uint32_t graphicBufferColorFormat; + }; + GraphicBufferParam mGraphicBufferParam; uint32_t mRotationDegrees; protected: |