New issue
Advanced search Search tips

Issue 620523 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Consider alternative range-adjacency thresholds other than simple 2*max_interbuffer_append_distance_so_far

Project Member Reported by wolenetz@chromium.org, Jun 16 2016

Issue description

From [1], and based on discussion with chcunningham@, the "max-interbuffer-distance" may grow too large in sequence mode coded frame groups that get large jumps forward due to timestampOffset. While subsequent range merges will have a much more lenient (large) adjacency threshold (which is probably fine for meeting the 'sequence' mode goal of reducing range gaps), if the app switches back to segments mode, that same (large) adjacency threshold would still apply.
This bug tracks consider options to address this, especially if such lenient range merges indeed become a problem for apps using Chrome and mixed sequence+segments mode for the same SourceBuffer, with jumps forward using timestampOffset while in sequence mode.

[1] https://codereview.chromium.org/2035003002/diff/40001/media/filters/frame_processor_unittest.cc

One option I mentioned was to use the current logic while in 'sequence' mode (or even MORE lenient, merge with *all* adjacent ranges, while in 'sequence' mode), and while in 'segments' mode use either the current logic (ignoring any large jumps forward while in sequence mode for calculation of max_interbuffer_distance) or just use something like last_decode_timestamp+2*last_frame_duration.  Note that frame durations can vary significantly, so that change to segments mode adjacency risks introducing gaps which may seem spurious or unexpected by apps.

Note that the MSE spec gives us significant lenience w.r.t. buffered range coalescence. Note also that any change to the adjacency logic will need careful inspection to make sure any buffered ranges coherency checks are still correct.


Web authors are encouraged to report any problems they're having with Chrome's 'sequence' mode, and if they're related to existence or lack of buffered range gaps, please report them here.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 16 2016

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

commit b7982341ce30c1dfb165551b8c641d781eeb0159
Author: wolenetz <wolenetz@chromium.org>
Date: Thu Jun 16 20:23:40 2016

MSE: Signal new coded frame group more aggressively

For 'sequence' mode coded frame processing, we may need to signal a new
coded frame group because application may override timestampOffset and
cause the processed frame sequence to go backwards in time. Jumps
forward are allowed and kept within the same coded frame group. Jumps
backward are now detected and trigger new coded frame group signalling
so the overlap-append logic in SourceBufferStream handles this situation
more correctly.

TEST=*FrameProcessorTest.AudioVideo_Discontinuity_TimestampOffset*, http/tests/media/media-source/mediasource-crbug-616565.html
BUG= 616565 , 620523 

Review-Url: https://codereview.chromium.org/2035003002
Cr-Commit-Position: refs/heads/master@{#400249}

[modify] https://crrev.com/b7982341ce30c1dfb165551b8c641d781eeb0159/media/filters/frame_processor.cc
[modify] https://crrev.com/b7982341ce30c1dfb165551b8c641d781eeb0159/media/filters/frame_processor.h
[modify] https://crrev.com/b7982341ce30c1dfb165551b8c641d781eeb0159/media/filters/frame_processor_unittest.cc
[add] https://crrev.com/b7982341ce30c1dfb165551b8c641d781eeb0159/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-sequencemode-crbug-616565.html

Labels: MSEscrubbed
Project Member

Comment 3 by sheriffbot@chromium.org, Aug 21 2017

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: WontFix (was: Untriaged)
We haven't seen any reports of app issues with our current logic (other than a general "MSE spec folks, please give us the ability to select to play through buffered range gaps" vNext feature request from MSE users that serve content from others that may have various issues in the bytstreams.)

We're also strongly considering (in MSE spec) deprecating support for muxed sequence mode SourceBuffers, a common source of surprisingly bad buffering behaviors and underdefined-in-spec. While such deprecation would still retain single-track SourceBuffer sequence mode support (and therefore the potential for concerns originally raised in this bug), again there have not been significant reports. If anything, web authors want *more* buffered range coalescing, it seems.

I'm going to close this, accordingly.

Sign in to add a comment