Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(734)

Issue 2102323002: MSE: Experimental support for new abort and duration behavior (Closed)

Created:
4 years, 5 months ago by wolenetz
Modified:
3 years, 10 months ago
CC:
chromium-reviews, posciak+watch_chromium.org, blink-reviews, mlamouri+watch-blink_chromium.org, eric.carlson_apple.com, feature-media-reviews_chromium.org, dglazkov+blink, asvitkine+watch_chromium.org, haraken, blink-reviews-api_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

MSE: Experimental support for new abort and duration behavior Introduces a new RuntimeEnabledFeature "MediaSourceNewAbortAndDuration" which enables new behavior corresponding to the recent MSE spec change [1], fixing cross-platform spec ambiguities. New behavior: * abort() gives error if there is a remove() in progress. abort() is intended to only abort in-progress appends, not removals. * setting MediaSource.duration to a value which would truncate currently buffered media will now result in error. Apps can use explicit remove() to perform the desired buffered media truncation prior to lowering the duration. Note that both of these behavior changes are intended to fix previously ambiguous spec text related to asynchronous range removals. There is no other strong reason why these two behavior changes are included in the same CL (other than to reduce some process redundancy.) If "MediaSourceNewAbortAndDuration" is not enabled, then the old behavior remains along with emission of new deprecation messages. This change only enables that flag in 'experimental' status (see [2]). Intent to implement thread is at [3]. [1] https://github.com/w3c/media-source/pull/65 [2] http://www.chromium.org/blink/runtime-enabled-features [3] https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/oboI-rINUt0 BUG=623729, 398130 TEST=Updated many of http/tests/media/media-source/* and added SBSTest.GetHighestPresentationTimestamp R=chcunningham@chromium.org, dcheng@chromium.org, holte@chromium.org, tkent@chromium.org Committed: https://chromium.googlesource.com/chromium/src/+/663209d1ecce638d0fc8bde35daa7a471a899f65

Patch Set 1 : Basic structure. Needs lots of test fixing and some new tests. #

Total comments: 8

Patch Set 2 : rebase and fix the broken DCHECK that was crashing even with MediaSourceNewAbortAndDuration disabled #

Patch Set 3 : fixes config-change layout tests by using explicit remove() prior to reducing duration #

Patch Set 4 : fixes mediasource-duration layout test and adds more coverage to it #

Total comments: 1

Patch Set 5 : Fixes mediasource-GVPQ layout test and fixes comment nit in mediasource-duration layout test #

Patch Set 6 : Fixes mediasource-play,remove,seek-beyond-duration layout tests #

Total comments: 1

Patch Set 7 : adds SBS::GetHighestPresentationTimestamp() unit test coverage #

Patch Set 8 : Fixes all remaining comments so far #

Total comments: 3

Patch Set 9 : rebase (usecounter enum) #

Patch Set 10 : Fixed mediasource-duration nit #

Total comments: 1

Patch Set 11 : fix test typo #

