summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2009-08-27 12:10:02 -0700
committerAndreas Huber <andih@google.com>2009-08-27 12:10:02 -0700
commit80011fe130bc966aa357ed2b3dcc80cde2d0bb82 (patch)
tree17ce88129debbc944e967a5b6a7dcb0cb0327807
parent284f513a4ce2c5aa0e250c07c873731aedb0be26 (diff)
downloadframeworks_av-80011fe130bc966aa357ed2b3dcc80cde2d0bb82.zip
frameworks_av-80011fe130bc966aa357ed2b3dcc80cde2d0bb82.tar.gz
frameworks_av-80011fe130bc966aa357ed2b3dcc80cde2d0bb82.tar.bz2
Extend stagefright commandline up to enable vendor to reproduce specific bugs filed.
-rw-r--r--cmds/stagefright/stagefright.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp
index ac6fb36..e927aae 100644
--- a/cmds/stagefright/stagefright.cpp
+++ b/cmds/stagefright/stagefright.cpp
@@ -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;
}