diff options
author | Chris Watkins <watk@google.com> | 2015-04-16 17:06:37 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-16 17:06:42 +0000 |
commit | c224ec53a17994fa97ab2f29304647c9f195c51c (patch) | |
tree | 6086a1cf5720b82e7dc25b7ecd60af39d66c738d /media/libstagefright/StagefrightMetadataRetriever.cpp | |
parent | f2326ac96366ec4d05f470cc4a0b407e7805bab7 (diff) | |
parent | 99f31604136d66ae10e20669fb6b5716f342bde0 (diff) | |
download | frameworks_av-c224ec53a17994fa97ab2f29304647c9f195c51c.zip frameworks_av-c224ec53a17994fa97ab2f29304647c9f195c51c.tar.gz frameworks_av-c224ec53a17994fa97ab2f29304647c9f195c51c.tar.bz2 |
Merge "Unhide the android.media.[Media]DataSource interface."
Diffstat (limited to 'media/libstagefright/StagefrightMetadataRetriever.cpp')
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index 820b2fc..e9566f2 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -47,10 +47,7 @@ StagefrightMetadataRetriever::StagefrightMetadataRetriever() StagefrightMetadataRetriever::~StagefrightMetadataRetriever() { ALOGV("~StagefrightMetadataRetriever()"); - - delete mAlbumArt; - mAlbumArt = NULL; - + clearMetadata(); mClient.disconnect(); } @@ -60,11 +57,7 @@ status_t StagefrightMetadataRetriever::setDataSource( const KeyedVector<String8, String8> *headers) { ALOGV("setDataSource(%s)", uri); - mParsedMetaData = false; - mMetaData.clear(); - delete mAlbumArt; - mAlbumArt = NULL; - + clearMetadata(); mSource = DataSource::CreateFromURI(httpService, uri, headers); if (mSource == NULL) { @@ -92,11 +85,7 @@ status_t StagefrightMetadataRetriever::setDataSource( ALOGV("setDataSource(%d, %" PRId64 ", %" PRId64 ")", fd, offset, length); - mParsedMetaData = false; - mMetaData.clear(); - delete mAlbumArt; - mAlbumArt = NULL; - + clearMetadata(); mSource = new FileSource(fd, offset, length); status_t err; @@ -117,6 +106,23 @@ status_t StagefrightMetadataRetriever::setDataSource( return OK; } +status_t StagefrightMetadataRetriever::setDataSource( + const sp<DataSource>& source) { + ALOGV("setDataSource(DataSource)"); + + clearMetadata(); + mSource = source; + mExtractor = MediaExtractor::Create(mSource); + + if (mExtractor == NULL) { + ALOGE("Failed to instantiate a MediaExtractor."); + mSource.clear(); + return UNKNOWN_ERROR; + } + + return OK; +} + static bool isYUV420PlanarSupported( OMXClient *client, const sp<MetaData> &trackMeta) { @@ -635,4 +641,11 @@ void StagefrightMetadataRetriever::parseMetaData() { } } +void StagefrightMetadataRetriever::clearMetadata() { + mParsedMetaData = false; + mMetaData.clear(); + delete mAlbumArt; + mAlbumArt = NULL; +} + } // namespace android |