diff options
author | Lajos Molnar <lajos@google.com> | 2015-05-15 20:39:14 -0700 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2015-06-01 20:24:26 -0700 |
commit | 054219874873b41f1c815552987c10465c34ba2b (patch) | |
tree | b9aaf90692f68ed786880d7daf6ae4f2d2b6b9d7 /media/libstagefright/OMXClient.cpp | |
parent | cb18ec05b7097a63262b81afe1e866105d400f4a (diff) | |
download | frameworks_av-054219874873b41f1c815552987c10465c34ba2b.zip frameworks_av-054219874873b41f1c815552987c10465c34ba2b.tar.gz frameworks_av-054219874873b41f1c815552987c10465c34ba2b.tar.bz2 |
stagefright: rework metadata buffer support
- Add fence to new metadata buffer mode structure, but don't use it
yet, so that we don't have to add another mode soon.
- Change GraphicBuffers to ANativeWindowBuffer in new metadata mode.
This removes internal depencency from vendor codecs.
- Extend new metadata mode from SW encoders to all codecs.
- Fallback from new metadata mode to old mode (so Camera can always
use the new mode even with legacy codecs)
Related-bug: 19614055
Bug: 13222807
Change-Id: I405a21dd6ce8e99808f633bfeab8f14278eb7079
Diffstat (limited to 'media/libstagefright/OMXClient.cpp')
-rw-r--r-- | media/libstagefright/OMXClient.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/media/libstagefright/OMXClient.cpp b/media/libstagefright/OMXClient.cpp index c91a37f..5d04628 100644 --- a/media/libstagefright/OMXClient.cpp +++ b/media/libstagefright/OMXClient.cpp @@ -72,7 +72,7 @@ struct MuxOMX : public IOMX { node_id node, OMX_STATETYPE* state); virtual status_t storeMetaDataInBuffers( - node_id node, OMX_U32 port_index, OMX_BOOL enable); + node_id node, OMX_U32 port_index, OMX_BOOL enable, MetadataBufferType *type); virtual status_t prepareForAdaptivePlayback( node_id node, OMX_U32 port_index, OMX_BOOL enable, @@ -102,7 +102,7 @@ struct MuxOMX : public IOMX { virtual status_t createInputSurface( node_id node, OMX_U32 port_index, - sp<IGraphicBufferProducer> *bufferProducer); + sp<IGraphicBufferProducer> *bufferProducer, MetadataBufferType *type); virtual status_t createPersistentInputSurface( sp<IGraphicBufferProducer> *bufferProducer, @@ -110,7 +110,7 @@ struct MuxOMX : public IOMX { virtual status_t setInputSurface( node_id node, OMX_U32 port_index, - const sp<IGraphicBufferConsumer> &bufferConsumer); + const sp<IGraphicBufferConsumer> &bufferConsumer, MetadataBufferType *type); virtual status_t signalEndOfInputStream(node_id node); @@ -292,8 +292,8 @@ status_t MuxOMX::getState( } status_t MuxOMX::storeMetaDataInBuffers( - node_id node, OMX_U32 port_index, OMX_BOOL enable) { - return getOMX(node)->storeMetaDataInBuffers(node, port_index, enable); + node_id node, OMX_U32 port_index, OMX_BOOL enable, MetadataBufferType *type) { + return getOMX(node)->storeMetaDataInBuffers(node, port_index, enable, type); } status_t MuxOMX::prepareForAdaptivePlayback( @@ -342,9 +342,9 @@ status_t MuxOMX::updateGraphicBufferInMeta( status_t MuxOMX::createInputSurface( node_id node, OMX_U32 port_index, - sp<IGraphicBufferProducer> *bufferProducer) { + sp<IGraphicBufferProducer> *bufferProducer, MetadataBufferType *type) { status_t err = getOMX(node)->createInputSurface( - node, port_index, bufferProducer); + node, port_index, bufferProducer, type); return err; } @@ -358,8 +358,8 @@ status_t MuxOMX::createPersistentInputSurface( status_t MuxOMX::setInputSurface( node_id node, OMX_U32 port_index, - const sp<IGraphicBufferConsumer> &bufferConsumer) { - return getOMX(node)->setInputSurface(node, port_index, bufferConsumer); + const sp<IGraphicBufferConsumer> &bufferConsumer, MetadataBufferType *type) { + return getOMX(node)->setInputSurface(node, port_index, bufferConsumer, type); } status_t MuxOMX::signalEndOfInputStream(node_id node) { |