diff options
author | Lajos Molnar <lajos@google.com> | 2015-06-04 10:29:19 -0700 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2015-06-09 08:09:08 -0700 |
commit | 90fcf68fd29f3cb695bd53a830ad984cb7d430c0 (patch) | |
tree | ea257431333e4252dcc7882246029d362899b3f0 /include/media/stagefright/MediaCodec.h | |
parent | 9b132a7bdde8388f124e4db5ff54a88a93f8cdb6 (diff) | |
download | frameworks_av-90fcf68fd29f3cb695bd53a830ad984cb7d430c0.zip frameworks_av-90fcf68fd29f3cb695bd53a830ad984cb7d430c0.tar.gz frameworks_av-90fcf68fd29f3cb695bd53a830ad984cb7d430c0.tar.bz2 |
stagefright: add support for output frame rendered callback
- Added FRAME_RENDERED event in OMX, used by tunneled video decoders
to signal rendered event timing
- Track buffers sent for rendering in ACodec and in SoftwareRenderer, and
determine when they have rendered
- Propagate render times to MediaCodec
Bug: 20503131
Change-Id: Idf0a8714d5368b237c2285dd39fa82db847c232f
Diffstat (limited to 'include/media/stagefright/MediaCodec.h')
-rw-r--r-- | include/media/stagefright/MediaCodec.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/media/stagefright/MediaCodec.h b/include/media/stagefright/MediaCodec.h index d62b35d..09cbe8f 100644 --- a/include/media/stagefright/MediaCodec.h +++ b/include/media/stagefright/MediaCodec.h @@ -22,6 +22,7 @@ #include <media/hardware/CryptoAPI.h> #include <media/MediaResource.h> #include <media/stagefright/foundation/AHandler.h> +#include <media/stagefright/FrameRenderTracker.h> #include <utils/Vector.h> namespace android { @@ -76,6 +77,8 @@ struct MediaCodec : public AHandler { status_t setCallback(const sp<AMessage> &callback); + status_t setOnFrameRenderedNotification(const sp<AMessage> ¬ify); + status_t createInputSurface(sp<IGraphicBufferProducer>* bufferProducer); status_t setInputSurface(const sp<PersistentSurface> &surface); @@ -157,6 +160,12 @@ struct MediaCodec : public AHandler { status_t setParameters(const sp<AMessage> ¶ms); + // Create a MediaCodec notification message from a list of rendered or dropped render infos + // by adding rendered frame information to a base notification message. Returns the number + // of frames that were rendered. + static size_t CreateFramesRenderedMessage( + std::list<FrameRenderTracker::Info> done, sp<AMessage> &msg); + protected: virtual ~MediaCodec(); virtual void onMessageReceived(const sp<AMessage> &msg); @@ -212,6 +221,7 @@ private: kWhatGetName = 'getN', kWhatSetParameters = 'setP', kWhatSetCallback = 'setC', + kWhatSetNotification = 'setN', }; enum { @@ -275,9 +285,11 @@ private: status_t mStickyError; sp<Surface> mSurface; SoftwareRenderer *mSoftRenderer; + sp<AMessage> mOutputFormat; sp<AMessage> mInputFormat; sp<AMessage> mCallback; + sp<AMessage> mOnFrameRenderedNotification; sp<MemoryDealer> mDealer; sp<IResourceManagerClient> mResourceManagerClient; |