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

Commit f4b7d940 authored by Andreas Huber's avatar Andreas Huber
Browse files

Better error logging during meta data retrieval. Fixed the stagefright

commandline tool to open the file to extract thumbnails from itself since
mediaserver may not have permission to open files.

Change-Id: Iabe16b3248e9bb0f266b0866a8d2ccba2ab7d2a8
related-to-bug: 6321237
parent b3eb2b7e
Loading
Loading
Loading
Loading
+12 −1
Original line number Original line Diff line number Diff line
@@ -775,7 +775,18 @@ int main(int argc, char **argv) {
            const char *filename = argv[k];
            const char *filename = argv[k];


            bool failed = true;
            bool failed = true;
            CHECK_EQ(retriever->setDataSource(filename), (status_t)OK);

            int fd = open(filename, O_RDONLY | O_LARGEFILE);
            CHECK_GE(fd, 0);

            off64_t fileSize = lseek64(fd, 0, SEEK_END);
            CHECK_GE(fileSize, 0ll);

            CHECK_EQ(retriever->setDataSource(fd, 0, fileSize), (status_t)OK);

            close(fd);
            fd = -1;

            sp<IMemory> mem =
            sp<IMemory> mem =
                    retriever->getFrameAtTime(-1,
                    retriever->getFrameAtTime(-1,
                                    MediaSource::ReadOptions::SEEK_PREVIOUS_SYNC);
                                    MediaSource::ReadOptions::SEEK_PREVIOUS_SYNC);
+2 −0
Original line number Original line Diff line number Diff line
@@ -38,6 +38,8 @@ FileSource::FileSource(const char *filename)


    if (mFd >= 0) {
    if (mFd >= 0) {
        mLength = lseek64(mFd, 0, SEEK_END);
        mLength = lseek64(mFd, 0, SEEK_END);
    } else {
        ALOGE("Failed to open file '%s'. (%s)", filename, strerror(errno));
    }
    }
}
}


+3 −0
Original line number Original line Diff line number Diff line
@@ -61,12 +61,15 @@ status_t StagefrightMetadataRetriever::setDataSource(
    mSource = DataSource::CreateFromURI(uri, headers);
    mSource = DataSource::CreateFromURI(uri, headers);


    if (mSource == NULL) {
    if (mSource == NULL) {
        ALOGE("Unable to create data source for '%s'.", uri);
        return UNKNOWN_ERROR;
        return UNKNOWN_ERROR;
    }
    }


    mExtractor = MediaExtractor::Create(mSource);
    mExtractor = MediaExtractor::Create(mSource);


    if (mExtractor == NULL) {
    if (mExtractor == NULL) {
        ALOGE("Unable to instantiate an extractor for '%s'.", uri);

        mSource.clear();
        mSource.clear();


        return UNKNOWN_ERROR;
        return UNKNOWN_ERROR;