diff options
author | Chong Zhang <chz@google.com> | 2014-12-02 18:35:35 -0800 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2014-12-03 16:53:21 -0800 |
commit | 180d1b96ee2312f1056a58e26884a89d25ab62c8 (patch) | |
tree | 429e10ae941b02a4f3c6e18227c79cd5592b83fb /media/libmediaplayerservice/nuplayer/StreamingSource.h | |
parent | ab05b4ccb8ea59079d7f773aa0e090029c479bad (diff) | |
download | frameworks_av-180d1b96ee2312f1056a58e26884a89d25ab62c8.zip frameworks_av-180d1b96ee2312f1056a58e26884a89d25ab62c8.tar.gz frameworks_av-180d1b96ee2312f1056a58e26884a89d25ab62c8.tar.bz2 |
fix threading in RTSPSource and StreamingSource
Bug: 18532335
Change-Id: I9c34401a928dc0ddbd0923aa5f127dc628efbb92
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/StreamingSource.h')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/StreamingSource.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/StreamingSource.h b/media/libmediaplayerservice/nuplayer/StreamingSource.h index 412b6c4..1f95f3c 100644 --- a/media/libmediaplayerservice/nuplayer/StreamingSource.h +++ b/media/libmediaplayerservice/nuplayer/StreamingSource.h @@ -25,6 +25,7 @@ namespace android { struct ABuffer; struct ATSParser; +struct AnotherPacketSource; struct NuPlayer::StreamingSource : public NuPlayer::Source { StreamingSource( @@ -43,14 +44,29 @@ struct NuPlayer::StreamingSource : public NuPlayer::Source { protected: virtual ~StreamingSource(); + virtual void onMessageReceived(const sp<AMessage> &msg); + virtual sp<MetaData> getFormatMeta(bool audio); private: + enum { + kWhatReadBuffer, + }; sp<IStreamSource> mSource; status_t mFinalResult; sp<NuPlayerStreamListener> mStreamListener; sp<ATSParser> mTSParser; + bool mBuffering; + Mutex mBufferingLock; + sp<ALooper> mLooper; + + void setError(status_t err); + sp<AnotherPacketSource> getSource(bool audio); + bool haveSufficientDataOnAllTracks(); + status_t postReadBuffer(); + void onReadBuffer(); + DISALLOW_EVIL_CONSTRUCTORS(StreamingSource); }; |