summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MediaExtractor.cpp
diff options
context:
space:
mode:
authorGloria Wang <gwang@google.com>2010-06-22 13:55:38 -0700
committerGloria Wang <gwang@google.com>2010-10-25 12:16:56 -0700
commitdcd25efb46c41c8d24a0a9cf61fb57f84149709e (patch)
tree6b6d165ba952924f1cd1b77f3a0903e5da31445a /media/libstagefright/MediaExtractor.cpp
parent2272ee27d9022d173b6eab45c409b3c3f57f30ec (diff)
downloadframeworks_av-dcd25efb46c41c8d24a0a9cf61fb57f84149709e.zip
frameworks_av-dcd25efb46c41c8d24a0a9cf61fb57f84149709e.tar.gz
frameworks_av-dcd25efb46c41c8d24a0a9cf61fb57f84149709e.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.cpp13
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);