diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2012-07-18 17:46:06 -0700 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2012-07-24 16:59:21 -0700 |
commit | bf5bea96f236adb5eef78c2f414ef82b3602a0f7 (patch) | |
tree | ec9dcb7ffdb2de6257fcee026583ffe998fef1d8 /media/libstagefright/codecs/avc/enc/SoftAVCEncoder.h | |
parent | 7aa1b72252749c990c9a5efce3d8fe399261b88e (diff) | |
download | frameworks_av-bf5bea96f236adb5eef78c2f414ef82b3602a0f7.zip frameworks_av-bf5bea96f236adb5eef78c2f414ef82b3602a0f7.tar.gz frameworks_av-bf5bea96f236adb5eef78c2f414ef82b3602a0f7.tar.bz2 |
Codecs: Add MetaDataMode support to software video encoders.
This support is needed to enable efficient video recording with
emulator and camera HAL 2.
- Update SoftAVCEncoder and SoftMPEG4Encoder to support MetaDataMode
extension.
- Allow CameraSource to handle opaque pixel formats, so that
MetaDataMode can be used.
- Remove hardware codec restriction for MetaDataMode
Bug: 6243944
Change-Id: I970eb3d55542a413b6d75a78f76d3a8583155601
Diffstat (limited to 'media/libstagefright/codecs/avc/enc/SoftAVCEncoder.h')
-rw-r--r-- | media/libstagefright/codecs/avc/enc/SoftAVCEncoder.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.h b/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.h index a2587c6..23d5ff1 100644 --- a/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.h +++ b/media/libstagefright/codecs/avc/enc/SoftAVCEncoder.h @@ -45,6 +45,10 @@ struct SoftAVCEncoder : public MediaBufferObserver, virtual void onQueueFilled(OMX_U32 portIndex); + // Override SoftOMXComponent methods + + virtual OMX_ERRORTYPE getExtensionIndex( + const char *name, OMX_INDEXTYPE *index); // Implement MediaBufferObserver virtual void signalBufferReturned(MediaBuffer *buffer); @@ -63,6 +67,10 @@ private: kNumBuffers = 2, }; + enum { + kStoreMetaDataExtensionIndex = OMX_IndexVendorStartUnused + 1 + }; + // OMX input buffer's timestamp and flags typedef struct { int64_t mTimeUs; @@ -74,6 +82,7 @@ private: int32_t mVideoFrameRate; int32_t mVideoBitRate; int32_t mVideoColorFormat; + bool mStoreMetaDataInBuffers; int32_t mIDRFrameRefreshIntervalInSec; AVCProfile mAVCEncProfile; AVCLevel mAVCEncLevel; @@ -100,6 +109,9 @@ private: OMX_ERRORTYPE releaseEncoder(); void releaseOutputBuffers(); + uint8_t* extractGrallocData(void *data, buffer_handle_t *buffer); + void releaseGrallocData(buffer_handle_t buffer); + DISALLOW_EVIL_CONSTRUCTORS(SoftAVCEncoder); }; |