Loading media/libstagefright/NuMediaExtractor.cpp +35 −59 Original line number Diff line number Diff line Loading @@ -72,31 +72,17 @@ NuMediaExtractor::~NuMediaExtractor() { } } status_t NuMediaExtractor::setDataSource( const sp<MediaHTTPService> &httpService, const char *path, const KeyedVector<String8, String8> *headers) { Mutex::Autolock autoLock(mLock); if (mImpl != NULL || path == NULL) { return -EINVAL; } sp<DataSource> dataSource = DataSourceFactory::getInstance()->CreateFromURI(httpService, path, headers); if (dataSource == NULL) { return -ENOENT; } status_t NuMediaExtractor::initMediaExtractor(const sp<DataSource>& dataSource) { status_t err = OK; mImpl = MediaExtractorFactory::Create(dataSource); if (mImpl == NULL) { ALOGE("%s: failed to create MediaExtractor", __FUNCTION__); return ERROR_UNSUPPORTED; } setEntryPointToRemoteMediaExtractor(); status_t err = OK; if (!mCasToken.empty()) { err = mImpl->setMediaCas(mCasToken); if (err != OK) { Loading @@ -105,6 +91,10 @@ status_t NuMediaExtractor::setDataSource( } } // Get the name of the implementation. mName = mImpl->name(); // Update the duration and bitrate err = updateDurationAndBitrate(); if (err == OK) { mDataSource = dataSource; Loading @@ -113,6 +103,28 @@ status_t NuMediaExtractor::setDataSource( return OK; } status_t NuMediaExtractor::setDataSource( const sp<MediaHTTPService> &httpService, const char *path, const KeyedVector<String8, String8> *headers) { Mutex::Autolock autoLock(mLock); if (mImpl != NULL || path == NULL) { return -EINVAL; } sp<DataSource> dataSource = DataSourceFactory::getInstance()->CreateFromURI(httpService, path, headers); if (dataSource == NULL) { return -ENOENT; } // Initialize MediaExtractor using the data source initMediaExtractor(dataSource); return OK; } status_t NuMediaExtractor::setDataSource(int fd, off64_t offset, off64_t size) { ALOGV("setDataSource fd=%d (%s), offset=%lld, length=%lld", Loading @@ -131,26 +143,8 @@ status_t NuMediaExtractor::setDataSource(int fd, off64_t offset, off64_t size) { return err; } mImpl = MediaExtractorFactory::Create(fileSource); if (mImpl == NULL) { return ERROR_UNSUPPORTED; } setEntryPointToRemoteMediaExtractor(); if (!mCasToken.empty()) { err = mImpl->setMediaCas(mCasToken); if (err != OK) { ALOGE("%s: failed to setMediaCas (%d)", __FUNCTION__, err); return err; } } err = updateDurationAndBitrate(); if (err == OK) { mDataSource = fileSource; } // Initialize MediaExtractor using the file source initMediaExtractor(fileSource); return OK; } Loading @@ -166,32 +160,14 @@ status_t NuMediaExtractor::setDataSource(const sp<DataSource> &source) { return err; } mImpl = MediaExtractorFactory::Create(source); if (mImpl == NULL) { return ERROR_UNSUPPORTED; } setEntryPointToRemoteMediaExtractor(); if (!mCasToken.empty()) { err = mImpl->setMediaCas(mCasToken); if (err != OK) { ALOGE("%s: failed to setMediaCas (%d)", __FUNCTION__, err); return err; } } err = updateDurationAndBitrate(); if (err == OK) { mDataSource = source; } // Initialize MediaExtractor using the given data source initMediaExtractor(source); return err; } const char* NuMediaExtractor::getName() const { Mutex::Autolock autoLock(mLock); return mImpl == nullptr ? nullptr : mImpl->name().string(); return mImpl == nullptr ? nullptr : mName.string(); } static String8 arrayToString(const std::vector<uint8_t> &array) { Loading media/libstagefright/include/media/stagefright/NuMediaExtractor.h +2 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ private: Vector<TrackInfo> mSelectedTracks; int64_t mTotalBitrate; // in bits/sec int64_t mDurationUs; String8 mName; void setEntryPointToRemoteMediaExtractor(); Loading @@ -165,6 +166,7 @@ private: bool getTotalBitrate(int64_t *bitRate) const; status_t updateDurationAndBitrate(); status_t appendVorbisNumPageSamples(MediaBufferBase *mbuf, const sp<ABuffer> &buffer); status_t initMediaExtractor(const sp<DataSource>& dataSource); DISALLOW_EVIL_CONSTRUCTORS(NuMediaExtractor); }; Loading Loading
media/libstagefright/NuMediaExtractor.cpp +35 −59 Original line number Diff line number Diff line Loading @@ -72,31 +72,17 @@ NuMediaExtractor::~NuMediaExtractor() { } } status_t NuMediaExtractor::setDataSource( const sp<MediaHTTPService> &httpService, const char *path, const KeyedVector<String8, String8> *headers) { Mutex::Autolock autoLock(mLock); if (mImpl != NULL || path == NULL) { return -EINVAL; } sp<DataSource> dataSource = DataSourceFactory::getInstance()->CreateFromURI(httpService, path, headers); if (dataSource == NULL) { return -ENOENT; } status_t NuMediaExtractor::initMediaExtractor(const sp<DataSource>& dataSource) { status_t err = OK; mImpl = MediaExtractorFactory::Create(dataSource); if (mImpl == NULL) { ALOGE("%s: failed to create MediaExtractor", __FUNCTION__); return ERROR_UNSUPPORTED; } setEntryPointToRemoteMediaExtractor(); status_t err = OK; if (!mCasToken.empty()) { err = mImpl->setMediaCas(mCasToken); if (err != OK) { Loading @@ -105,6 +91,10 @@ status_t NuMediaExtractor::setDataSource( } } // Get the name of the implementation. mName = mImpl->name(); // Update the duration and bitrate err = updateDurationAndBitrate(); if (err == OK) { mDataSource = dataSource; Loading @@ -113,6 +103,28 @@ status_t NuMediaExtractor::setDataSource( return OK; } status_t NuMediaExtractor::setDataSource( const sp<MediaHTTPService> &httpService, const char *path, const KeyedVector<String8, String8> *headers) { Mutex::Autolock autoLock(mLock); if (mImpl != NULL || path == NULL) { return -EINVAL; } sp<DataSource> dataSource = DataSourceFactory::getInstance()->CreateFromURI(httpService, path, headers); if (dataSource == NULL) { return -ENOENT; } // Initialize MediaExtractor using the data source initMediaExtractor(dataSource); return OK; } status_t NuMediaExtractor::setDataSource(int fd, off64_t offset, off64_t size) { ALOGV("setDataSource fd=%d (%s), offset=%lld, length=%lld", Loading @@ -131,26 +143,8 @@ status_t NuMediaExtractor::setDataSource(int fd, off64_t offset, off64_t size) { return err; } mImpl = MediaExtractorFactory::Create(fileSource); if (mImpl == NULL) { return ERROR_UNSUPPORTED; } setEntryPointToRemoteMediaExtractor(); if (!mCasToken.empty()) { err = mImpl->setMediaCas(mCasToken); if (err != OK) { ALOGE("%s: failed to setMediaCas (%d)", __FUNCTION__, err); return err; } } err = updateDurationAndBitrate(); if (err == OK) { mDataSource = fileSource; } // Initialize MediaExtractor using the file source initMediaExtractor(fileSource); return OK; } Loading @@ -166,32 +160,14 @@ status_t NuMediaExtractor::setDataSource(const sp<DataSource> &source) { return err; } mImpl = MediaExtractorFactory::Create(source); if (mImpl == NULL) { return ERROR_UNSUPPORTED; } setEntryPointToRemoteMediaExtractor(); if (!mCasToken.empty()) { err = mImpl->setMediaCas(mCasToken); if (err != OK) { ALOGE("%s: failed to setMediaCas (%d)", __FUNCTION__, err); return err; } } err = updateDurationAndBitrate(); if (err == OK) { mDataSource = source; } // Initialize MediaExtractor using the given data source initMediaExtractor(source); return err; } const char* NuMediaExtractor::getName() const { Mutex::Autolock autoLock(mLock); return mImpl == nullptr ? nullptr : mImpl->name().string(); return mImpl == nullptr ? nullptr : mName.string(); } static String8 arrayToString(const std::vector<uint8_t> &array) { Loading
media/libstagefright/include/media/stagefright/NuMediaExtractor.h +2 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ private: Vector<TrackInfo> mSelectedTracks; int64_t mTotalBitrate; // in bits/sec int64_t mDurationUs; String8 mName; void setEntryPointToRemoteMediaExtractor(); Loading @@ -165,6 +166,7 @@ private: bool getTotalBitrate(int64_t *bitRate) const; status_t updateDurationAndBitrate(); status_t appendVorbisNumPageSamples(MediaBufferBase *mbuf, const sp<ABuffer> &buffer); status_t initMediaExtractor(const sp<DataSource>& dataSource); DISALLOW_EVIL_CONSTRUCTORS(NuMediaExtractor); }; Loading