• Matt Wolenetz's avatar
    MSE: Use video (AVC) keyframeness when it differs from MP4's · 1240638e
    Matt Wolenetz authored
    Due to prevalence of MSE support in other browsers for legacy
    incorrectly muxed content where AVC keyframeness is incorrectly marked
    in the MP4 container, this change expands the previous
    chrome://media-internals logging when such mismatch is detected, to
    trust the keyframe-ness of the AVC coded frame for buffering and
    decoding.  Otherwise, such streams, especially those with frames
    incorrectly marked as keyframes in the MP4, would be buffered as
    out-of-order GOPS rather than out-of-order nonkeyframes, corrupting the
    buffering and decode sequence on playback in the new, compliant,
    MseBufferByPts logic.  Seek preroll from actual AVC nonkeyframes in
    legacy MseBufferByDts logic should also be fixed by this change.
    
    BUG=879734,844799,229412,760264
    
    Change-Id: I90f53ec333e1aeeeaf39e96e176438cb13b4a195
    Reviewed-on: https://chromium-review.googlesource.com/1205640
    Commit-Queue: Matthew Wolenetz <wolenetz@chromium.org>
    Reviewed-by: default avatarDale Curtis <dalecurtis@chromium.org>
    Reviewed-by: default avatarDan Sanders <sandersd@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#589009}
    1240638e
mp4_stream_parser_unittest.cc 27.2 KB