After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 797214 - opus inband fec bug
opus inband fec bug
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.14.x
Other Windows
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-09-27 12:45 UTC by Colin
Modified: 2018-11-03 12:10 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Colin 2018-09-27 12:45:12 UTC
I recently upgraded from GStreamer 1.12.4 to 1.14.3 and I noticed that opus sound with inband FEC produce a pretty bad sound.

The following pipeline reproduce the bug on my computer, it works with 1.12.4 but not in 1.14.3 (video part is optional of course) :

gst-launch-1.0.exe uridecodebin uri=filewithsound.mp4 name=udb udb. ! videoconvert ! videorate ! autovideosink udb. ! audioconvert ! audioresample ! opusenc audio-type=2048 inband-fec=true packet-loss-percentage=10 ! opusdec plc=true use-inband-fec=true ! audioconvert ! audioresample ! autoaudiosink

I did not notice any change of param in the doc, so am I doing anything wrong or is Opus inband FEC bugging?
Comment 1 Sebastian Dröge (slomo) 2018-09-27 19:40:09 UTC
These were all changes to the opus plugin between 1.12.4 and 1.14.3. Doesn't look likely that it's one of those.

commit c07484fdcde64db8e21294d38eec7fedcc54d47e
Author: Marcos Kintschner <marcos.ktn@gmail.com>
Date:   Thu Sep 13 20:34:08 2018 -0300

    opusenc: fix segmentation fault at x86 version
    
    The argument 0x0 is interpreted by the x86 compiler as a 32-bit int, but
    it is consumed as a 64-bit uint causing a segmentation fault. We need to
    explicit cast it to guint64 in order for the va_list to be built correctly.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=797092

commit 729b50020835786d4712d7717a39e3daa893626c
Author: Tim-Philipp Müller <tim@centricular.com>
Date:   Sun Dec 10 21:08:28 2017 +0000

    opus: remove unused build variable and define

commit 8598f082781ed2f0672bbdcfbc303dfd2f64be2e
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Mon Oct 9 18:13:27 2017 +0200

    opusenc: Allow unpositioned channels.
    
    The input will be treated as a set of mono channels,
    and the channel-mapping-family will be set to 255
    (no defined channel meaning)
    
    https://bugzilla.gnome.org/show_bug.cgi?id=788720

commit 8e6c6266d72e160cca019b7cfa640fbf666e5ada
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Tue May 16 13:42:07 2017 -0400

    Remove plugin specific static build option
    
    Static and dynamic plugins now have the same interface. The standard
    --enable-static/--enable-shared toggle are sufficient.
Comment 2 Tim-Philipp Müller 2018-09-27 22:24:12 UTC
Could also be the audio sink - which audio sink is being used in each case? (pass -v to gst-launch-1.0)

You can also try passing wasapisink or directsoundsink directly instead of autoaudiosin, or use ... ! opusdec ! audioconvert ! wavenc ! filesink location=sound.wav and check the wav file.
Comment 3 Colin 2018-09-28 08:18:31 UTC
I looked at all these commits and found nothing too.

I tried Tim-Philipp Müller suggestions:

with 1.14.3 autoaudiosink uses wasapisink, but the sound is still completely altered. It is still altered if I wavenc it and read the .wav using vlc

with 1.12.4 autoaudiosink uses directsoundsink as wasapisink fails with AUDCLNT_E_UNSUPPORTED_FORMAT. Both directsoundsink and wavenc + vlc produce a correct sound.
Comment 4 GStreamer system administrator 2018-11-03 12:10:31 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/489.