From 17f6dd64cd749f4e38e12b672b551047f4cbe9b4 Mon Sep 17 00:00:00 2001 From: Robert Shih Date: Wed, 20 Aug 2014 17:00:21 -0700 Subject: 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 --- media/libmediaplayerservice/nuplayer/GenericSource.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'media/libmediaplayerservice/nuplayer/GenericSource.h') 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 > mSources; @@ -140,6 +145,18 @@ private: void notifyPreparedAndCleanup(status_t err); + void onGetFormatMeta(sp msg) const; + sp doGetFormatMeta(bool audio) const; + + void onGetSelectedTrack(sp msg) const; + ssize_t doGetSelectedTrack(media_track_type type) const; + + void onSelectTrack(sp msg); + status_t doSelectTrack(size_t trackIndex, bool select); + + void onSeek(sp 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 msg); void readBuffer( media_track_type trackType, int64_t seekTimeUs = -1ll, int64_t *actualTimeUs = NULL, bool formatChange = false); -- cgit v1.1