[Matroska-devel] Opus in Matroksa Cont.

Ralph Giles giles at thaumas.net
Thu Apr 11 22:27:13 CEST 2013


On 13-04-11 12:05 PM, Frank Galligan wrote:

> Players that add support for Opus but not SeekPreRoll could still work, but there could be audio issues on seeks. Should we could consider these players broken?

I think we should. Quite unpleasant artefacts are possible.

>>     Can you please update the draft spec on
>>     https://wiki.xiph.org/MatroskaOpus with this part of the proposal?
> 
> I will.

Thanks!

I don't agree with putting "the pre-skip data" in CodecPrivate. Assuming
you mean the compressed data packets which are to be skipped, there are
couple of issues with this:

First, the number of samples to be skipped is not an integer multiple of
compressed packets, so this isn't actually possible without clipping
valid audio from the start of the stream.

Second, even if we accept that restriction on what can be encapsulated,
a broken player which ignored the data in CodecPrivate would fail to
initialize the decoder properly, just like if it didn't implement
SeekPreRoll. When starting from the beginning of a stream, this is worse
degradation than if the preskip data was in normal clusters and it the
player just failed to discard the preskip output. I suppose it's an
improvement for when starting in the middle of a stream.

Having to feed and then discard output from special data in CodecPrivate
is moving away from a general container-level solution to this
requirement, which is generally useful for other codecs as well, to
implement trimming.

I'd like us to make further effort to figure out a way to represent the
timestamp shift in a way which allows more graceful fallback. I think we
haven't exhausted our options there and I expect it to be a simpler
solution.

 -r


More information about the Matroska-devel mailing list