New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 742494 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

Multitrack MSE audio in same SourceBuffer (same bytestream) can be incorrectly processed for gapless playback

Project Member Reported by wolenetz@chromium.org, Jul 13 2017

Issue description

The root of the problem is that FrameProcessor, not MseTrackBuffer, caches audio-config and audio-preroll-buffer at the level of the stream, not at the level of (one of potentially multiple) audio track.

Additionally, the plumbing from SourceBufferState::OnNewConfigs() -> FrameProcessor::OnPossibleAudioConfigUpdate similarly needs to include with *which* track the config is associated, and the cached |sample_duration_| for use in FrameProcessor::HandlePartialAppendWindowTrimming() needs the track-specific-sample_duration_.

Without these fixes, gapless audio based on appendWindow trimming, is *broken* for any MSE SourceBuffer containing more than 1 audio track.

(I found this while code-reviewing my own stuff related to fixing signalling for PTS/DTS compliance..)
 
Owner: wolenetz@chromium.org
Status: Started (was: Available)
I'll take a stab at fixing this since I'm touching that code a lot these days...
Owner: ----
Status: Available (was: Started)
Well, it looks like my attempt at first create a unit test demonstrating the failure (a chunk_demuxer_unittest) fails because webm MSE parser currently recognizes up to max 1 audio track per SourceBuffer (https://cs.chromium.org/chromium/src/media/formats/webm/webm_tracks_parser.cc?rcl=d72f2eac28ff9bd62a312ef7efebb511fab56277&l=228).

Punting this back to Available.

See also  https://chromium-review.googlesource.com/571529  for a work-in-progress where I started on testing this but stopped once I hit the current deficiency in webm_tracks_parser.cc

Sign in to add a comment