diff options
author | Shivaprasad Hongal <shongal@codeaurora.org> | 2015-09-18 15:17:14 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-10-26 17:30:23 -0700 |
commit | 9be69bd990889cc942a53c22f6f8463f146fd8e7 (patch) | |
tree | a346607875d1cc5e8c7957198f30a52dc8b89af0 /media/libavextensions | |
parent | 04fdb627d164cc81c8fa2830db1b20cf1261aea4 (diff) | |
download | frameworks_av-9be69bd990889cc942a53c22f6f8463f146fd8e7.zip frameworks_av-9be69bd990889cc942a53c22f6f8463f146fd8e7.tar.gz frameworks_av-9be69bd990889cc942a53c22f6f8463f146fd8e7.tar.bz2 |
stagefright: Remove additional deep-copy of encoder buffers
MPEG4Writer makes a copy of encoded buffer to avoid holding on
to the read buffer. This is not needed with MediaCodecSource,
as the encoded-output buffer is already copied to a heap buffer.
This saves a copy and some power.
However, cloning the buffer is still needed for upstream sources
that cannot afford to keep the buffers with writer up until they
are released.
So, pass a hint in buffer's metadata to indicate if it is OK
to delay the release and not copy the buffer
Change-Id: Ib59ac29ebc6ce4afd6fc272688a8260438ab1517
Diffstat (limited to 'media/libavextensions')
-rw-r--r-- | media/libavextensions/stagefright/AVExtensions.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/media/libavextensions/stagefright/AVExtensions.h b/media/libavextensions/stagefright/AVExtensions.h index 9c712e4..17ea475 100644 --- a/media/libavextensions/stagefright/AVExtensions.h +++ b/media/libavextensions/stagefright/AVExtensions.h @@ -161,6 +161,9 @@ struct AVUtils { virtual bool useQCHWEncoder(const sp<AMessage> &, AString &) { return false; } + virtual bool canDeferRelease(const sp<MetaData> &/*meta*/) { return false; } + virtual void setDeferRelease(sp<MetaData> &/*meta*/) {} + struct HEVCMuxer { virtual bool reassembleHEVCCSD(const AString &mime, sp<ABuffer> csd0, sp<MetaData> &meta); |