[media-source] Support sample accurate audio splicing using timestampOffset/appendWindowStart/appendWindowEnd

Melatonin64 has just created a new issue for 
https://github.com/w3c/media-source:

== Support sample accurate audio splicing using 
timestampOffset/appendWindowStart/appendWindowEnd ==
One of the use cases for sample-accurate-audio-splicing is gapless 
audio playback (by removing the excess front/back padding added by 
most audio codecs).

Step 9 of the for loop in the **Coded Frame Processing** algorithm 
states:
`If frame end timestamp is greater than appendWindowEnd, then set the 
need random access point flag to true, drop the coded frame, and jump 
to the top of the loop to start processing the next coded frame.`


For audio, this means that we'll be dropping a complete coded frame 
(i.e. for AAC - 1024 audio samples) even if some of the audio samples 
would have fallen within the append window.
This granularity (coded frames) is not sufficient in order to achieve 
gapless audio playback.
It would be great if instead, we could keep the frame, and mark a 
range of samples to be discarded from frame, so that once the frame is
 decoded only the samples that fall within the append window will be 
used.

It's possible that this change alone is not sufficient to support 
sample-accurate-audio-splicing...

A test webpage can be found 
[here](http://melatonin64.github.io/gapless-mse-audio/), (based on 
Dale Curtis' 
[article](https://developers.google.com/web/updates/2015/06/Media-Source-Extensions-for-Audio?hl=en)).
Further discussion can be found 
[here](https://bugzilla.mozilla.org/show_bug.cgi?id=1222851)

See https://github.com/w3c/media-source/issues/37

Received on Monday, 9 November 2015 18:58:57 UTC