diff options
author | Gloria Wang <gwang@google.com> | 2010-06-22 13:55:38 -0700 |
---|---|---|
committer | Gloria Wang <gwang@google.com> | 2010-10-25 12:16:56 -0700 |
commit | d5770917a50a828cb4337c2a392b3e4a375624b9 (patch) | |
tree | 0ba25dd389bab286b27c178e9598cea45cd1cbe6 /media/libstagefright/MediaExtractor.cpp | |
parent | c5371fadf2753d074ef117685fed05b0140d6864 (diff) | |
download | frameworks_base-d5770917a50a828cb4337c2a392b3e4a375624b9.zip frameworks_base-d5770917a50a828cb4337c2a392b3e4a375624b9.tar.gz frameworks_base-d5770917a50a828cb4337c2a392b3e4a375624b9.tar.bz2 |
DRM framework support:
- add a sniffer for DRM files
- add DRMSource and DRMExtractor for es_based DRM
- add pread in FileSource.cpp for container_based DRM
- add native DRM framework API calls in the player for
DRM audio/video playback
Change-Id: I4b9ef19165c9b4f44ff40eeededb9a665e78a90f
Diffstat (limited to 'media/libstagefright/MediaExtractor.cpp')
-rw-r--r-- | media/libstagefright/MediaExtractor.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/media/libstagefright/MediaExtractor.cpp b/media/libstagefright/MediaExtractor.cpp index 513f49c..a8019ee 100644 --- a/media/libstagefright/MediaExtractor.cpp +++ b/media/libstagefright/MediaExtractor.cpp @@ -23,6 +23,7 @@ #include "include/MPEG4Extractor.h" #include "include/WAVExtractor.h" #include "include/OggExtractor.h" +#include "include/DRMExtractor.h" #include <media/stagefright/DataSource.h> #include <media/stagefright/MediaDefs.h> @@ -57,6 +58,18 @@ sp<MediaExtractor> MediaExtractor::Create( mime, confidence); } + if (!strncmp(mime, "drm", 3)) { + char *originalMime = strrchr(mime, '+') + 1; + + if (!strncmp(mime, "drm+es_based", 12)) { + return new DRMExtractor(source, originalMime); + } else if (!strncmp(mime, "drm+container_based", 19)) { + mime = originalMime; + } else { + return NULL; + } + } + if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG4) || !strcasecmp(mime, "audio/mp4")) { return new MPEG4Extractor(source); |