[Bug 771723] opusdec: too short buffers trigger error instead of PLC

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Nov 2 09:26:31 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=771723

Håvard Graff (hgr) <havard.graff at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |havard.graff at gmail.com

--- Comment #18 from Håvard Graff (hgr) <havard.graff at gmail.com> ---
The idea of the lost(gap) event is to be able to conceal a lost packet in a
stream so that it is not noticeable for the listener that a packet was indeed
lost.

If you have a stream of packets like this:

seq:    1     2     3     4
dur:   10ms  10ms  10ms  10ms
ts:     0ms  10ms  20ms  30ms

But instead you get this:

seq:    1     ?     3     4
dur:   10ms   ?    10ms  10ms
ts:     0ms   ?    20ms  30ms

The gap event will provide you with a timestamp and a duration that you can use
to fill in this gap, in our case the timestamp and duration of that gap-event
would match perfectly like this:

seq:    1      GAP     3     4
dur:   10ms   10ms    10ms  10ms
ts:     0ms   10ms    20ms  30ms

Now the "opusdec: fix "buffer too small" error" will always overwrite the
calculated samples based on the gap-duration, and replace it with 120ms, like
so:

seq:    1      GAP     3     4
dur:   10ms   120ms   10ms  10ms
ts:     0ms   10ms   130ms 140ms

And that will end up both producing a lot of silence in the middle of the
stream, as well as skewing the timestamps for the following packets, breaking
synchronization.

Probably not a good idea?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list