Crossfading is quite complex and error prone (source of many crashes). It is also not necessary for the gapless playback scenario (handled entirely by partial append window trimming).
The simpler approach is to just trim the existing buffer, eliminating the overlap.
See MSE spec proposal here: https://github.com/w3c/media-source/issues/165
BUG=588351, 577438 TEST=new unit tests
Review-Url: https://codereview.chromium.org/2343543002 Cr-Commit-Position: refs/heads/master@{#429394}
967db2f MSE: Replace crossfade splicing overlap trimming.
media/base/test_helpers.h | 19 +-
media/blink/webmediaplayer_impl.cc | 2 +-
media/filters/chunk_demuxer.cc | 33 +-
media/filters/chunk_demuxer.h | 14 +-
media/filters/chunk_demuxer_unittest.cc | 72 ++--
media/filters/frame_processor_unittest.cc | 4 +-
media/filters/source_buffer_state_unittest.cc | 2 +-
media/filters/source_buffer_stream.cc | 364 +++++++------------
media/filters/source_buffer_stream.h | 47 +--
media/filters/source_buffer_stream_unittest.cc | 460 +++++++++---------------
media/test/pipeline_integration_test.cc | 3 +-
11 files changed, 397 insertions(+), 623 deletions(-)
Upstream: git.chromium.org