diff options
Diffstat (limited to 'media/libstagefright/include/SoftVideoDecoderOMXComponent.h')
-rw-r--r-- | media/libstagefright/include/SoftVideoDecoderOMXComponent.h | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/media/libstagefright/include/SoftVideoDecoderOMXComponent.h b/media/libstagefright/include/SoftVideoDecoderOMXComponent.h index d050fa6..9e97ebd 100644 --- a/media/libstagefright/include/SoftVideoDecoderOMXComponent.h +++ b/media/libstagefright/include/SoftVideoDecoderOMXComponent.h @@ -27,8 +27,6 @@ #include <utils/threads.h> #include <utils/Vector.h> -#define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a))) - namespace android { struct SoftVideoDecoderOMXComponent : public SimpleSoftOMXComponent { @@ -57,12 +55,31 @@ protected: virtual OMX_ERRORTYPE getConfig( OMX_INDEXTYPE index, OMX_PTR params); + virtual OMX_ERRORTYPE getExtensionIndex( + const char *name, OMX_INDEXTYPE *index); + void initPorts(OMX_U32 numInputBuffers, OMX_U32 inputBufferSize, OMX_U32 numOutputBuffers, const char *mimeType); - virtual void updatePortDefinitions(); + virtual void updatePortDefinitions(bool updateCrop = true); + + uint32_t outputBufferWidth(); + uint32_t outputBufferHeight(); + + enum CropSettingsMode { + kCropUnSet = 0, + kCropSet, + kCropChanged, + }; + void handlePortSettingsChange( + bool *portWillReset, uint32_t width, uint32_t height, + CropSettingsMode cropSettingsMode = kCropUnSet, bool fakeStride = false); + + void copyYV12FrameToOutputBuffer( + uint8_t *dst, const uint8_t *srcY, const uint8_t *srcU, const uint8_t *srcV, + size_t srcYStride, size_t srcUStride, size_t srcVStride); enum { kInputPortIndex = 0, @@ -70,6 +87,8 @@ protected: kMaxPortIndex = 1, }; + bool mIsAdaptive; + uint32_t mAdaptiveMaxWidth, mAdaptiveMaxHeight; uint32_t mWidth, mHeight; uint32_t mCropLeft, mCropTop, mCropWidth, mCropHeight; |