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/libmediaplayerservice/MetadataRetrieverClient.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/libmediaplayerservice/MetadataRetrieverClient.cpp')
-rw-r--r-- | media/libmediaplayerservice/MetadataRetrieverClient.cpp | 18 |
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); |