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

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

Extend stagefright tool to extract either album art or video frame.

Change-Id: Iab50924e37a1aad057470a349c8f1a81858424e9
parent 1ce98676
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -232,7 +232,7 @@ static void usage(const char *me) {
    fprintf(stderr, "       -m max-number-of-frames-to-decode in each pass\n");
    fprintf(stderr, "       -b bug to reproduce\n");
    fprintf(stderr, "       -p(rofiles) dump decoder profiles supported\n");
    fprintf(stderr, "       -t(humbnail) extract video thumbnail\n");
    fprintf(stderr, "       -t(humbnail) extract video thumbnail or album art\n");
    fprintf(stderr, "       -s(oftware) prefer software codec\n");
}

@@ -334,12 +334,24 @@ int main(int argc, char **argv) {
            const char *filename = argv[k];

            CHECK_EQ(retriever->setDataSource(filename), OK);
            CHECK_EQ(retriever->setMode(METADATA_MODE_FRAME_CAPTURE_ONLY), OK);
            CHECK_EQ(retriever->setMode(
                        METADATA_MODE_FRAME_CAPTURE_AND_METADATA_RETRIEVAL),
                     OK);

            sp<IMemory> mem = retriever->captureFrame();

            printf("captureFrame(%s) => %s\n",
                   filename, mem != NULL ? "OK" : "FAILED");
            if (mem != NULL) {
                printf("captureFrame(%s) => OK\n", filename);
            } else {
                mem = retriever->extractAlbumArt();

                if (mem != NULL) {
                    printf("extractAlbumArt(%s) => OK\n", filename);
                } else {
                    printf("both captureFrame and extractAlbumArt "
                           "failed on file '%s'.\n", filename);
                }
            }
        }

        return 0;