diff options
author | Robert Shih <robertshih@google.com> | 2014-08-20 17:00:21 -0700 |
---|---|---|
committer | Robert Shih <robertshih@google.com> | 2014-09-03 19:54:49 -0700 |
commit | 17f6dd64cd749f4e38e12b672b551047f4cbe9b4 (patch) | |
tree | 22bf342c2961202509d8ac86a1324d3df836c8f6 /media/libmediaplayerservice/nuplayer/GenericSource.h | |
parent | b72726bad6c9253c26c82fea76bdf99e18b8ba6d (diff) | |
download | frameworks_av-17f6dd64cd749f4e38e12b672b551047f4cbe9b4.zip frameworks_av-17f6dd64cd749f4e38e12b672b551047f4cbe9b4.tar.gz frameworks_av-17f6dd64cd749f4e38e12b672b551047f4cbe9b4.tar.bz2 |
GenericSource: refactor track selection for dedicated looper
- move getFormatMeta, getSelectedTrack, selectTrack, and seekTo to
dedicated looper
- start & dequeueAccessUnit posts readBuffer requests instead of reading
directly
- call internal doGetFormatMeta in onPrepareAsync
Bug: 16892748
Change-Id: I5d5e34381f1dfceca655c52a201627b53454ad22
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/GenericSource.h')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/GenericSource.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.h b/media/libmediaplayerservice/nuplayer/GenericSource.h index 1f13120..50ff98a 100644 --- a/media/libmediaplayerservice/nuplayer/GenericSource.h +++ b/media/libmediaplayerservice/nuplayer/GenericSource.h @@ -84,6 +84,11 @@ private: kWhatSendTimedTextData, kWhatChangeAVSource, kWhatPollBuffering, + kWhatGetFormat, + kWhatGetSelectedTrack, + kWhatSelectTrack, + kWhatSeek, + kWhatReadBuffer, }; Vector<sp<MediaSource> > mSources; @@ -140,6 +145,18 @@ private: void notifyPreparedAndCleanup(status_t err); + void onGetFormatMeta(sp<AMessage> msg) const; + sp<MetaData> doGetFormatMeta(bool audio) const; + + void onGetSelectedTrack(sp<AMessage> msg) const; + ssize_t doGetSelectedTrack(media_track_type type) const; + + void onSelectTrack(sp<AMessage> msg); + status_t doSelectTrack(size_t trackIndex, bool select); + + void onSeek(sp<AMessage> msg); + status_t doSeek(int64_t seekTimeUs); + void onPrepareAsync(); void fetchTextData( @@ -155,6 +172,8 @@ private: media_track_type trackType, int64_t *actualTimeUs = NULL); + void postReadBuffer(media_track_type trackType); + void onReadBuffer(sp<AMessage> msg); void readBuffer( media_track_type trackType, int64_t seekTimeUs = -1ll, int64_t *actualTimeUs = NULL, bool formatChange = false); |