diff options
author | Robert Shih <robertshih@google.com> | 2015-05-15 18:54:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-15 18:54:22 +0000 |
commit | 89cf8946e8d61ce32b83fdc2bb3274a562bf76cf (patch) | |
tree | 9534c38220269c1e2d64b87b8b11b79dae160434 /media/libmediaplayerservice/nuplayer | |
parent | e28159ba94a7fa6711c2f1e459413ccce9f065ab (diff) | |
parent | 055404ea1309d4cbc5d313332b026f86bd6f0da1 (diff) | |
download | frameworks_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.cpp | 24 |
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) { |