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 498928 - [alsasink] Crackling sound after update to 0.10.15
[alsasink] Crackling sound after update to 0.10.15
Status: RESOLVED NOTGNOME
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-11-22 08:58 UTC by Sebastian Dröge (slomo)
Modified: 2007-12-04 13:58 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Sebastian Dröge (slomo) 2007-11-22 08:58:42 UTC
Hi, quoting http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=452282 :

After upgrading to the latest version playing any file results in cracks during
playback. Downgrading all gstreamer0.10 related packages to the Testing version
fixes this problem for now. I’m using a soundcard with the CMI8783 chipset.


Below are the GST_DEBUG=5 logs with 0.10.14 and 0.10.15:
http://slomosnail.de/~slomo/temp/gst_0.10.14-2.log.bz2
http://slomosnail.de/~slomo/temp/gst_0.10.15-1.log.bz2

The main difference I see is, that before 16 bit caps were used on the alsa sink while with 0.10.15 32 bit caps are used:

intersection of the caps in 0.10.14:

audio/x-raw-int, width=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)[ 1, 2 ], endianness=(int)1234, depth=(int)16, signed=(boolean)true;

audio/x-raw-int, width=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)3, endianness=(int)1234, depth=(int)16, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_LFE >;

audio/x-raw-int, width=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)4, endianness=(int)1234, depth=(int)16, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT >;

audio/x-raw-int, width=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)6, endianness=(int)1234, depth=(int)16, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_LFE >;

audio/x-raw-int, width=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)8, endianness=(int)1234, depth=(int)16, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_LFE, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT, GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT >




intersection of the caps in 0.10.15:

audio/x-raw-int, width=(int)32, rate=(int)[ 4000, 2147483647 ], channels=(int)[ 1, 2 ], endianness=(int)1234, signed=(boolean)true, depth=(int)32;

audio/x-raw-int, width=(int)32, rate=(int)[ 4000, 2147483647 ], channels=(int)3, endianness=(int)1234, signed=(boolean)true, depth=(int)32, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_LFE >;

audio/x-raw-int, width=(int)32, rate=(int)[ 4000, 2147483647 ], channels=(int)4, endianness=(int)1234, signed=(boolean)true, depth=(int)32, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT >;

audio/x-raw-int, width=(int)32, rate=(int)[ 4000, 2147483647 ], channels=(int)6, endianness=(int)1234, signed=(boolean)true, depth=(int)32, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_LFE >;

audio/x-raw-int, width=(int)32, rate=(int)[ 4000, 2147483647 ], channels=(int)8, endianness=(int)1234, signed=(boolean)true, depth=(int)32, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_LFE, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT, GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT >;

audio/x-raw-int, width=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)[ 1, 2 ], endianness=(int)1234, depth=(int)16, signed=(boolean)true;

audio/x-raw-int, width=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)3, endianness=(int)1234, depth=(int)16, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_LFE >;

audio/x-raw-int, width=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)4, endianness=(int)1234, depth=(int)16, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT >;

audio/x-raw-int, width=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)6, endianness=(int)1234, depth=(int)16, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_LFE >;

audio/x-raw-int, width=(int)16, rate=(int)[ 4000, 2147483647 ], channels=(int)8, endianness=(int)1234, depth=(int)16, signed=(boolean)true, channel-positions=(GstAudioChannelPosition)< GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, GST_AUDIO_CHANNEL_POSITION_LFE, GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT, GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT >
Comment 1 Jan Schmidt 2007-11-22 09:50:50 UTC
You could confirm if it is in fact caused by 32-bit caps by forcing 16-bit caps into the audio sink with a capsfilter.
Comment 2 Sebastian Dröge (slomo) 2007-11-23 07:08:52 UTC
He has confirmed that a capsfilter forcing it to 16 bit doesn't give crackling sound. I've told him to test with aplay with a 16 bit and 32 bit wav file, should give us the answer if it's our bug or alsa's ;)
Comment 3 Sebastian Dröge (slomo) 2007-11-24 19:00:48 UTC
Ok, he doesn't get any crackling with aplay so I guess this bug is our's then... anything else I could ask him to test? :)
Comment 4 Jonathan Matthew 2007-12-03 11:54:03 UTC
This looks like another instance of this alsa bug: https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3360

which is an integer overflow in their 32bit->16bit conversion.
Comment 5 Sebastian Dröge (slomo) 2007-12-04 11:17:26 UTC
I know this bug, unfortunately this doesn't seem to be the cause, see 
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=429326
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=436337
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=451929
Comment 6 Sebastian Dröge (slomo) 2007-12-04 13:58:22 UTC
Actually one of the reporters confirmed that it _is_ this bug. Ok, let's close this as NOTGNOME then...

It happened more often since 0.10.15 because volume got 32 bit support it seems... way to reproduce:

gst-launch-0.10 audiotestsrc volume=1.0 ! "audio/x-raw-int,width=32,depth=32" ! volume volume=1.0 ! alsasink