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

Commit 0fb64778 authored by Andreas Huber's avatar Andreas Huber
Browse files

Extend stagefright commandline up to enable vendor to reproduce specific bugs filed.

parent 42978e55
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ using namespace android;

static long gNumRepetitions;
static long gMaxNumFrames;  // 0 means decode all available.
static long gReproduceBug;  // if not -1.

static int64_t getNowUs() {
    struct timeval tv;
@@ -100,6 +101,11 @@ static void playSource(OMXClient *client, const sp<MediaSource> &source) {
            if (gMaxNumFrames > 0 && numFrames == gMaxNumFrames) {
                break;
            }

            if (gReproduceBug == 1 && numFrames == 40) {
                printf("seeking past the end now.");
                options.setSeekTo(LONG_MAX);
            }
        }

        printf("$");
@@ -124,6 +130,7 @@ static void usage(const char *me) {
    fprintf(stderr, "       -n repetitions\n");
    fprintf(stderr, "       -l(ist) components\n");
    fprintf(stderr, "       -m max-number-of-frames-to-decode in each pass\n");
    fprintf(stderr, "       -b bug to reproduce\n");
}

int main(int argc, char **argv) {
@@ -133,9 +140,10 @@ int main(int argc, char **argv) {
    bool listComponents = false;
    gNumRepetitions = 1;
    gMaxNumFrames = 0;
    gReproduceBug = -1;

    int res;
    while ((res = getopt(argc, argv, "han:lm:")) >= 0) {
    while ((res = getopt(argc, argv, "han:lm:b:")) >= 0) {
        switch (res) {
            case 'a':
            {
@@ -151,6 +159,7 @@ int main(int argc, char **argv) {

            case 'm':
            case 'n':
            case 'b':
            {
                char *end;
                long x = strtol(optarg, &end, 10);
@@ -161,8 +170,11 @@ int main(int argc, char **argv) {

                if (res == 'n') {
                    gNumRepetitions = x;
                } else {
                } else if (res == 'm') {
                    gMaxNumFrames = x;
                } else {
                    CHECK_EQ(res, 'b');
                    gReproduceBug = x;
                }
                break;
            }