diff options
author | Andreas Huber <andih@google.com> | 2010-05-20 14:56:53 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-05-20 14:56:53 -0700 |
commit | 093437c388e5dff6903a3d43f2ca9f8a1ba4744a (patch) | |
tree | e60f6bdcb9589bd8476123a6aff0bb3836daa675 /media/libstagefright/StagefrightMetadataRetriever.cpp | |
parent | cf14f10b7bf39a84205333b87d5c5b7db9598de3 (diff) | |
download | frameworks_av-093437c388e5dff6903a3d43f2ca9f8a1ba4744a.zip frameworks_av-093437c388e5dff6903a3d43f2ca9f8a1ba4744a.tar.gz frameworks_av-093437c388e5dff6903a3d43f2ca9f8a1ba4744a.tar.bz2 |
Support for media extraction from .mkv/.mka Matroska files in stagefright.
Change-Id: I4c26579828ad575523ccf58b0b5cb144046c04ca
related-to-bug: 2483739
Diffstat (limited to 'media/libstagefright/StagefrightMetadataRetriever.cpp')
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index 258be74..9d89c20 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -378,6 +378,24 @@ void StagefrightMetadataRetriever::parseMetaData() { // The duration value is a string representing the duration in ms. sprintf(tmp, "%lld", (maxDurationUs + 500) / 1000); mMetaData.add(METADATA_KEY_DURATION, String8(tmp)); + + if (numTracks == 1) { + const char *fileMIME; + CHECK(meta->findCString(kKeyMIMEType, &fileMIME)); + + if (!strcasecmp(fileMIME, "video/x-matroska")) { + sp<MetaData> trackMeta = mExtractor->getTrackMetaData(0); + const char *trackMIME; + CHECK(trackMeta->findCString(kKeyMIMEType, &trackMIME)); + + if (!strncasecmp("audio/", trackMIME, 6)) { + // The matroska file only contains a single audio track, + // rewrite its mime type. + mMetaData.add( + METADATA_KEY_MIMETYPE, String8("audio/x-matroska")); + } + } + } } |