зеркало из https://github.com/mozilla/gecko-dev.git
42fd2adbaa
As seen in this profile of a Twitch replay: https://perfht.ml/2K9Ydb3 we can often end up spending time in TrackBuffersManager::CodedFrameProcessing() shaving off bytes from the front off TrackBuffersManager::mInputBuffer. This requires all the remaining bytes to be memmove'd down to the start of this array. Sometimes we have close to 1MB in that buffer, and when we're just trying to consume a few hundred bytes, that becomes high overhead. So intead of using this "slice off, shuffle down" approach change TrackBuffersManager::mInputBuffer to be a new type MediaSpan, which maintains a RefPtr to a MediaByteBuffer and a span defining the subregion of the buffer we care about. This means the RemoveElementsAt(0,N) operation becomes basically free, and we can eliminate a few other copies we were doing as well. Differential Revision: https://phabricator.services.mozilla.com/D34661 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
TestContainerParser.cpp | ||
TestExtractVPXCodecDetails.cpp | ||
moz.build |