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

Commit a0cf6c4d authored by Robert Shih's avatar Robert Shih
Browse files

muxer: skip tracks unsupported by MediaMuxer instead of aborting

Bug: 17007397
Change-Id: Id3f3d54a58c76554227e3c103fdbb39422a54496
parent 464c7e08
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -142,9 +142,14 @@ static int muxing(
        CHECK_EQ(err, (status_t)OK);

        ssize_t newTrackIndex = muxer->addTrack(format);
        CHECK_GE(newTrackIndex, 0);
        if (newTrackIndex < 0) {
            fprintf(stderr, "%s track (%d) unsupported by muxer\n",
                    isAudio ? "audio" : "video",
                    i);
        } else {
            trackIndexMap.add(i, newTrackIndex);
        }
    }

    int64_t muxerStartTimeUs = ALooper::GetNowUs();

@@ -162,7 +167,12 @@ static int muxing(
            ALOGV("saw input eos, err %d", err);
            sawInputEOS = true;
            break;
        } else if (trackIndexMap.indexOfKey(trackIndex) < 0) {
            // ALOGV("skipping input from unsupported track %zu", trackIndex);
            extractor->advance();
            continue;
        } else {
            // ALOGV("reading sample from track index %zu\n", trackIndex);
            err = extractor->readSampleData(newBuffer);
            CHECK_EQ(err, (status_t)OK);