Loading media/ndk/NdkMediaDataSource.cpp +17 −6 Original line number Diff line number Diff line Loading @@ -48,6 +48,8 @@ struct AMediaDataSource { AMediaDataSourceReadAt readAt; AMediaDataSourceGetSize getSize; AMediaDataSourceClose close; sp<DataSource> mImpl; uint32_t mFlags; }; NdkDataSource::NdkDataSource(AMediaDataSource *dataSource) Loading @@ -56,6 +58,8 @@ NdkDataSource::NdkDataSource(AMediaDataSource *dataSource) AMediaDataSource_setGetSize(mDataSource, dataSource->getSize); AMediaDataSource_setClose(mDataSource, dataSource->close); AMediaDataSource_setUserdata(mDataSource, dataSource->userdata); mDataSource->mImpl = dataSource->mImpl; mDataSource->mFlags = dataSource->mFlags; } NdkDataSource::~NdkDataSource() { Loading @@ -66,9 +70,13 @@ status_t NdkDataSource::initCheck() const { return OK; } uint32_t NdkDataSource::flags() { return mDataSource->mFlags; } ssize_t NdkDataSource::readAt(off64_t offset, void *data, size_t size) { Mutex::Autolock l(mLock); if (mDataSource->getSize == NULL || mDataSource->userdata == NULL) { if (mDataSource->readAt == NULL || mDataSource->userdata == NULL) { return -1; } return mDataSource->readAt(mDataSource->userdata, offset, data, size); Loading Loading @@ -204,7 +212,10 @@ AMediaDataSource* AMediaDataSource_newUri( } sp<DataSource> source = DataSourceFactory::CreateFromURI(service, uri, &headers); return convertDataSourceToAMediaDataSource(source); AMediaDataSource* aSource = convertDataSourceToAMediaDataSource(source); aSource->mImpl = source; aSource->mFlags = source->flags(); return aSource; } EXPORT Loading media/ndk/NdkMediaDataSourcePriv.h +1 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ struct NdkDataSource : public DataSource { NdkDataSource(AMediaDataSource *); virtual status_t initCheck() const; virtual uint32_t flags(); virtual ssize_t readAt(off64_t offset, void *data, size_t size); virtual status_t getSize(off64_t *); virtual String8 toString(); Loading Loading
media/ndk/NdkMediaDataSource.cpp +17 −6 Original line number Diff line number Diff line Loading @@ -48,6 +48,8 @@ struct AMediaDataSource { AMediaDataSourceReadAt readAt; AMediaDataSourceGetSize getSize; AMediaDataSourceClose close; sp<DataSource> mImpl; uint32_t mFlags; }; NdkDataSource::NdkDataSource(AMediaDataSource *dataSource) Loading @@ -56,6 +58,8 @@ NdkDataSource::NdkDataSource(AMediaDataSource *dataSource) AMediaDataSource_setGetSize(mDataSource, dataSource->getSize); AMediaDataSource_setClose(mDataSource, dataSource->close); AMediaDataSource_setUserdata(mDataSource, dataSource->userdata); mDataSource->mImpl = dataSource->mImpl; mDataSource->mFlags = dataSource->mFlags; } NdkDataSource::~NdkDataSource() { Loading @@ -66,9 +70,13 @@ status_t NdkDataSource::initCheck() const { return OK; } uint32_t NdkDataSource::flags() { return mDataSource->mFlags; } ssize_t NdkDataSource::readAt(off64_t offset, void *data, size_t size) { Mutex::Autolock l(mLock); if (mDataSource->getSize == NULL || mDataSource->userdata == NULL) { if (mDataSource->readAt == NULL || mDataSource->userdata == NULL) { return -1; } return mDataSource->readAt(mDataSource->userdata, offset, data, size); Loading Loading @@ -204,7 +212,10 @@ AMediaDataSource* AMediaDataSource_newUri( } sp<DataSource> source = DataSourceFactory::CreateFromURI(service, uri, &headers); return convertDataSourceToAMediaDataSource(source); AMediaDataSource* aSource = convertDataSourceToAMediaDataSource(source); aSource->mImpl = source; aSource->mFlags = source->flags(); return aSource; } EXPORT Loading
media/ndk/NdkMediaDataSourcePriv.h +1 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ struct NdkDataSource : public DataSource { NdkDataSource(AMediaDataSource *); virtual status_t initCheck() const; virtual uint32_t flags(); virtual ssize_t readAt(off64_t offset, void *data, size_t size); virtual status_t getSize(off64_t *); virtual String8 toString(); Loading