Loading media/libmediaextractor/include/media/DataSourceBase.h +1 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ public: virtual void close() {}; virtual ssize_t getAvailableSize(status_t * /*err*/) { virtual status_t getAvailableSize(off64_t /*offset*/, off64_t * /*size*/) { return -1; } Loading media/libstagefright/NuCachedSource2.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -571,12 +571,19 @@ size_t NuCachedSource2::cachedSize() { return mCacheOffset + mCache->totalSize(); } status_t NuCachedSource2::getAvailableSize(off64_t offset, off64_t *size) { Mutex::Autolock autoLock(mLock); status_t finalStatus = UNKNOWN_ERROR; *size = approxDataRemaining_l(offset, &finalStatus); return finalStatus; } size_t NuCachedSource2::approxDataRemaining(status_t *finalStatus) const { Mutex::Autolock autoLock(mLock); return approxDataRemaining_l(finalStatus); return approxDataRemaining_l(mLastAccessPos, finalStatus); } size_t NuCachedSource2::approxDataRemaining_l(status_t *finalStatus) const { size_t NuCachedSource2::approxDataRemaining_l(off64_t offset, status_t *finalStatus) const { *finalStatus = mFinalStatus; if (mFinalStatus != OK && mNumRetriesLeft > 0) { Loading @@ -584,9 +591,10 @@ size_t NuCachedSource2::approxDataRemaining_l(status_t *finalStatus) const { *finalStatus = OK; } offset = offset >= 0 ? offset : mLastAccessPos; off64_t lastBytePosCached = mCacheOffset + mCache->totalSize(); if (mLastAccessPos < lastBytePosCached) { return lastBytePosCached - mLastAccessPos; if (offset < lastBytePosCached) { return lastBytePosCached - offset; } return 0; } Loading media/libstagefright/NuMediaExtractor.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -780,9 +780,8 @@ bool NuMediaExtractor::getCachedDuration( int64_t *durationUs, bool *eos) const { Mutex::Autolock autoLock(mLock); status_t finalStatus; ssize_t cachedDataRemaining = mDataSource->getAvailableSize(&finalStatus); off64_t cachedDataRemaining = -1; status_t finalStatus = mDataSource->getAvailableSize(-1, &cachedDataRemaining); int64_t bitrate; if (cachedDataRemaining >= 0 Loading media/libstagefright/include/NuCachedSource2.h +2 −4 Original line number Diff line number Diff line Loading @@ -53,9 +53,7 @@ struct NuCachedSource2 : public DataSource { return mName; } ssize_t getAvailableSize(status_t *finalStatus) { return approxDataRemaining(finalStatus); } status_t getAvailableSize(off64_t offset, off64_t *size); //////////////////////////////////////////////////////////////////////////// Loading Loading @@ -141,7 +139,7 @@ private: ssize_t readInternal(off64_t offset, void *data, size_t size); status_t seekInternal_l(off64_t offset); size_t approxDataRemaining_l(status_t *finalStatus) const; size_t approxDataRemaining_l(off64_t offset, status_t *finalStatus) const; void restartPrefetcherIfNecessary_l( bool ignoreLowWaterThreshold = false, bool force = false); Loading Loading
media/libmediaextractor/include/media/DataSourceBase.h +1 −1 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ public: virtual void close() {}; virtual ssize_t getAvailableSize(status_t * /*err*/) { virtual status_t getAvailableSize(off64_t /*offset*/, off64_t * /*size*/) { return -1; } Loading
media/libstagefright/NuCachedSource2.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -571,12 +571,19 @@ size_t NuCachedSource2::cachedSize() { return mCacheOffset + mCache->totalSize(); } status_t NuCachedSource2::getAvailableSize(off64_t offset, off64_t *size) { Mutex::Autolock autoLock(mLock); status_t finalStatus = UNKNOWN_ERROR; *size = approxDataRemaining_l(offset, &finalStatus); return finalStatus; } size_t NuCachedSource2::approxDataRemaining(status_t *finalStatus) const { Mutex::Autolock autoLock(mLock); return approxDataRemaining_l(finalStatus); return approxDataRemaining_l(mLastAccessPos, finalStatus); } size_t NuCachedSource2::approxDataRemaining_l(status_t *finalStatus) const { size_t NuCachedSource2::approxDataRemaining_l(off64_t offset, status_t *finalStatus) const { *finalStatus = mFinalStatus; if (mFinalStatus != OK && mNumRetriesLeft > 0) { Loading @@ -584,9 +591,10 @@ size_t NuCachedSource2::approxDataRemaining_l(status_t *finalStatus) const { *finalStatus = OK; } offset = offset >= 0 ? offset : mLastAccessPos; off64_t lastBytePosCached = mCacheOffset + mCache->totalSize(); if (mLastAccessPos < lastBytePosCached) { return lastBytePosCached - mLastAccessPos; if (offset < lastBytePosCached) { return lastBytePosCached - offset; } return 0; } Loading
media/libstagefright/NuMediaExtractor.cpp +2 −3 Original line number Diff line number Diff line Loading @@ -780,9 +780,8 @@ bool NuMediaExtractor::getCachedDuration( int64_t *durationUs, bool *eos) const { Mutex::Autolock autoLock(mLock); status_t finalStatus; ssize_t cachedDataRemaining = mDataSource->getAvailableSize(&finalStatus); off64_t cachedDataRemaining = -1; status_t finalStatus = mDataSource->getAvailableSize(-1, &cachedDataRemaining); int64_t bitrate; if (cachedDataRemaining >= 0 Loading
media/libstagefright/include/NuCachedSource2.h +2 −4 Original line number Diff line number Diff line Loading @@ -53,9 +53,7 @@ struct NuCachedSource2 : public DataSource { return mName; } ssize_t getAvailableSize(status_t *finalStatus) { return approxDataRemaining(finalStatus); } status_t getAvailableSize(off64_t offset, off64_t *size); //////////////////////////////////////////////////////////////////////////// Loading Loading @@ -141,7 +139,7 @@ private: ssize_t readInternal(off64_t offset, void *data, size_t size); status_t seekInternal_l(off64_t offset); size_t approxDataRemaining_l(status_t *finalStatus) const; size_t approxDataRemaining_l(off64_t offset, status_t *finalStatus) const; void restartPrefetcherIfNecessary_l( bool ignoreLowWaterThreshold = false, bool force = false); Loading