diff options
author | Andreas Huber <andih@google.com> | 2010-08-25 11:09:41 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-08-25 13:08:38 -0700 |
commit | 5a1c3529e4fa2f8a11054181294e0ce79fff8dd3 (patch) | |
tree | 06386bceb568bf27c3fff03139ac0745ec1c4eba /media/libstagefright/MediaExtractor.cpp | |
parent | fce49325d807c278229a594c1cc866e21da0e155 (diff) | |
download | frameworks_av-5a1c3529e4fa2f8a11054181294e0ce79fff8dd3.zip frameworks_av-5a1c3529e4fa2f8a11054181294e0ce79fff8dd3.tar.gz frameworks_av-5a1c3529e4fa2f8a11054181294e0ce79fff8dd3.tar.bz2 |
Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.
Change-Id: Icb77ae3ee95a69c7da25b4d3b8696c0a2d33028a
related-to-bug: 2948754
Diffstat (limited to 'media/libstagefright/MediaExtractor.cpp')
-rw-r--r-- | media/libstagefright/MediaExtractor.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/media/libstagefright/MediaExtractor.cpp b/media/libstagefright/MediaExtractor.cpp index 56e6136..9bc94de 100644 --- a/media/libstagefright/MediaExtractor.cpp +++ b/media/libstagefright/MediaExtractor.cpp @@ -27,6 +27,7 @@ #include "matroska/MatroskaExtractor.h" +#include <media/stagefright/foundation/AMessage.h> #include <media/stagefright/DataSource.h> #include <media/stagefright/MediaDefs.h> #include <media/stagefright/MediaExtractor.h> @@ -46,10 +47,12 @@ uint32_t MediaExtractor::flags() const { // static sp<MediaExtractor> MediaExtractor::Create( const sp<DataSource> &source, const char *mime) { + sp<AMessage> meta; + String8 tmp; if (mime == NULL) { float confidence; - if (!source->sniff(&tmp, &confidence)) { + if (!source->sniff(&tmp, &confidence, &meta)) { LOGV("FAILED to autodetect media content."); return NULL; @@ -64,7 +67,7 @@ sp<MediaExtractor> MediaExtractor::Create( || !strcasecmp(mime, "audio/mp4")) { return new MPEG4Extractor(source); } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_MPEG)) { - return new MP3Extractor(source); + return new MP3Extractor(source, meta); } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_NB) || !strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_WB)) { return new AMRExtractor(source); |