diff options
Diffstat (limited to 'media/libstagefright/OMXClient.cpp')
-rw-r--r-- | media/libstagefright/OMXClient.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/media/libstagefright/OMXClient.cpp b/media/libstagefright/OMXClient.cpp index 06a598f..44695ce 100644 --- a/media/libstagefright/OMXClient.cpp +++ b/media/libstagefright/OMXClient.cpp @@ -104,6 +104,14 @@ struct MuxOMX : public IOMX { node_id node, OMX_U32 port_index, sp<IGraphicBufferProducer> *bufferProducer); + virtual status_t createPersistentInputSurface( + sp<IGraphicBufferProducer> *bufferProducer, + sp<IGraphicBufferConsumer> *bufferConsumer); + + virtual status_t usePersistentInputSurface( + node_id node, OMX_U32 port_index, + const sp<IGraphicBufferConsumer> &bufferConsumer); + virtual status_t signalEndOfInputStream(node_id node); virtual status_t allocateBuffer( @@ -340,6 +348,21 @@ status_t MuxOMX::createInputSurface( return err; } +status_t MuxOMX::createPersistentInputSurface( + sp<IGraphicBufferProducer> *bufferProducer, + sp<IGraphicBufferConsumer> *bufferConsumer) { + // TODO: local or remote? Always use remote for now + return mRemoteOMX->createPersistentInputSurface( + bufferProducer, bufferConsumer); +} + +status_t MuxOMX::usePersistentInputSurface( + node_id node, OMX_U32 port_index, + const sp<IGraphicBufferConsumer> &bufferConsumer) { + return getOMX(node)->usePersistentInputSurface( + node, port_index, bufferConsumer); +} + status_t MuxOMX::signalEndOfInputStream(node_id node) { return getOMX(node)->signalEndOfInputStream(node); } |