summaryrefslogtreecommitdiffstats
path: root/cmds
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2009-09-10 14:13:30 -0700
committerAndreas Huber <andih@google.com>2009-09-10 14:43:36 -0700
commit18291bc20e55e8f3fd5feb786771a8ed32c19c59 (patch)
tree5651fb76f7bc732cb4a9ddfff919c73c2f8189c7 /cmds
parent8cd11d23197209e2c2bdb7980bc17e3f1257a118 (diff)
downloadframeworks_av-18291bc20e55e8f3fd5feb786771a8ed32c19c59.zip
frameworks_av-18291bc20e55e8f3fd5feb786771a8ed32c19c59.tar.gz
frameworks_av-18291bc20e55e8f3fd5feb786771a8ed32c19c59.tar.bz2
Media MIME types now have corresponding constants in MediaDefs.h, new codec enumeration API.
Diffstat (limited to 'cmds')
-rw-r--r--cmds/stagefright/JPEGSource.cpp3
-rw-r--r--cmds/stagefright/SineSource.cpp3
-rw-r--r--cmds/stagefright/record.cpp10
-rw-r--r--cmds/stagefright/stagefright.cpp58
4 files changed, 67 insertions, 7 deletions
diff --git a/cmds/stagefright/JPEGSource.cpp b/cmds/stagefright/JPEGSource.cpp
index 4e9ca4e..25c772f 100644
--- a/cmds/stagefright/JPEGSource.cpp
+++ b/cmds/stagefright/JPEGSource.cpp
@@ -23,6 +23,7 @@
#include <media/stagefright/DataSource.h>
#include <media/stagefright/MediaBufferGroup.h>
#include <media/stagefright/MediaDebug.h>
+#include <media/stagefright/MediaDefs.h>
#include <media/stagefright/MediaErrors.h>
#include <media/stagefright/MetaData.h>
@@ -99,7 +100,7 @@ status_t JPEGSource::stop() {
sp<MetaData> JPEGSource::getFormat() {
sp<MetaData> meta = new MetaData;
- meta->setCString(kKeyMIMEType, "image/jpeg");
+ meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_IMAGE_JPEG);
meta->setInt32(kKeyWidth, mWidth);
meta->setInt32(kKeyHeight, mHeight);
meta->setInt32(kKeyMaxInputSize, mSize);
diff --git a/cmds/stagefright/SineSource.cpp b/cmds/stagefright/SineSource.cpp
index 3c25a7f..e5a6ccb 100644
--- a/cmds/stagefright/SineSource.cpp
+++ b/cmds/stagefright/SineSource.cpp
@@ -4,6 +4,7 @@
#include <media/stagefright/MediaBufferGroup.h>
#include <media/stagefright/MediaDebug.h>
+#include <media/stagefright/MediaDefs.h>
#include <media/stagefright/MetaData.h>
namespace android {
@@ -48,7 +49,7 @@ status_t SineSource::stop() {
sp<MetaData> SineSource::getFormat() {
sp<MetaData> meta = new MetaData;
- meta->setCString(kKeyMIMEType, "audio/raw");
+ meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_RAW);
meta->setInt32(kKeyChannelCount, mNumChannels);
meta->setInt32(kKeySampleRate, mSampleRate);
diff --git a/cmds/stagefright/record.cpp b/cmds/stagefright/record.cpp
index 4751580..323d448 100644
--- a/cmds/stagefright/record.cpp
+++ b/cmds/stagefright/record.cpp
@@ -21,6 +21,7 @@
#include <media/stagefright/CameraSource.h>
#include <media/stagefright/MediaBufferGroup.h>
#include <media/stagefright/MediaDebug.h>
+#include <media/stagefright/MediaDefs.h>
#include <media/stagefright/MetaData.h>
#include <media/stagefright/MPEG4Extractor.h>
#include <media/stagefright/MPEG4Writer.h>
@@ -45,7 +46,7 @@ public:
sp<MetaData> meta = new MetaData;
meta->setInt32(kKeyWidth, mWidth);
meta->setInt32(kKeyHeight, mHeight);
- meta->setCString(kKeyMIMEType, "video/raw");
+ meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_VIDEO_RAW);
return meta;
}
@@ -149,8 +150,8 @@ int main(int argc, char **argv) {
#endif
sp<MetaData> enc_meta = new MetaData;
- // enc_meta->setCString(kKeyMIMEType, "video/3gpp");
- enc_meta->setCString(kKeyMIMEType, "video/mp4v-es");
+ // enc_meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_VIDEO_H263);
+ enc_meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_VIDEO_MPEG4);
enc_meta->setInt32(kKeyWidth, width);
enc_meta->setInt32(kKeyHeight, height);
@@ -228,7 +229,8 @@ int main(int argc, char **argv) {
#endif
sp<MetaData> encMeta = new MetaData;
- encMeta->setCString(kKeyMIMEType, 1 ? "audio/amr-wb" : "audio/mp4a-latm");
+ encMeta->setCString(kKeyMIMEType,
+ 1 ? MEDIA_MIMETYPE_AUDIO_AMR_WB : MEDIA_MIMETYPE_AUDIO_AAC);
encMeta->setInt32(kKeySampleRate, kSampleRate);
encMeta->setInt32(kKeyChannelCount, kNumChannels);
encMeta->setInt32(kKeyMaxInputSize, 8192);
diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp
index a0b83fb..d1926b4 100644
--- a/cmds/stagefright/stagefright.cpp
+++ b/cmds/stagefright/stagefright.cpp
@@ -26,6 +26,7 @@
#include <media/stagefright/CachingDataSource.h>
#include <media/stagefright/HTTPDataSource.h>
#include <media/stagefright/MediaDebug.h>
+#include <media/stagefright/MediaDefs.h>
#include <media/stagefright/MediaPlayerImpl.h>
#include <media/stagefright/MediaExtractor.h>
#include <media/stagefright/MediaSource.h>
@@ -126,6 +127,7 @@ static void usage(const char *me) {
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");
+ fprintf(stderr, " -p(rofiles) dump decoder profiles supported\n");
}
int main(int argc, char **argv) {
@@ -133,12 +135,13 @@ int main(int argc, char **argv) {
bool audioOnly = false;
bool listComponents = false;
+ bool dumpProfiles = false;
gNumRepetitions = 1;
gMaxNumFrames = 0;
gReproduceBug = -1;
int res;
- while ((res = getopt(argc, argv, "han:lm:b:")) >= 0) {
+ while ((res = getopt(argc, argv, "han:lm:b:p")) >= 0) {
switch (res) {
case 'a':
{
@@ -174,6 +177,12 @@ int main(int argc, char **argv) {
break;
}
+ case 'p':
+ {
+ dumpProfiles = true;
+ break;
+ }
+
case '?':
case 'h':
default:
@@ -188,6 +197,53 @@ int main(int argc, char **argv) {
argc -= optind;
argv += optind;
+ if (dumpProfiles) {
+ sp<IServiceManager> sm = defaultServiceManager();
+ sp<IBinder> binder = sm->getService(String16("media.player"));
+ sp<IMediaPlayerService> service =
+ interface_cast<IMediaPlayerService>(binder);
+
+ CHECK(service.get() != NULL);
+
+ sp<IOMX> omx = service->createOMX();
+ CHECK(omx.get() != NULL);
+
+ const char *kMimeTypes[] = {
+ MEDIA_MIMETYPE_VIDEO_AVC, MEDIA_MIMETYPE_VIDEO_MPEG4,
+ MEDIA_MIMETYPE_VIDEO_H263
+ };
+
+ for (size_t k = 0; k < sizeof(kMimeTypes) / sizeof(kMimeTypes[0]);
+ ++k) {
+ printf("type '%s':\n", kMimeTypes[k]);
+
+ Vector<CodecCapabilities> results;
+ CHECK_EQ(QueryCodecs(omx, kMimeTypes[k],
+ true, // queryDecoders
+ &results), OK);
+
+ for (size_t i = 0; i < results.size(); ++i) {
+ printf(" decoder '%s' supports ",
+ results[i].mComponentName.string());
+
+ if (results[i].mProfileLevels.size() == 0) {
+ printf("NOTHING.\n");
+ continue;
+ }
+
+ for (size_t j = 0; j < results[i].mProfileLevels.size(); ++j) {
+ const CodecProfileLevel &profileLevel =
+ results[i].mProfileLevels[j];
+
+ printf("%s%ld/%ld", j > 0 ? ", " : "",
+ profileLevel.mProfile, profileLevel.mLevel);
+ }
+
+ printf("\n");
+ }
+ }
+ }
+
if (listComponents) {
sp<IServiceManager> sm = defaultServiceManager();
sp<IBinder> binder = sm->getService(String16("media.player"));