Patch Set 12 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+356 lines, -114 lines) Patch
M media/blink/websourcebuffer_impl.h View 1 chunk +1 line, -0 lines 0 comments Download
M media/blink/websourcebuffer_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +4 lines, -0 lines 0 comments Download
M media/filters/chunk_demuxer.h View 2 chunks +8 lines, -0 lines 0 comments Download
M media/filters/chunk_demuxer.cc View 2 chunks +15 lines, -0 lines 0 comments Download
M media/filters/media_source_state.h View 1 chunk +4 lines, -0 lines 0 comments Download
M media/filters/media_source_state.cc View 1 chunk +17 lines, -0 lines 0 comments Download
M media/filters/source_buffer_stream.h View 1 chunk +4 lines, -0 lines 0 comments Download
M media/filters/source_buffer_stream.cc View 1 1 chunk +9 lines, -0 lines 0 comments Download
M media/filters/source_buffer_stream_unittest.cc View 1 2 3 4 5 6 1 chunk +25 lines, -0 lines 0 comments Download
M third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-config-changes.js View 1 2 2 chunks +15 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html View 1 2 3 4 5 6 7 8 9 10 4 chunks +119 lines, -68 lines 0 comments Download
M third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-getvideoplaybackquality.html View 1 2 3 4 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-play.html View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-remove.html View 1 2 3 4 5 1 chunk +5 lines, -4 lines 0 comments Download
M third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-seek-beyond-duration.html View 1 2 3 4 5 2 chunks +10 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/frame/Deprecation.cpp View 1 2 1 chunk +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/frame/UseCounter.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/modules/mediasource/MediaSource.h View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/modules/mediasource/MediaSource.cpp View 1 2 chunks +33 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/modules/mediasource/SourceBuffer.h View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +4 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/mediasource/SourceBuffer.cpp View 1 2 3 4 5 6 7 8 9 10 11 7 chunks +63 lines, -19 lines 0 comments Download
M third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/public/platform/WebSourceBuffer.h View 1 chunk +4 lines, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 44 (19 generated)
wolenetz
Patch set 1 is the basic approach. It will need further testing for the *new* ...
4 years, 5 months ago (2016-06-28 23:31:31 UTC) #4
chcunningham
Looks pretty good. Awaiting test changes for final sign off https://codereview.chromium.org/2102323002/diff/1/third_party/WebKit/Source/core/frame/UseCounter.h File third_party/WebKit/Source/core/frame/UseCounter.h (right): https://codereview.chromium.org/2102323002/diff/1/third_party/WebKit/Source/core/frame/UseCounter.h#newcode1228 ...
4 years, 5 months ago (2016-06-29 21:19:24 UTC) #6
wolenetz
On 2016/06/28 23:31:31, wolenetz wrote: > Patch set 1 is the basic approach. It will ...
4 years, 5 months ago (2016-06-29 21:44:12 UTC) #7
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102323002/100001
4 years, 5 months ago (2016-06-30 00:47:34 UTC) #10
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102323002/140001
4 years, 5 months ago (2016-06-30 01:25:52 UTC) #13
wolenetz
Please take a look at patch set 8. Apart from a tiny rebase to update ...
4 years, 5 months ago (2016-06-30 01:35:50 UTC) #16
tkent
> tkent@: OWNERS review for .../WebKit/public/* .../Source/platform/* lgtm
4 years, 5 months ago (2016-06-30 03:25:24 UTC) #17
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-06-30 04:25:42 UTC) #19
dcheng
rs lgtm for //third_party/WebKit/Source/core/frame changes.
4 years, 5 months ago (2016-06-30 07:03:16 UTC) #20
Steven Holte
On 2016/06/30 07:03:16, dcheng wrote: > rs lgtm for //third_party/WebKit/Source/core/frame changes. histograms lgtm
4 years, 5 months ago (2016-06-30 18:27:47 UTC) #21
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102323002/160001
4 years, 5 months ago (2016-06-30 20:27:17 UTC) #23
chcunningham
lgtm https://codereview.chromium.org/2102323002/diff/140001/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html File third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html (right): https://codereview.chromium.org/2102323002/diff/140001/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html#newcode144 third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html:144: 'mediaElement reducedDuration after seek to it'); nit: can ...
4 years, 5 months ago (2016-06-30 20:27:42 UTC) #24
wolenetz
Thanks for reviews. I've rebased since the usecounter enum mapping is continually changing. Dry-running CQ ...
4 years, 5 months ago (2016-06-30 20:28:57 UTC) #25
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: ios-device-gn on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-gn/builds/29894)
4 years, 5 months ago (2016-06-30 20:37:06 UTC) #27
wolenetz
On 2016/06/30 20:28:57, wolenetz wrote: > Thanks for reviews. I've rebased since the usecounter enum ...
4 years, 5 months ago (2016-06-30 20:40:35 UTC) #28
wolenetz
Thanks again. Sending to CQ. https://codereview.chromium.org/2102323002/diff/140001/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html File third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html (right): https://codereview.chromium.org/2102323002/diff/140001/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html#newcode144 third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html:144: 'mediaElement reducedDuration after seek ...
4 years, 5 months ago (2016-06-30 20:47:03 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102323002/180001
4 years, 5 months ago (2016-06-30 20:48:07 UTC) #32
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/255833)
4 years, 5 months ago (2016-06-30 22:14:39 UTC) #34
wolenetz
https://codereview.chromium.org/2102323002/diff/180001/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html File third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html (right): https://codereview.chromium.org/2102323002/diff/180001/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html#newcode51 third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-duration.html:51: test.expectEvent(sourceBuffer, 'sourceBuffer range removal completed'); Ugh. This typo regressed ...
4 years, 5 months ago (2016-06-30 23:00:41 UTC) #35
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2102323002/220001
4 years, 5 months ago (2016-06-30 23:11:28 UTC) #37
commit-bot: I haz the power
Patchset 12 (id:??) landed as https://crrev.com/663209d1ecce638d0fc8bde35daa7a471a899f65 Cr-Commit-Position: refs/heads/master@{#403327}
4 years, 5 months ago (2016-06-30 23:13:40 UTC) #39
wolenetz
Committed patchset #12 (id:220001) manually as 663209d1ecce638d0fc8bde35daa7a471a899f65 (presubmit successful).
4 years, 5 months ago (2016-06-30 23:15:02 UTC) #41
foolip
wolenetz@, is this ready for removal now? Lately we've been trying to avoid deprecation messages ...
4 years ago (2016-11-24 09:31:45 UTC) #42
wolenetz
On 2016/11/24 09:31:45, foolip wrote: > wolenetz@, is this ready for removal now? Lately we've ...
4 years ago (2016-12-01 02:31:57 UTC) #43
wolenetz
3 years, 10 months ago (2017-02-15 01:16:44 UTC) #44
Message was sent while issue was closed.
On 2016/12/01 02:31:57, wolenetz wrote:
> On 2016/11/24 09:31:45, foolip wrote:
> > wolenetz@, is this ready for removal now? Lately we've been trying to avoid
> > deprecation messages with no removal milestone, so I'm looking through the
> ones
> > that we have and trying to understand how to move them forward.
> 
> I'd like to first add RAPPOR and hopefully merge that addition to M-56 to be
> more confident about that removal. This is on my hotlist of things to do after
I
> complete all the collateral fixes related to my recent roll of FFmpeg for M56
> (https://crbug.com/591845).

foolip@, can you help confirm my new understanding from internal page
https://goto.google.com/sxbxi that MediaSourceAbortRemove and
MediaSourceDurationTruncatingBuffered use counters are almost 4 orders of
magnitude smaller than the CreateObjectURLMediaSource use counter?

Powered by Google App Engine
This is Rietveld 408576698