-
wolenetz authored
Adds logging to chrome://media-internals when an overlapped append of the currently playing GOP introduces significant delay until keyframe following the end of the overlap. Also adds a MockMediaLog and uses it in a StrictMock within SourceBufferStreamTests to verify the new (and existing) MediaLog events produced by SourceBufferStreamTests. Visual example: First append: [K..t...........] 2nd append: [K.......................................][*K....................]... Since the buffer around 't' from first append is in the middle of being decoded and rendered when the second append is done, the rest of the first append's GOP is played and then the stream continues decode at the next (*) keyframe in time in the 2nd append. The result is frozen video frame (on the last PTS from the GOP containing t) until time of keyframe at (*). Note, once playback of the overlapped GOP containing t is completed, the overlapped GOP is dropped, and only the buffered media from the second append is available for replay upon seeking back. BUG=518069 TEST=no regression. Internal b/23015270 repro demonstrates new log. Added SourceBufferStreamTest.TrackBuffer_ExhaustionWithSkipForward and SourceBufferStreamTest.TrackBuffer_ExhaustionAndImmediateNewTrackBuffer Review URL: https://codereview.chromium.org/1281113002 Cr-Commit-Position: refs/heads/master@{#342861}
ba8d79c0