Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 055404ea authored by Robert Shih's avatar Robert Shih
Browse files

HTTPLiveSource: fix non timed id3 track selection

Non timed id3 track selection generates INVALID_OPERATION when performed
on the last track.

The buggy logic reads:

if (not last track) {
  // non-timed-id3 related work
} else if (has timed id3) {
  // timed id3 related work
} // last track but non timed id3 not handled

It should read:

if (has no timed id3 || not last track) {
  // non-timed-id3 track related work
} else {
  // timed id3 related work
}

Bug: 21195284
Change-Id: I2ddb5d8e2a1ecba4cc071c7ee14c6697fe8e220d
parent 804a77d1
Loading
Loading
Loading
Loading
+11 −13
Original line number Diff line number Diff line
@@ -161,13 +161,12 @@ 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) {
        // metadata track; i.e. (mHasMetadata && trackIndex == mLiveSession->getTrackCount() - 1)
        if (mMetadataSelected && !select) {
            err = OK;
        } else if (!mMetadataSelected && select) {
@@ -179,7 +178,6 @@ status_t NuPlayer::HTTPLiveSource::selectTrack(size_t trackIndex, bool select, i

        mMetadataSelected = select;
    }
    }

    if (err == OK) {
        int32_t &generation = isSub ? mFetchSubtitleDataGeneration : mFetchMetaDataGeneration;