summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/StagefrightMetadataRetriever.cpp
diff options
context:
space:
mode:
authorChris Watkins <watk@google.com>2015-04-16 17:06:37 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-16 17:06:42 +0000
commitc224ec53a17994fa97ab2f29304647c9f195c51c (patch)
tree6086a1cf5720b82e7dc25b7ecd60af39d66c738d /media/libstagefright/StagefrightMetadataRetriever.cpp
parentf2326ac96366ec4d05f470cc4a0b407e7805bab7 (diff)
parent99f31604136d66ae10e20669fb6b5716f342bde0 (diff)
downloadframeworks_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.cpp41
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