Loading media/libstagefright/DataSource.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -48,6 +48,8 @@ #include <cutils/properties.h> #include <private/android_filesystem_config.h> namespace android { bool DataSource::getUInt16(off64_t offset, uint16_t *x) { Loading Loading @@ -173,7 +175,10 @@ void DataSource::RegisterDefaultSniffers() { RegisterSniffer_l(SniffMP3); RegisterSniffer_l(SniffAAC); RegisterSniffer_l(SniffMPEG2PS); if (getuid() == AID_MEDIA) { // WVM only in the media server process RegisterSniffer_l(SniffWVM); } RegisterSniffer_l(SniffMidi); char value[PROPERTY_VALUE_MAX]; Loading media/libstagefright/MediaExtractor.cpp +12 −1 Original line number Diff line number Diff line Loading @@ -138,6 +138,17 @@ sp<IMediaExtractor> MediaExtractor::Create( // remote extractor ALOGV("get service manager"); sp<IBinder> binder = defaultServiceManager()->getService(String16("media.extractor")); // Check if it's WVM, since WVMExtractor needs to be created in the media server process, // not the extractor process. String8 mime8; float confidence; sp<AMessage> meta; if (SniffWVM(source, &mime8, &confidence, &meta) && !strcasecmp(mime8, MEDIA_MIMETYPE_CONTAINER_WVM)) { return new WVMExtractor(source); } if (binder != 0) { sp<IMediaExtractorService> mediaExService(interface_cast<IMediaExtractorService>(binder)); sp<IMediaExtractor> ex = mediaExService->makeExtractor(RemoteDataSource::wrap(source), mime); Loading Loading @@ -213,7 +224,7 @@ sp<MediaExtractor> MediaExtractor::CreateFromService( ret = new MatroskaExtractor(source); } else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG2TS)) { ret = new MPEG2TSExtractor(source); } else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_WVM)) { } else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_WVM) && getuid() == AID_MEDIA) { // Return now. WVExtractor should not have the DrmFlag set in the block below. return new WVMExtractor(source); } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AAC_ADTS)) { Loading Loading
media/libstagefright/DataSource.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -48,6 +48,8 @@ #include <cutils/properties.h> #include <private/android_filesystem_config.h> namespace android { bool DataSource::getUInt16(off64_t offset, uint16_t *x) { Loading Loading @@ -173,7 +175,10 @@ void DataSource::RegisterDefaultSniffers() { RegisterSniffer_l(SniffMP3); RegisterSniffer_l(SniffAAC); RegisterSniffer_l(SniffMPEG2PS); if (getuid() == AID_MEDIA) { // WVM only in the media server process RegisterSniffer_l(SniffWVM); } RegisterSniffer_l(SniffMidi); char value[PROPERTY_VALUE_MAX]; Loading
media/libstagefright/MediaExtractor.cpp +12 −1 Original line number Diff line number Diff line Loading @@ -138,6 +138,17 @@ sp<IMediaExtractor> MediaExtractor::Create( // remote extractor ALOGV("get service manager"); sp<IBinder> binder = defaultServiceManager()->getService(String16("media.extractor")); // Check if it's WVM, since WVMExtractor needs to be created in the media server process, // not the extractor process. String8 mime8; float confidence; sp<AMessage> meta; if (SniffWVM(source, &mime8, &confidence, &meta) && !strcasecmp(mime8, MEDIA_MIMETYPE_CONTAINER_WVM)) { return new WVMExtractor(source); } if (binder != 0) { sp<IMediaExtractorService> mediaExService(interface_cast<IMediaExtractorService>(binder)); sp<IMediaExtractor> ex = mediaExService->makeExtractor(RemoteDataSource::wrap(source), mime); Loading Loading @@ -213,7 +224,7 @@ sp<MediaExtractor> MediaExtractor::CreateFromService( ret = new MatroskaExtractor(source); } else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG2TS)) { ret = new MPEG2TSExtractor(source); } else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_WVM)) { } else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_WVM) && getuid() == AID_MEDIA) { // Return now. WVExtractor should not have the DrmFlag set in the block below. return new WVMExtractor(source); } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AAC_ADTS)) { Loading