Loading media/libstagefright/HTTPBase.cpp +7 −2 Original line number Diff line number Diff line Loading @@ -36,7 +36,8 @@ HTTPBase::HTTPBase() mTotalTransferBytes(0), mPrevBandwidthMeasureTimeUs(0), mPrevEstimatedBandWidthKbps(0), mBandWidthCollectFreqMs(5000) { mBandWidthCollectFreqMs(5000), mMaxBandwidthHistoryItems(100) { } void HTTPBase::addBandwidthMeasurement( Loading @@ -50,7 +51,7 @@ void HTTPBase::addBandwidthMeasurement( mTotalTransferBytes += numBytes; mBandwidthHistory.push_back(entry); if (++mNumBandwidthHistoryItems > 100) { if (++mNumBandwidthHistoryItems > mMaxBandwidthHistoryItems) { BandwidthEntry *entry = &*mBandwidthHistory.begin(); mTotalTransferTimeUs -= entry->mDelayUs; mTotalTransferBytes -= entry->mNumBytes; Loading Loading @@ -104,6 +105,10 @@ status_t HTTPBase::setBandwidthStatCollectFreq(int32_t freqMs) { return OK; } void HTTPBase::setBandwidthHistorySize(size_t numHistoryItems) { mMaxBandwidthHistoryItems = numHistoryItems; } // static void HTTPBase::RegisterSocketUserTag(int sockfd, uid_t uid, uint32_t kTag) { int res = qtaguid_tagSocket(sockfd, kTag, uid); Loading media/libstagefright/httplive/LiveSession.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,9 @@ namespace android { // Number of recently-read bytes to use for bandwidth estimation const size_t LiveSession::kBandwidthHistoryBytes = 200 * 1024; LiveSession::LiveSession( const sp<AMessage> ¬ify, uint32_t flags, const sp<IMediaHTTPService> &httpService) Loading Loading @@ -84,6 +87,13 @@ LiveSession::LiveSession( mPacketSources2.add(indexToType(i), new AnotherPacketSource(NULL /* meta */)); mBuffering[i] = false; } size_t numHistoryItems = kBandwidthHistoryBytes / PlaylistFetcher::kDownloadBlockSize + 1; if (numHistoryItems < 5) { numHistoryItems = 5; } mHTTPDataSource->setBandwidthHistorySize(numHistoryItems); } LiveSession::~LiveSession() { Loading media/libstagefright/httplive/LiveSession.h +2 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,8 @@ private: kWhatSwitchDown = 'sDwn', }; static const size_t kBandwidthHistoryBytes; struct BandwidthItem { size_t mPlaylistIndex; unsigned long mBandwidth; Loading media/libstagefright/httplive/PlaylistFetcher.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,8 @@ namespace android { // static const int64_t PlaylistFetcher::kMinBufferedDurationUs = 10000000ll; const int64_t PlaylistFetcher::kMaxMonitorDelayUs = 3000000ll; const int32_t PlaylistFetcher::kDownloadBlockSize = 2048; // LCM of 188 (size of a TS packet) & 1k works well const int32_t PlaylistFetcher::kDownloadBlockSize = 47 * 1024; const int32_t PlaylistFetcher::kNumSkipFrames = 5; PlaylistFetcher::PlaylistFetcher( Loading media/libstagefright/httplive/PlaylistFetcher.h +1 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ struct String8; struct PlaylistFetcher : public AHandler { static const int64_t kMinBufferedDurationUs; static const int32_t kDownloadBlockSize; enum { kWhatStarted, Loading Loading @@ -95,7 +96,6 @@ private: }; static const int64_t kMaxMonitorDelayUs; static const int32_t kDownloadBlockSize; static const int32_t kNumSkipFrames; static bool bufferStartsWithTsSyncByte(const sp<ABuffer>& buffer); Loading Loading
media/libstagefright/HTTPBase.cpp +7 −2 Original line number Diff line number Diff line Loading @@ -36,7 +36,8 @@ HTTPBase::HTTPBase() mTotalTransferBytes(0), mPrevBandwidthMeasureTimeUs(0), mPrevEstimatedBandWidthKbps(0), mBandWidthCollectFreqMs(5000) { mBandWidthCollectFreqMs(5000), mMaxBandwidthHistoryItems(100) { } void HTTPBase::addBandwidthMeasurement( Loading @@ -50,7 +51,7 @@ void HTTPBase::addBandwidthMeasurement( mTotalTransferBytes += numBytes; mBandwidthHistory.push_back(entry); if (++mNumBandwidthHistoryItems > 100) { if (++mNumBandwidthHistoryItems > mMaxBandwidthHistoryItems) { BandwidthEntry *entry = &*mBandwidthHistory.begin(); mTotalTransferTimeUs -= entry->mDelayUs; mTotalTransferBytes -= entry->mNumBytes; Loading Loading @@ -104,6 +105,10 @@ status_t HTTPBase::setBandwidthStatCollectFreq(int32_t freqMs) { return OK; } void HTTPBase::setBandwidthHistorySize(size_t numHistoryItems) { mMaxBandwidthHistoryItems = numHistoryItems; } // static void HTTPBase::RegisterSocketUserTag(int sockfd, uid_t uid, uint32_t kTag) { int res = qtaguid_tagSocket(sockfd, kTag, uid); Loading
media/libstagefright/httplive/LiveSession.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,9 @@ namespace android { // Number of recently-read bytes to use for bandwidth estimation const size_t LiveSession::kBandwidthHistoryBytes = 200 * 1024; LiveSession::LiveSession( const sp<AMessage> ¬ify, uint32_t flags, const sp<IMediaHTTPService> &httpService) Loading Loading @@ -84,6 +87,13 @@ LiveSession::LiveSession( mPacketSources2.add(indexToType(i), new AnotherPacketSource(NULL /* meta */)); mBuffering[i] = false; } size_t numHistoryItems = kBandwidthHistoryBytes / PlaylistFetcher::kDownloadBlockSize + 1; if (numHistoryItems < 5) { numHistoryItems = 5; } mHTTPDataSource->setBandwidthHistorySize(numHistoryItems); } LiveSession::~LiveSession() { Loading
media/libstagefright/httplive/LiveSession.h +2 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,8 @@ private: kWhatSwitchDown = 'sDwn', }; static const size_t kBandwidthHistoryBytes; struct BandwidthItem { size_t mPlaylistIndex; unsigned long mBandwidth; Loading
media/libstagefright/httplive/PlaylistFetcher.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,8 @@ namespace android { // static const int64_t PlaylistFetcher::kMinBufferedDurationUs = 10000000ll; const int64_t PlaylistFetcher::kMaxMonitorDelayUs = 3000000ll; const int32_t PlaylistFetcher::kDownloadBlockSize = 2048; // LCM of 188 (size of a TS packet) & 1k works well const int32_t PlaylistFetcher::kDownloadBlockSize = 47 * 1024; const int32_t PlaylistFetcher::kNumSkipFrames = 5; PlaylistFetcher::PlaylistFetcher( Loading
media/libstagefright/httplive/PlaylistFetcher.h +1 −1 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ struct String8; struct PlaylistFetcher : public AHandler { static const int64_t kMinBufferedDurationUs; static const int32_t kDownloadBlockSize; enum { kWhatStarted, Loading Loading @@ -95,7 +96,6 @@ private: }; static const int64_t kMaxMonitorDelayUs; static const int32_t kDownloadBlockSize; static const int32_t kNumSkipFrames; static bool bufferStartsWithTsSyncByte(const sp<ABuffer>& buffer); Loading