Improve retry support for media network loading. |
|||||
Issue descriptionWe currently lag Android MediaPlayer by ~7% in pipeline success due to network read failures. This is likely due to much stricter retry logic. Currently we only allow 3 retries with an interval of 250ms between each try. MediaPlayer on the other hand allows 10 retries with a 3 second wait in between, it also doesn't count some failure retries towards the retry cap. We probably don't want all of the behavior but we do want some. We have a couple options for a first cut here: 1. Just do what MediaPlayer does today on mobile-only (all other platforms have <1% read failures). 2. Arbitrarily choose some retry count and delay > existing and < MediaPlayer. 3. Setup a finch experiment with a couple of different delays and record the impact on pipeline status. Use the results to choose a specific value.
,
Mar 8 2016
I don't follow your suggestion. Can you elaborate? It's not possible to issue a network read error and continue the pipeline today. And, I think doing that would be hard too since we'd be relying on ffmpeg to handle the failure in a recoverable way. I think isolating the retry logic within a place where we can ensure it's well tested is likely to be more successful.
,
Mar 8 2016
I'm more worried about what we report to the javascript. I was wondering if we could tell the javascript that playback failed, but then change our minds later if the network becomes available again. The pipeline would continue to retry the connection, possibly forever.
,
Mar 8 2016
Hmm, no I think once you report an error that has impacts on the state machine exposed to JavaScript -- it has no concept of a recoverable error at present AFAIK.
,
Mar 11 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/018c484fd85b3a64ef1037191ca513b389fa21ff commit 018c484fd85b3a64ef1037191ca513b389fa21ff Author: hubbe <hubbe@chromium.org> Date: Fri Mar 11 21:02:59 2016 Improve retry support for media network loading. Retry 30 times in 30 seconds instead of 3 times in 750ms. The retries are spaced so that the first retry is 250ms, second is 300ms, then 350ms, etc. BUG= 592703 Review URL: https://codereview.chromium.org/1777153002 Cr-Commit-Position: refs/heads/master@{#380723} [modify] https://crrev.com/018c484fd85b3a64ef1037191ca513b389fa21ff/media/blink/buffered_data_source.cc [modify] https://crrev.com/018c484fd85b3a64ef1037191ca513b389fa21ff/media/blink/buffered_data_source.h [modify] https://crrev.com/018c484fd85b3a64ef1037191ca513b389fa21ff/media/blink/buffered_data_source_unittest.cc [modify] https://crrev.com/018c484fd85b3a64ef1037191ca513b389fa21ff/media/blink/multibuffer_data_source_unittest.cc [modify] https://crrev.com/018c484fd85b3a64ef1037191ca513b389fa21ff/media/blink/resource_multibuffer_data_provider.cc [modify] https://crrev.com/018c484fd85b3a64ef1037191ca513b389fa21ff/media/blink/resource_multibuffer_data_provider.h
,
Mar 11 2016
,
Mar 11 2016
Your change meets the bar and is auto-approved for M50 (branch: 2661)
,
Mar 13 2016
Please merge your change to M50 branch 2661 if you think it is a safe merge. If merge happens by Monday (03/14) 5:00 PM PST, we can take it in for next week beta. Thank you.
,
Mar 14 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/dc4b45b89b72a24bd668cdfd3f5e33aec091c1df commit dc4b45b89b72a24bd668cdfd3f5e33aec091c1df Author: Fredrik Hubinette <hubbe@google.com> Date: Mon Mar 14 22:43:37 2016 Improve retry support for media network loading. Retry 30 times in 30 seconds instead of 3 times in 750ms. The retries are spaced so that the first retry is 250ms, second is 300ms, then 350ms, etc. BUG= 592703 Review URL: https://codereview.chromium.org/1777153002 Cr-Commit-Position: refs/heads/master@{#380723} (cherry picked from commit 018c484fd85b3a64ef1037191ca513b389fa21ff) Review URL: https://codereview.chromium.org/1796973004 . Cr-Commit-Position: refs/branch-heads/2661@{#227} Cr-Branched-From: ef6f6ae5e4c96622286b563658d5cd62a6cf1197-refs/heads/master@{#378081} [modify] https://crrev.com/dc4b45b89b72a24bd668cdfd3f5e33aec091c1df/media/blink/buffered_data_source.cc [modify] https://crrev.com/dc4b45b89b72a24bd668cdfd3f5e33aec091c1df/media/blink/buffered_data_source.h [modify] https://crrev.com/dc4b45b89b72a24bd668cdfd3f5e33aec091c1df/media/blink/buffered_data_source_unittest.cc [modify] https://crrev.com/dc4b45b89b72a24bd668cdfd3f5e33aec091c1df/media/blink/multibuffer_data_source_unittest.cc [modify] https://crrev.com/dc4b45b89b72a24bd668cdfd3f5e33aec091c1df/media/blink/resource_multibuffer_data_provider.cc [modify] https://crrev.com/dc4b45b89b72a24bd668cdfd3f5e33aec091c1df/media/blink/resource_multibuffer_data_provider.h
,
Mar 15 2016
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by hubbe@chromium.org
, Mar 8 2016