diff options
author | James Dong <jdong@google.com> | 2011-06-13 17:20:27 -0700 |
---|---|---|
committer | James Dong <jdong@google.com> | 2011-06-13 17:23:01 -0700 |
commit | cfc7a7feb81b946341bc01ade68291bf8b6e1037 (patch) | |
tree | 607216710958265021d261f808354bdf8b5e7067 /cmds | |
parent | afcedc9e6f17d8213d9bd8f6c36643dcc816d0ef (diff) | |
download | frameworks_av-cfc7a7feb81b946341bc01ade68291bf8b6e1037.zip frameworks_av-cfc7a7feb81b946341bc01ade68291bf8b6e1037.tar.gz frameworks_av-cfc7a7feb81b946341bc01ade68291bf8b6e1037.tar.bz2 |
Add an option to force to use HW codec in stagefright cmd tool
Change-Id: If6c277dd5a3f7a0b62acd6721343618b0be085fc
Diffstat (limited to 'cmds')
-rw-r--r-- | cmds/stagefright/stagefright.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp index 01262fa..ca77185 100644 --- a/cmds/stagefright/stagefright.cpp +++ b/cmds/stagefright/stagefright.cpp @@ -66,6 +66,7 @@ static long gNumRepetitions; static long gMaxNumFrames; // 0 means decode all available. static long gReproduceBug; // if not -1. static bool gPreferSoftwareCodec; +static bool gForceToUseHardwareCodec; static bool gPlaybackAudio; static bool gWriteMP4; static bool gDisplayHistogram; @@ -144,10 +145,18 @@ static void playSource(OMXClient *client, sp<MediaSource> &source) { if (!strcasecmp(MEDIA_MIMETYPE_AUDIO_RAW, mime)) { rawSource = source; } else { + int flags = 0; + if (gPreferSoftwareCodec) { + flags |= OMXCodec::kPreferSoftwareCodecs; + } + if (gForceToUseHardwareCodec) { + CHECK(!gPreferSoftwareCodec); + flags |= OMXCodec::kHardwareCodecsOnly; + } rawSource = OMXCodec::Create( client->interface(), meta, false /* createEncoder */, source, NULL /* matchComponentName */, - gPreferSoftwareCodec ? OMXCodec::kPreferSoftwareCodecs : 0, + flags, gSurface); if (rawSource == NULL) { @@ -545,6 +554,7 @@ static void usage(const char *me) { fprintf(stderr, " -p(rofiles) dump decoder profiles supported\n"); fprintf(stderr, " -t(humbnail) extract video thumbnail or album art\n"); fprintf(stderr, " -s(oftware) prefer software codec\n"); + fprintf(stderr, " -r(hardware) force to use hardware codec\n"); fprintf(stderr, " -o playback audio\n"); fprintf(stderr, " -w(rite) filename (write to .mp4 file)\n"); fprintf(stderr, " -k seek test\n"); @@ -566,6 +576,7 @@ int main(int argc, char **argv) { gMaxNumFrames = 0; gReproduceBug = -1; gPreferSoftwareCodec = false; + gForceToUseHardwareCodec = false; gPlaybackAudio = false; gWriteMP4 = false; gDisplayHistogram = false; @@ -575,7 +586,7 @@ int main(int argc, char **argv) { sp<LiveSession> liveSession; int res; - while ((res = getopt(argc, argv, "han:lm:b:ptsow:kxS")) >= 0) { + while ((res = getopt(argc, argv, "han:lm:b:ptsrow:kxS")) >= 0) { switch (res) { case 'a': { @@ -636,6 +647,12 @@ int main(int argc, char **argv) { break; } + case 'r': + { + gForceToUseHardwareCodec = true; + break; + } + case 'o': { gPlaybackAudio = true; |