New issue
Advanced search Search tips

Issue 836951 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Deprecate and Remove 'stalled' events for HTMLMediaElements using MediaSource

Project Member Reported by chcunningham@chromium.org, Apr 25 2018

Issue description

Feature description:
Deprecate and Remove 'stalled' events for HTMLMediaElements using MediaSource

As is, chrome fires this event for MSE somewhat randomly. This confuses users and violates the spec.

See blink-dev thread for more details:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/x54XtrTyOP8/4-5QZlZzDAAJ

Eng owner: chcunningham@chromium.org

Are you planning on experimenting before launch? No.
Any new strings? No
Any implications for Google webservices (i.e. sync, translate)? No.
Binary size? No change.
Do the existing perf tests exercise all aspects of your new feature(s)? No (and not feasible). 
 
Is `waiting` event the only event handler we can now rely on for an indication as to when to append a media segment to SourceBuffer?
'stalled' was never useful for that purpose. 

'waiting' is the event you want, but also be aware of a bug we have where 'waiting' gets fired too often. https://bugs.chromium.org/p/chromium/issues/detail?id=657735#c7

But ideally, you would never see the 'waiting' event. MSE players generally set an interval callback to check that <video>.buffered is sufficiently ahead of <video>.currentTime (e.g. say 10 seconds). Then regularly make new appends to the source buffer to maintain a health buffer-ahead (e.g. enough room to give some flexibility if the network is momentarily slow or if the bitrate shoots spikes). 
Status: Started (was: Assigned)
Project Member

Comment 4 by bugdroid1@chromium.org, May 29 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/707b821eadc0940b40043f2c5afc9f4df98491f8

commit 707b821eadc0940b40043f2c5afc9f4df98491f8
Author: chcunningham <chcunningham@chromium.org>
Date: Tue May 29 08:42:19 2018

[MSE] Stop firing 'stalled' event.

See Intent to Deprecate
https://groups.google.com/a/chromium.org/d/msg/blink-dev/x54XtrTyOP8/4-5QZlZzDAAJ

MSE's resource is considered 'local' (we don't  manage the donwload -
the app does), so the HTML5 spec text around firing 'stalled' does not
apply. See discussion in  https://crbug.com/517240 

No change to 'stalled' event for 'remote' (src="somefile.webm") resources.

This CL also stops delaying the 'load' event for deferred media player
Load() execution. Load() may be deferred for an arbitrary number of
seconds, so we should not hold up the window's 'load' event. Prior to
this change, 'stalled' was serving the unintended roll of unblocking the
the 'load' event for deferred load()s that took > 3 seconds. With stall
now removed for MSE, this weird behavior was uncovered and remedied.

Bug:  517240 ,  836951 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I97f2bf972c79582d038e1215f5d630042656bd1c
Reviewed-on: https://chromium-review.googlesource.com/982564
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Luke Halliwell <halliwell@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Matthew Wolenetz <wolenetz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562371}
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/chrome/renderer/chrome_content_renderer_client.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/chrome/renderer/chrome_content_renderer_client.h
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/chromecast/renderer/cast_content_renderer_client.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/chromecast/renderer/cast_content_renderer_client.h
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/chromecast/renderer/cast_media_load_deferrer.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/chromecast/renderer/cast_media_load_deferrer.h
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/content/public/renderer/content_renderer_client.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/content/public/renderer/content_renderer_client.h
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/content/renderer/media/media_factory.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/content/renderer/media/stream/webmediaplayer_ms.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/content/renderer/media/stream/webmediaplayer_ms.h
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/media/blink/webmediaplayer_impl.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/media/blink/webmediaplayer_impl.h
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/media/blink/webmediaplayer_params.h
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-append-buffer-expected.txt
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-append-buffer.html
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/third_party/blink/public/platform/web_media_player.h
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/third_party/blink/renderer/core/html/media/html_media_element.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/third_party/blink/renderer/core/html/media/html_media_element_test.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/third_party/blink/renderer/core/paint/video_painter_test.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/third_party/blink/renderer/platform/testing/empty_web_media_player.cc
[modify] https://crrev.com/707b821eadc0940b40043f2c5afc9f4df98491f8/third_party/blink/renderer/platform/testing/empty_web_media_player.h

Status: Fixed (was: Started)

Comment 6 Deleted

Sign in to add a comment