GNOME Bugzilla – Bug 797214
opus inband fec bug
Last modified: 2018-11-03 12:10:31 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?
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.
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.
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.
-- 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.