summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2012-08-24 10:37:39 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-08-24 10:37:39 -0700
commitff3f75c3e827c1c1f3e3a11b1de46b19444af197 (patch)
tree5b660851627c1926b96278f9dac189b36b17e3cf /media
parent6de95261c619d53f3e7b431fd17995e73928571e (diff)
parentdbcb4c17f16230dfc6af908f176681c49f61b13e (diff)
downloadframeworks_av-ff3f75c3e827c1c1f3e3a11b1de46b19444af197.zip
frameworks_av-ff3f75c3e827c1c1f3e3a11b1de46b19444af197.tar.gz
frameworks_av-ff3f75c3e827c1c1f3e3a11b1de46b19444af197.tar.bz2
Merge "Allow directly setting a DataSource for NuMediaExtractor" into jb-mr1-dev
Diffstat (limited to 'media')
-rw-r--r--media/libstagefright/NuMediaExtractor.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/media/libstagefright/NuMediaExtractor.cpp b/media/libstagefright/NuMediaExtractor.cpp
index 64e5403..bf833dc 100644
--- a/media/libstagefright/NuMediaExtractor.cpp
+++ b/media/libstagefright/NuMediaExtractor.cpp
@@ -134,18 +134,28 @@ status_t NuMediaExtractor::setDataSource(int fd, off64_t offset, off64_t size) {
sp<FileSource> fileSource = new FileSource(dup(fd), offset, size);
- status_t err = fileSource->initCheck();
+ return setDataSource(fileSource);
+}
+
+status_t NuMediaExtractor::setDataSource(const sp<DataSource> &source) {
+ Mutex::Autolock autoLock(mLock);
+
+ if (mImpl != NULL) {
+ return -EINVAL;
+ }
+
+ status_t err = source->initCheck();
if (err != OK) {
return err;
}
- mImpl = MediaExtractor::Create(fileSource);
+ mImpl = MediaExtractor::Create(source);
if (mImpl == NULL) {
return ERROR_UNSUPPORTED;
}
- mDataSource = fileSource;
+ mDataSource = source;
updateDurationAndBitrate();