GNOME Bugzilla – Bug 759890
audioconvert: creates choppy audio
Last modified: 2015-12-29 13:41:59 UTC
Created attachment 317911 [details] bisect notes With the new code powering audioconvert I get choppy audio in buzztrax. It looks like as if the 1/4 part of a buffer is good and the next 3/4 are filled with low bit noise (see attached wav). I am testing at gst-plugin-base (69d3b098a2c2eed02af6916d8798995a139f5de9). I've tried to bisect it, but the problem is that since audioconvert was touched by e3f0f3b91ef8468187a65632aa9cc2b4aa4bb5a1 is the first bad commit commit e3f0f3b91ef8468187a65632aa9cc2b4aa4bb5a1 Author: Wim Taymans <wtaymans@redhat.com> Date: Fri Nov 6 17:49:00 2015 +0100 audio-converter: move audio converter to audio libs Move the audio-converter helper to the audio library. Starting from that commit running my app results in no playback at all, but: ** (buzztrax-edit:2095): CRITICAL **: gst_audio_converter_samples: assertion 'out_produced != NULL' failed 0:00:13.907141581 2239 0x7fcaec032800 WARN audioconvert gstaudioconvert.c:768:gst_audio_convert_transform:<freeverb 00_master:audioconvert> error: error while converting ** (buzztrax-edit:2095): CRITICAL **: gst_audio_converter_samples: assertion 'out_produced != NULL' failed 0:00:13.917307830 2239 0x7fcaec032a30 WARN audioconvert gstaudioconvert.c:768:gst_audio_convert_transform:<bass_FSM-PanzerDelay:audioconvert> error: error while converting Later (ff6d1a2a25b247688f38e117782a6b43d525706a) something changed and instead I get one of 3 different crashes (see the log). Again later (8bcf183c7ffcc8aa887ce9e6b4f36c44037bbf89) that was fixed, but now I have the choppy audio. The audio issue might have been there from the start of the changes though. I don't have a simple launch pipeline as a repro yet. The audio format in buzztrax is F32, mono/stereo interleaved.
Created attachment 317912 [details] wave file showing the gaps
There is https://bugzilla.gnome.org/show_bug.cgi?id=659798 that is about buffer alignment. My sources are all basesrc derived elements that use the default alloc function of basesrc. The buffers I process my have any size liek e.g. "1323" depending on the tempo of a song. The buffers might also change in size over time.
Repro: gst-launch-1.0 audiotestsrc ! audio/x-raw,format="S16LE" ! audioconvert ! audiopanorama ! autoaudiosink with longer pipelines more harsh-electro noise \o/ gst-launch-1.0 audiotestsrc ! audio/x-raw,format="S16LE" ! audioconvert ! audiopanorama ! audioconvert ! audio/x-raw,format="F32LE",channels=2 ! audioconvert ! autoaudiosink gst-launch-1.0 audiotestsrc ! audio/x-raw,format="S16LE" ! audioconvert ! audiopanorama ! audioconvert ! audio/x-raw,format="F32LE",channels=2 ! autoaudiosink
commit 7bbfa39ada905b44743170f6c29d13e5fefb5888 Author: Stefan Sauer <ensonic@users.sf.net> Date: Tue Dec 29 14:23:59 2015 +0100 audioconvert: fix passthrough operation We did not take the sample size into account. Rearrange the tests to have more conversion test and an extra test case for passthrough operations. Fixes #759890