Loading media/libmediaextractor/include/media/DataSourceBase.h +6 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,12 @@ public: virtual void close() {}; virtual void disconnect() {} virtual ssize_t getAvailableSize(status_t * /*err*/) { return -1; } protected: virtual ~DataSourceBase() {} Loading media/libstagefright/NuMediaExtractor.cpp +6 −13 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ #include <media/stagefright/NuMediaExtractor.h> #include "include/ESDS.h" #include "include/NuCachedSource2.h" #include <media/DataSource.h> #include <media/MediaSource.h> Loading Loading @@ -207,10 +206,7 @@ status_t NuMediaExtractor::setMediaCas(const HInterfaceToken &casToken) { void NuMediaExtractor::disconnect() { if (mDataSource != NULL) { // disconnect data source if (mDataSource->flags() & DataSource::kIsCachingDataSource) { static_cast<NuCachedSource2 *>(mDataSource.get())->disconnect(); } mDataSource->disconnect(); } } Loading Loading @@ -790,16 +786,13 @@ bool NuMediaExtractor::getCachedDuration( int64_t *durationUs, bool *eos) const { Mutex::Autolock autoLock(mLock); int64_t bitrate; if ((mDataSource->flags() & DataSource::kIsCachingDataSource) && getTotalBitrate(&bitrate)) { sp<NuCachedSource2> cachedSource = static_cast<NuCachedSource2 *>(mDataSource.get()); status_t finalStatus; size_t cachedDataRemaining = cachedSource->approxDataRemaining(&finalStatus); ssize_t cachedDataRemaining = mDataSource->getAvailableSize(&finalStatus); int64_t bitrate; if (cachedDataRemaining >= 0 && getTotalBitrate(&bitrate)) { *durationUs = cachedDataRemaining * 8000000ll / bitrate; *eos = (finalStatus != OK); return true; Loading media/libstagefright/include/NuCachedSource2.h +4 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,10 @@ struct NuCachedSource2 : public DataSource { return mName; } ssize_t getAvailableSize(status_t *finalStatus) { return approxDataRemaining(finalStatus); } //////////////////////////////////////////////////////////////////////////// size_t cachedSize(); Loading Loading
media/libmediaextractor/include/media/DataSourceBase.h +6 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,12 @@ public: virtual void close() {}; virtual void disconnect() {} virtual ssize_t getAvailableSize(status_t * /*err*/) { return -1; } protected: virtual ~DataSourceBase() {} Loading
media/libstagefright/NuMediaExtractor.cpp +6 −13 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ #include <media/stagefright/NuMediaExtractor.h> #include "include/ESDS.h" #include "include/NuCachedSource2.h" #include <media/DataSource.h> #include <media/MediaSource.h> Loading Loading @@ -207,10 +206,7 @@ status_t NuMediaExtractor::setMediaCas(const HInterfaceToken &casToken) { void NuMediaExtractor::disconnect() { if (mDataSource != NULL) { // disconnect data source if (mDataSource->flags() & DataSource::kIsCachingDataSource) { static_cast<NuCachedSource2 *>(mDataSource.get())->disconnect(); } mDataSource->disconnect(); } } Loading Loading @@ -790,16 +786,13 @@ bool NuMediaExtractor::getCachedDuration( int64_t *durationUs, bool *eos) const { Mutex::Autolock autoLock(mLock); int64_t bitrate; if ((mDataSource->flags() & DataSource::kIsCachingDataSource) && getTotalBitrate(&bitrate)) { sp<NuCachedSource2> cachedSource = static_cast<NuCachedSource2 *>(mDataSource.get()); status_t finalStatus; size_t cachedDataRemaining = cachedSource->approxDataRemaining(&finalStatus); ssize_t cachedDataRemaining = mDataSource->getAvailableSize(&finalStatus); int64_t bitrate; if (cachedDataRemaining >= 0 && getTotalBitrate(&bitrate)) { *durationUs = cachedDataRemaining * 8000000ll / bitrate; *eos = (finalStatus != OK); return true; Loading
media/libstagefright/include/NuCachedSource2.h +4 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,10 @@ struct NuCachedSource2 : public DataSource { return mName; } ssize_t getAvailableSize(status_t *finalStatus) { return approxDataRemaining(finalStatus); } //////////////////////////////////////////////////////////////////////////// size_t cachedSize(); Loading