diff options
author | Marco Nelissen <marcone@google.com> | 2012-08-24 10:37:39 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-08-24 10:37:39 -0700 |
commit | ff3f75c3e827c1c1f3e3a11b1de46b19444af197 (patch) | |
tree | 5b660851627c1926b96278f9dac189b36b17e3cf /media | |
parent | 6de95261c619d53f3e7b431fd17995e73928571e (diff) | |
parent | dbcb4c17f16230dfc6af908f176681c49f61b13e (diff) | |
download | frameworks_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.cpp | 16 |
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(); |