summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/MetadataRetrieverClient.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/libmediaplayerservice/MetadataRetrieverClient.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/libmediaplayerservice/MetadataRetrieverClient.cpp')
-rw-r--r--media/libmediaplayerservice/MetadataRetrieverClient.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/MetadataRetrieverClient.cpp b/media/libmediaplayerservice/MetadataRetrieverClient.cpp
index 715cc0c..80804a7 100644
--- a/media/libmediaplayerservice/MetadataRetrieverClient.cpp
+++ b/media/libmediaplayerservice/MetadataRetrieverClient.cpp
@@ -34,6 +34,7 @@
#include <media/IMediaHTTPService.h>
#include <media/MediaMetadataRetrieverInterface.h>
#include <media/MediaPlayerInterface.h>
+#include <media/stagefright/DataSource.h>
#include <private/media/VideoFrame.h>
#include "MetadataRetrieverClient.h"
#include "StagefrightMetadataRetriever.h"
@@ -173,6 +174,23 @@ status_t MetadataRetrieverClient::setDataSource(int fd, int64_t offset, int64_t
return status;
}
+status_t MetadataRetrieverClient::setDataSource(
+ const sp<IDataSource>& source)
+{
+ ALOGV("setDataSource(IDataSource)");
+ Mutex::Autolock lock(mLock);
+
+ sp<DataSource> dataSource = DataSource::CreateFromIDataSource(source);
+ player_type playerType =
+ MediaPlayerFactory::getPlayerType(NULL /* client */, dataSource);
+ ALOGV("player type = %d", playerType);
+ sp<MediaMetadataRetrieverBase> p = createRetriever(playerType);
+ if (p == NULL) return NO_INIT;
+ status_t ret = p->setDataSource(dataSource);
+ if (ret == NO_ERROR) mRetriever = p;
+ return ret;
+}
+
sp<IMemory> MetadataRetrieverClient::getFrameAtTime(int64_t timeUs, int option)
{
ALOGV("getFrameAtTime: time(%lld us) option(%d)", timeUs, option);