summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/GenericSource.h
diff options
context:
space:
mode:
authorRobert Shih <robertshih@google.com>2014-08-20 17:00:21 -0700
committerRobert Shih <robertshih@google.com>2014-09-03 19:54:49 -0700
commit17f6dd64cd749f4e38e12b672b551047f4cbe9b4 (patch)
tree22bf342c2961202509d8ac86a1324d3df836c8f6 /media/libmediaplayerservice/nuplayer/GenericSource.h
parentb72726bad6c9253c26c82fea76bdf99e18b8ba6d (diff)
downloadframeworks_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.h19
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);