[Bug 753148] opus: inband FEC is never used

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sat Aug 1 18:34:46 PDT 2015


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

Ilya Konstantinov <ilya.konstantinov at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vincent.penquerch at collabora
                   |                            |.co.uk

--- Comment #2 from Ilya Konstantinov <ilya.konstantinov at gmail.com> ---
1) last_buffer is usually not NULL but a zero-length buffer. In my tests with
'identity drop-probability=0.1', we'd never enter the FEC reconstruction code
path.

2) opus_*decode manual states:

"In the case of PLC (data==NULL) or FEC (decode_fec=1), then frame_size needs
to be exactly the duration of audio that is missing, otherwise the decoder will
not be in the optimal state to decode the next incoming packet."

Therefore, I calculate the number of missing samples from gap buffer's
duration.

For some reason, this function expects buffer to be NULL, which complicates the
code. GstAudioDecoder sends zero-length buffers (not NULL buffers) for gap
events. In which case can we expect a NULL buffer? Due to the possibility of
getting NULL buffers I've added the 'last_samples' field. If buffer is never
NULL, I'd happily delete it, and a bunch of other code.

-- 
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