diff options
Diffstat (limited to 'media/libstagefright/wifi-display/source/PlaybackSession.h')
-rw-r--r-- | media/libstagefright/wifi-display/source/PlaybackSession.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/media/libstagefright/wifi-display/source/PlaybackSession.h b/media/libstagefright/wifi-display/source/PlaybackSession.h index cd6da85..da207e2 100644 --- a/media/libstagefright/wifi-display/source/PlaybackSession.h +++ b/media/libstagefright/wifi-display/source/PlaybackSession.h @@ -31,6 +31,7 @@ struct IGraphicBufferProducer; struct MediaPuller; struct MediaSource; struct MediaSender; +struct NuMediaExtractor; // Encapsulates the state of an RTP/RTCP session in the context of wifi // display. @@ -39,7 +40,8 @@ struct WifiDisplaySource::PlaybackSession : public AHandler { const sp<ANetworkSession> &netSession, const sp<AMessage> ¬ify, const struct in_addr &interfaceAddr, - const sp<IHDCP> &hdcp); + const sp<IHDCP> &hdcp, + const char *path = NULL); status_t init( const char *clientIP, int32_t clientRtp, int32_t clientRtcp, @@ -87,12 +89,14 @@ private: kWhatPause, kWhatResume, kWhatMediaSenderNotify, + kWhatPullExtractorSample, }; sp<ANetworkSession> mNetSession; sp<AMessage> mNotify; in_addr mInterfaceAddr; sp<IHDCP> mHDCP; + AString mMediaPath; sp<MediaSender> mMediaSender; int32_t mLocalRTPPort; @@ -109,6 +113,15 @@ private: int64_t mPrevTimeUs; + sp<NuMediaExtractor> mExtractor; + KeyedVector<size_t, size_t> mExtractorTrackToInternalTrack; + bool mPullExtractorPending; + int32_t mPullExtractorGeneration; + int64_t mFirstSampleTimeRealUs; + int64_t mFirstSampleTimeUs; + + status_t setupMediaPacketizer(bool enableAudio, bool enableVideo); + status_t setupPacketizer( bool enableAudio, bool usePCMAudio, @@ -133,6 +146,9 @@ private: void notifySessionDead(); + void schedulePullExtractor(); + void onPullExtractor(); + DISALLOW_EVIL_CONSTRUCTORS(PlaybackSession); }; |