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

Commit 5802bad0 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "b23270724" into lmp-dev

* changes:
  MediaExtractor: ensure users to check returned value by getTrack.
  Don't CHECK if the source can't be started
parents b41a5271 8ad90bb0
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1023,6 +1023,10 @@ int main(int argc, char **argv) {
                bool haveVideo = false;
                for (size_t i = 0; i < numTracks; ++i) {
                    sp<MediaSource> source = extractor->getTrack(i);
                    if (source == NULL) {
                        fprintf(stderr, "skip NULL track %zu, track count %zu.\n", i, numTracks);
                        continue;
                    }

                    const char *mime;
                    CHECK(source->getFormat()->findCString(
@@ -1082,6 +1086,10 @@ int main(int argc, char **argv) {
                }

                mediaSource = extractor->getTrack(i);
                if (mediaSource == NULL) {
                    fprintf(stderr, "skip NULL track %zu, total tracks %zu.\n", i, numTracks);
                    return -1;
                }
            }
        }

+8 −2
Original line number Diff line number Diff line
@@ -171,7 +171,8 @@ MyConvertingStreamSource::MyConvertingStreamSource(const char *filename)
    mWriter = new MPEG2TSWriter(
            this, &MyConvertingStreamSource::WriteDataWrapper);

    for (size_t i = 0; i < extractor->countTracks(); ++i) {
    size_t numTracks = extractor->countTracks();
    for (size_t i = 0; i < numTracks; ++i) {
        const sp<MetaData> &meta = extractor->getTrackMetaData(i);

        const char *mime;
@@ -181,7 +182,12 @@ MyConvertingStreamSource::MyConvertingStreamSource(const char *filename)
            continue;
        }

        CHECK_EQ(mWriter->addSource(extractor->getTrack(i)), (status_t)OK);
        sp<IMediaSource> track = extractor->getTrack(i);
        if (track == nullptr) {
            fprintf(stderr, "skip NULL track %zu, total tracks %zu\n", i, numTracks);
            continue;
        }
        CHECK_EQ(mWriter->addSource(track), (status_t)OK);
    }

    CHECK_EQ(mWriter->start(), (status_t)OK);
+8 −1
Original line number Diff line number Diff line
@@ -280,7 +280,14 @@ status_t NuMediaExtractor::selectTrack(size_t index) {

    sp<MediaSource> source = mImpl->getTrack(index);

    CHECK_EQ((status_t)OK, source->start());
    if (source == NULL) {
        return ERROR_MALFORMED;
    }

    status_t ret = source->start();
    if (ret != OK) {
        return ret;
    }

    mSelectedTracks.push();
    TrackInfo *info = &mSelectedTracks.editItemAt(mSelectedTracks.size() - 1);