From c6cfd70f24a11b946859485ce398a189c301a4e2 Mon Sep 17 00:00:00 2001 From: Wei Jia Date: Tue, 11 Nov 2014 16:33:20 -0800 Subject: NuPlayer: tunnel decoder with renderer for data buffer passing. Bug: 18342383 Change-Id: I182928007814c146c01a86196c4fda1d46e74ea4 --- media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h') diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h index dba3eee..c6ceb4e 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h +++ b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h @@ -30,11 +30,15 @@ struct MediaBuffer; struct NuPlayer::Decoder : public AHandler { Decoder(const sp ¬ify, + const sp &source, + const sp &renderer = NULL, const sp &nativeWindow = NULL); virtual void configure(const sp &format); virtual void init(); + virtual void setRenderer(const sp &renderer); + status_t getInputBuffers(Vector > *dstBuffers) const; virtual void signalFlush(const sp &format = NULL); virtual void signalUpdateFormat(const sp &format); @@ -45,8 +49,8 @@ struct NuPlayer::Decoder : public AHandler { enum { kWhatFillThisBuffer = 'flTB', - kWhatDrainThisBuffer = 'drTB', - kWhatOutputFormatChanged = 'fmtC', + kWhatRenderBufferTime = 'rnBT', + kWhatVideoSizeChanged = 'viSC', kWhatFlushCompleted = 'flsC', kWhatShutdownCompleted = 'shDC', kWhatEOS = 'eos ', @@ -59,10 +63,10 @@ protected: virtual void onMessageReceived(const sp &msg); -private: enum { kWhatCodecNotify = 'cdcN', kWhatConfigure = 'conf', + kWhatSetRenderer = 'setR', kWhatGetInputBuffers = 'gInB', kWhatInputBufferFilled = 'inpF', kWhatRenderBuffer = 'rndr', @@ -71,9 +75,13 @@ private: kWhatUpdateFormat = 'uFmt', }; +private: sp mNotify; sp mNativeWindow; + sp mSource; + sp mRenderer; + sp mInputFormat; sp mOutputFormat; sp mCodec; @@ -89,6 +97,8 @@ private: Vector mInputBufferIsDequeued; Vector mMediaBuffers; + int64_t mSkipRenderingUntilMediaTimeUs; + void handleError(int32_t err); bool handleAnInputBuffer(); bool handleAnOutputBuffer(); @@ -110,6 +120,7 @@ private: bool supportsSeamlessAudioFormatChange(const sp &targetFormat) const; void rememberCodecSpecificData(const sp &format); + bool isVideo(); DISALLOW_EVIL_CONSTRUCTORS(Decoder); }; -- cgit v1.1