Compliant append error algorithm is *not* executed when appendBuffer fails |
||
Issue descriptionWhile reviewing https://codereview.chromium.org/1678523003/#ps480001, I suspected and confirmed that SourceBuffer does *not* enqueue a task to fire an 'error' event on all appendBuffer() failures. (That patch set was suggesting adding direct calls to append algorithm failures from within initsegmentreceived algorithm.) I suspect the route forward will probably be to change the WebSourceBuffer append interface to return a boolean indicating whether or not there was a failure during processing of the append. The caller in Blink can then execute the appendError() algorithm correctly (and the patch set I was reviewing, above, would just need to reply false from failed initsegmentreceived impl in Blink and let the engine later report failed append by returning false from WebSourceBuffer append. Note: I used a locally morphed version of mediasource-gc-after-decode-error-crash.html layout test to observe absence of SourceBuffer 'error' event, and presence of video element 'error' event on decode error resulting from append.
,
Jun 18 2016
Failures were all simply resolved. https://codereview.chromium.org/2076673005/ is now out for review.
,
Jun 22 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9 commit 4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9 Author: wolenetz <wolenetz@chromium.org> Date: Wed Jun 22 22:55:11 2016 MSE: Run appendError on appendData failures This change lets ChunkDemuxer::AppendData signal parse failure back to Blink SourceBuffer by its return value. SourceBuffer synchronously uses that signal to run the append error algorithm (which can enqueue an 'error' event on the SourceBuffer, among other steps). In parallel, ChunkDemuxer::ReportError_Locked() still notifies WMPI and HTMLMediaElement asynchronously via Pipeline of the error state. BUG= 620903 TEST=Updated mediasource-errors.html, ChunkDemuxerTests, PipelineIntegrationTests Review-Url: https://codereview.chromium.org/2076673005 Cr-Commit-Position: refs/heads/master@{#401439} [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/media/blink/websourcebuffer_impl.cc [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/media/blink/websourcebuffer_impl.h [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/media/filters/chunk_demuxer.cc [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/media/filters/chunk_demuxer.h [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/media/filters/chunk_demuxer_unittest.cc [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/media/test/pipeline_integration_test.cc [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-errors.html [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/third_party/WebKit/Source/modules/mediasource/SourceBuffer.h [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/third_party/WebKit/public/platform/WebSourceBuffer.h [modify] https://crrev.com/4f0ed2f67852f56ecc8d5ca1605b1ff81a26afd9/third_party/WebKit/public/platform/WebSourceBufferClient.h
,
Jun 22 2016
|
||
►
Sign in to add a comment |
||
Comment 1 by wolenetz@chromium.org
, Jun 17 2016