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

Commit 1fad937a authored by Wei Jia's avatar Wei Jia Committed by android-build-merger
Browse files

MediaExtractor: ensure users to check returned value by getTrack.

am: 46e359cb

Change-Id: I4a953b55c86be7590e7cf54b01b01c26e98aba19
parents c3f16a62 46e359cb
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1030,6 +1030,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 == nullptr) {
                        fprintf(stderr, "skip NULL track %zu, track count %zu.\n", i, numTracks);
                        continue;
                    }

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

                mediaSource = extractor->getTrack(i);
                if (mediaSource == nullptr) {
                    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<MediaSource> 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);
+4 −0
Original line number Diff line number Diff line
@@ -280,6 +280,10 @@ status_t NuMediaExtractor::selectTrack(size_t index) {

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

    if (source == nullptr) {
        return ERROR_MALFORMED;
    }

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