diff options
-rw-r--r-- | include/media/mediametadataretriever.h | 1 | ||||
-rw-r--r-- | include/media/stagefright/MediaExtractor.h | 9 | ||||
-rw-r--r-- | media/libstagefright/MPEG4Extractor.cpp | 4 | ||||
-rw-r--r-- | media/libstagefright/MediaExtractor.cpp | 9 | ||||
-rw-r--r-- | media/libstagefright/StagefrightMediaScanner.cpp | 1 | ||||
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 5 | ||||
-rw-r--r-- | media/libstagefright/include/MPEG4Extractor.h | 1 |
7 files changed, 22 insertions, 8 deletions
diff --git a/include/media/mediametadataretriever.h b/include/media/mediametadataretriever.h index 28f305d..9aa6700 100644 --- a/include/media/mediametadataretriever.h +++ b/include/media/mediametadataretriever.h @@ -53,6 +53,7 @@ enum { METADATA_KEY_VIDEO_HEIGHT = 19, METADATA_KEY_BITRATE = 20, METADATA_KEY_TIMED_TEXT_LANGUAGES = 21, + METADATA_KEY_IS_DRM = 22, // Add more here... }; diff --git a/include/media/stagefright/MediaExtractor.h b/include/media/stagefright/MediaExtractor.h index a82106e..eb45237 100644 --- a/include/media/stagefright/MediaExtractor.h +++ b/include/media/stagefright/MediaExtractor.h @@ -56,7 +56,12 @@ public: virtual uint32_t flags() const; // for DRM - virtual void setDrmFlag(bool flag) {}; + virtual void setDrmFlag(bool flag) { + mIsDrm = flag; + }; + virtual bool getDrmFlag() { + return mIsDrm; + } virtual char* getDrmTrackInfo(size_t trackID, int *len) { return NULL; } @@ -66,6 +71,8 @@ protected: virtual ~MediaExtractor() {} private: + bool mIsDrm; + MediaExtractor(const MediaExtractor &); MediaExtractor &operator=(const MediaExtractor &); }; diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp index 5582f92..73a05a5 100644 --- a/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/MPEG4Extractor.cpp @@ -387,10 +387,6 @@ status_t MPEG4Extractor::readMetaData() { return mInitCheck; } -void MPEG4Extractor::setDrmFlag(bool flag) { - mIsDrm = flag; -} - char* MPEG4Extractor::getDrmTrackInfo(size_t trackID, int *len) { if (mFirstSINF == NULL) { return NULL; diff --git a/media/libstagefright/MediaExtractor.cpp b/media/libstagefright/MediaExtractor.cpp index af0131e..a8023df 100644 --- a/media/libstagefright/MediaExtractor.cpp +++ b/media/libstagefright/MediaExtractor.cpp @@ -116,8 +116,13 @@ sp<MediaExtractor> MediaExtractor::Create( } else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AAC_ADTS)) { ret = new AACExtractor(source); } - if (ret != NULL && isDrm) { - ret->getMetaData()->setInt32(kKeyIsDRM, 1); + + if (ret != NULL) { + if (isDrm) { + ret->setDrmFlag(true); + } else { + ret->setDrmFlag(false); + } } return ret; diff --git a/media/libstagefright/StagefrightMediaScanner.cpp b/media/libstagefright/StagefrightMediaScanner.cpp index f82ff32..89faff7 100644 --- a/media/libstagefright/StagefrightMediaScanner.cpp +++ b/media/libstagefright/StagefrightMediaScanner.cpp @@ -158,6 +158,7 @@ status_t StagefrightMediaScanner::processFile( { "duration", METADATA_KEY_DURATION }, { "writer", METADATA_KEY_WRITER }, { "compilation", METADATA_KEY_COMPILATION }, + { "isdrm", METADATA_KEY_IS_DRM }, }; static const size_t kNumEntries = sizeof(kKeyMap) / sizeof(kKeyMap[0]); diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index de3957b..778c0b5 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -530,6 +530,11 @@ void StagefrightMetadataRetriever::parseMetaData() { } } } + + // To check whether the media file is drm-protected + if (mExtractor->getDrmFlag()) { + mMetaData.add(METADATA_KEY_IS_DRM, String8("1")); + } } } // namespace android diff --git a/media/libstagefright/include/MPEG4Extractor.h b/media/libstagefright/include/MPEG4Extractor.h index 3bd4c7e..eae62c6 100644 --- a/media/libstagefright/include/MPEG4Extractor.h +++ b/media/libstagefright/include/MPEG4Extractor.h @@ -40,7 +40,6 @@ public: virtual sp<MetaData> getMetaData(); // for DRM - virtual void setDrmFlag(bool flag); virtual char* getDrmTrackInfo(size_t trackID, int *len); protected: |