summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer
diff options
context:
space:
mode:
authorRobert Shih <robertshih@google.com>2015-05-15 18:54:21 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-05-15 18:54:22 +0000
commit89cf8946e8d61ce32b83fdc2bb3274a562bf76cf (patch)
tree9534c38220269c1e2d64b87b8b11b79dae160434 /media/libmediaplayerservice/nuplayer
parente28159ba94a7fa6711c2f1e459413ccce9f065ab (diff)
parent055404ea1309d4cbc5d313332b026f86bd6f0da1 (diff)
downloadframeworks_av-89cf8946e8d61ce32b83fdc2bb3274a562bf76cf.zip
frameworks_av-89cf8946e8d61ce32b83fdc2bb3274a562bf76cf.tar.gz
frameworks_av-89cf8946e8d61ce32b83fdc2bb3274a562bf76cf.tar.bz2
Merge "HTTPLiveSource: fix non timed id3 track selection" into mnc-dev
Diffstat (limited to 'media/libmediaplayerservice/nuplayer')
-rw-r--r--media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp24
1 files changed, 11 insertions, 13 deletions
diff --git a/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp b/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp
index 39b8d09..126625a 100644
--- a/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp
+++ b/media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp
@@ -161,24 +161,22 @@ status_t NuPlayer::HTTPLiveSource::selectTrack(size_t trackIndex, bool select, i
status_t err = INVALID_OPERATION;
bool postFetchMsg = false, isSub = false;
- if (trackIndex != mLiveSession->getTrackCount() - 1) {
+ if (!mHasMetadata || trackIndex != mLiveSession->getTrackCount() - 1) {
err = mLiveSession->selectTrack(trackIndex, select);
postFetchMsg = select;
isSub = true;
} else {
- // metadata track
- if (mHasMetadata) {
- if (mMetadataSelected && !select) {
- err = OK;
- } else if (!mMetadataSelected && select) {
- postFetchMsg = true;
- err = OK;
- } else {
- err = BAD_VALUE; // behave as LiveSession::selectTrack
- }
-
- mMetadataSelected = select;
+ // metadata track; i.e. (mHasMetadata && trackIndex == mLiveSession->getTrackCount() - 1)
+ if (mMetadataSelected && !select) {
+ err = OK;
+ } else if (!mMetadataSelected && select) {
+ postFetchMsg = true;
+ err = OK;
+ } else {
+ err = BAD_VALUE; // behave as LiveSession::selectTrack
}
+
+ mMetadataSelected = select;
}
if (err == OK) {