Loading cmds/stagefright/JPEGSource.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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); Loading cmds/stagefright/SineSource.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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); Loading cmds/stagefright/record.cpp +6 −4 Original line number Diff line number Diff line Loading @@ -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> Loading @@ -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; } Loading Loading @@ -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); Loading Loading @@ -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); Loading cmds/stagefright/stagefright.cpp +57 −1 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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) { Loading @@ -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': { Loading Loading @@ -174,6 +177,12 @@ int main(int argc, char **argv) { break; } case 'p': { dumpProfiles = true; break; } case '?': case 'h': default: Loading @@ -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")); Loading include/media/stagefright/MediaDefs.h 0 → 100644 +40 −0 Original line number Diff line number Diff line /* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MEDIA_DEFS_H_ #define MEDIA_DEFS_H_ namespace android { extern const char *MEDIA_MIMETYPE_IMAGE_JPEG; extern const char *MEDIA_MIMETYPE_VIDEO_AVC; extern const char *MEDIA_MIMETYPE_VIDEO_MPEG4; extern const char *MEDIA_MIMETYPE_VIDEO_H263; extern const char *MEDIA_MIMETYPE_VIDEO_RAW; extern const char *MEDIA_MIMETYPE_AUDIO_AMR_NB; extern const char *MEDIA_MIMETYPE_AUDIO_AMR_WB; extern const char *MEDIA_MIMETYPE_AUDIO_MPEG; extern const char *MEDIA_MIMETYPE_AUDIO_AAC; extern const char *MEDIA_MIMETYPE_AUDIO_RAW; extern const char *MEDIA_MIMETYPE_CONTAINER_MPEG4; } // namespace android #endif // MEDIA_DEFS_H_ Loading
cmds/stagefright/JPEGSource.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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); Loading
cmds/stagefright/SineSource.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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); Loading
cmds/stagefright/record.cpp +6 −4 Original line number Diff line number Diff line Loading @@ -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> Loading @@ -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; } Loading Loading @@ -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); Loading Loading @@ -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); Loading
cmds/stagefright/stagefright.cpp +57 −1 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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) { Loading @@ -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': { Loading Loading @@ -174,6 +177,12 @@ int main(int argc, char **argv) { break; } case 'p': { dumpProfiles = true; break; } case '?': case 'h': default: Loading @@ -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")); Loading
include/media/stagefright/MediaDefs.h 0 → 100644 +40 −0 Original line number Diff line number Diff line /* * Copyright (C) 2009 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MEDIA_DEFS_H_ #define MEDIA_DEFS_H_ namespace android { extern const char *MEDIA_MIMETYPE_IMAGE_JPEG; extern const char *MEDIA_MIMETYPE_VIDEO_AVC; extern const char *MEDIA_MIMETYPE_VIDEO_MPEG4; extern const char *MEDIA_MIMETYPE_VIDEO_H263; extern const char *MEDIA_MIMETYPE_VIDEO_RAW; extern const char *MEDIA_MIMETYPE_AUDIO_AMR_NB; extern const char *MEDIA_MIMETYPE_AUDIO_AMR_WB; extern const char *MEDIA_MIMETYPE_AUDIO_MPEG; extern const char *MEDIA_MIMETYPE_AUDIO_AAC; extern const char *MEDIA_MIMETYPE_AUDIO_RAW; extern const char *MEDIA_MIMETYPE_CONTAINER_MPEG4; } // namespace android #endif // MEDIA_DEFS_H_