GNOME Bugzilla – Bug 139513
Hissing and poping on playback under heavy CPU load
Last modified: 2009-08-15 18:40:50 UTC
Play a vorbis or mp3 media in Rhythembox. I'm not sure if it is the core/plugin/sound card but xmms does not have any problems playing the files under heavy load. I was using the FreshRPMS.net packages but they were old so I compiled from source to try and see if this would solve the problem, but it did not. The "hissing and popping" really sounds like I connected my analog sound speakers to my digital output. You know that fuzz sound. My System Info: Intel i810 soundcard (onboard Toshiba Laptop) 2.6.4 kernel.org source compile [nesscg@woman nesscg]$ gst-inspect --gst-version GStreamer Core Library version 0.8.0.1 [nesscg@woman nesscg]$ gconftool-2 -g /system/gstreamer/default/audiosink osssink sync=false /* I WANT TO USE ALSASINK, but it appears to be broken */ [nesscg@woman nesscg]$ gst-inspect xvid: xvidenc: Xvid encoder xvid: xviddec: Xvid decoder snapshot: snapshot: snapshot smoothwave: smoothwave: Smooth waveform gst1394: dv1394src: Firewire (1394) DV Source textoverlay: textoverlay: Text Overlay ogg: oggdemux: ogg demuxer mikmod: mikmod: MikMod png: pngenc: PNG encoder fameenc: fameenc: MPEG1 and MPEG4 video encoder using the libfame library lame: lame: L.A.M.E. mp3 encoder jpeg: jpegenc: JPEG image encoder jpeg: jpegdec: JPEG image decoder gnomevfs: gnomevfssrc: GnomeVFS Source gnomevfs: gnomevfssink: GnomeVFS Sink gdkpixbuf: gdkpixbufdec: GdkPixbuf image decoder faad: faad: Free AAC Decoder (FAAD) dvdreadsrc: dvdreadsrc: DVD Source cdparanoia: cdparanoia: CD Audio (cdda) Source, Paranoia IV artsdsink: artsdsink: aRtsd audio sink gst_arts: gstarts: aRts plugin alsa: alsamixer: Alsa Mixer alsa: alsasrc: Alsa Src alsa: alsasink: Alsa Sink aasink: aasink: AA sink cdplayer: cdplayer: CD Player vcdsrc: vcdsrc: VCD Source qcamsrc: qcamsrc: QCam Source y4menc: y4menc: Y4mEncode wavenc: wavenc: WAV encoder volume: volume: Volume volenv: volenv: Volume Envelope videotestsrc: videotestsrc: Video test source videoscale: videoscale: Video scaler videoflip: videoflip: Video Flipper videodrop: videodrop: Video frame dropper videocrop: videocrop: video crop filter vbidec: vbidec: VBI decoder udp: udpsink: UDP packet sender udp: udpsrc: UDP packet receiver typefindfunctions: video/x-ms-asf: asf, wm, wma, wmv typefindfunctions: audio/x-au: au, snd typefindfunctions: video/x-msvideo: avi typefindfunctions: video/x-cdxa: dat typefindfunctions: audio/x-flac: flac typefindfunctions: video/x-fli: flc, fli typefindfunctions: application/x-id3: mp3, mp2, mp1, mpga, ogg, flac typefindfunctions: audio/x-mod: 669, amf, dsm, gdm, far, imf, it, med, mod, mtm, okt, sam, s3m, stm, stx, ult, xm typefindfunctions: audio/mpeg: mp3, mp2, mp1, mpga typefindfunctions: video/mpeg1: mpe, mpeg, mpg typefindfunctions: video/mpeg2: mpe, mpeg, mpg typefindfunctions: application/ogg: ogg typefindfunctions: video/mpeg: mpv, mpeg, mpg typefindfunctions: video/quicktime: mov typefindfunctions: application/vnd.rn-realmedia: ra, ram, rm typefindfunctions: application/x-shockwave-flash: swf, swfl typefindfunctions: text/plain: txt typefindfunctions: text/uri-list: ram typefindfunctions: audio/x-wav: wav typefindfunctions: audio/x-aiff: aiff, aif, aifc typefindfunctions: audio/x-shorten: shn typefindfunctions: application/x-ape: ape typefindfunctions: image/jpeg: jpg, jpe, jpeg typefindfunctions: image/gif: gif typefindfunctions: image/png: png typefindfunctions: image/bmp: bmp typefindfunctions: image/tiff: tif, tiff typefindfunctions: video/x-matroska: mkv, mka typefindfunctions: video/x-dv: dv typefindfunctions: audio/x-sid: sid typefindfunctions: image/x-xcf: xcf typefindfunctions: video/x-mng: mng typefindfunctions: image/x-jng: jng typefindfunctions: image/x-xpixmap: xpm typefindfunctions: image/x-sun-raster: ras typefindfunctions: application/x-bzip: bz2 typefindfunctions: application/x-gzip: gz typefindfunctions: application/zip: zip typefindfunctions: application/x-compress: Z typefindfunctions: audio/x-vorbis: no extensions typefindfunctions: video/x-theora: no extensions typefindfunctions: audio/x-speex: no extensions typefindfunctions: audio/x-m4a: m4a tcp: tcpsink: TCP packet sender tcp: tcpsrc: TCP packet receiver gsttags: vorbistag: vorbis tag extractor synaesthesia: synaesthesia: Synaesthesia switch: switch: Switch stereo: stereo: Stereo effect speed: speed: Speed spectrum: spectrum: Spectrum analyzer smpte: smpte: SMPTE transitions smooth: smooth: Smooth effect sine: sinesrc: Sine-wave src silence: silence: silence source rtp: rtpL16enc: RTP RAW Audio Encoder rtp: rtpL16parse: RTP packet parser rtp: rtpgsmenc: RTP GSM Audio Encoder rtp: rtpgsmparse: RTP packet parser rtjpeg: rtjpegenc: RTjpeg encoder rtjpeg: rtjpegdec: RTjpeg decoder playondemand: playondemand: Play On Demand passthrough: passthrough: Passthrough overlay: overlay: Video Overlay monoscope: monoscope: Monoscope mpegaudioparse: mp3parse: MPEG1 Audio Parser mpegaudio: mpegaudio: mpegaudio mp3 encoder mpeg2sub: mpeg2subt: MPEG2 subtitle Decoder mpeg1videoparse: mpeg1videoparse: MPEG 1 Video Parser median: median: Median effect level: level: Level mulaw: mulawenc: PCM to Mu Law conversion mulaw: mulawdec: Mu Law to PCM conversion alaw: alawenc: PCM to A Law conversion alaw: alawdec: PCM to A Law conversion interleave: interleave: Audio interleaver interleave: deinterleave: Audio deinterleaver goom: goom: GOOM: what a GOOM! filter: iir: IIR filter: lpwsinc: LPWSinc filter: bpwsinc: BPWSinc ffmpegcolorspace: ffmpegcolorspace: FFMPEG Colorspace converter festival: festival: Festival synthesizer effectv: edgeTV: EdgeTV effectv: agingTV: AgingTV effectv: diceTV: DiceTV effectv: warpTV: WarpTV effectv: shagadelicTV: ShagadelicTV effectv: vertigoTV: VertigoTV effectv: revTV: RevTV effectv: quarkTV: QuarkTV deinterlace: deinterlace: Deinterlace debug: breakmydata: breakmydata debug: negotiation: Negotiation debug: navseek: Seek based on left-right arrows navigationtest: navigationtest: Video Filter Template efence: efence: Electric Fence colorspace: colorspace: Colorspace converter chart: chart: chart drawer auparse: auparse: .au parser gstaudioconvert: audioconvert: Audio Conversion ac3parse: ac3parse: AC3 Parser gstindexers: memindex: A index that stores entries in memory gstindexers: fileindex: A index that stores entries in file gstoptgthreadscheduler: optgthread: An optimal scheduler using gthread cothreads gstoptomegascheduler: optomega: An optimal scheduler using omega cothreads gstoptscheduler: opt: An optimal scheduler using no cothreads gstentryomegascheduler: entryomega: A entry scheduler using omega cothreads gstentrygthreadscheduler: entrygthread: A entry scheduler using gthread cothreads gstbasicgthreadscheduler: basicgthread: A basic scheduler using gthread cothreads gstbasicomegascheduler: basicomega: A basic scheduler using omega cothreads gstelements: aggregator: Aggregator pipe fitting gstelements: fakesrc: Fake Source gstelements: fakesink: Fake Sink gstelements: fdsink: Filedescriptor Sink gstelements: fdsrc: Disk Source gstelements: filesrc: File Source gstelements: filesink: File Sink gstelements: identity: Identity gstelements: md5sink: MD5 Sink gstelements: multifilesrc: Multi File Source gstelements: pipefilter: Pipefilter gstelements: shaper: Shaper gstelements: statistics: Statistics gstelements: tee: Tee pipe fitting gstelements: typefind: TypeFind gstspider: spider: Spider gstspider: spideridentity: SpiderIdentity mad: mad: mad mp3 decoder mad: id3tag: id3 tag extractor vorbis: vorbisenc: Ogg Vorbis encoder vorbis: vorbisdec: VorbisDec sdlvideosink: sdlvideosink: Video sink timeoverlay: timeoverlay: Time Overlay dvdec: dvdec: DV (smpte314) decoder plugin esdsink: esdsink: Esound audio sink esdsink: esdmon: Esound audio monitor gstaf: afsink: Audiofile Sink gstaf: afsrc: Audiofile Src gstaf: afparse: Audiofile Parse xvimagesink: xvimagesink: Video sink ximagesink: ximagesink: Video sink video4linux: v4lelement: Generic video4linux Element video4linux: v4lsrc: Video (video4linux/raw) Source video4linux: v4lmjpegsrc: Video (video4linux/MJPEG) Source video4linux: v4lmjpegsink: Video (video4linux/MJPEG) sink ossaudio: ossmixer: Audio Mixer (OSS) ossaudio: osssrc: Audio Source (OSS) ossaudio: osssink: Audio Sink (OSS) modplug: modplug: ModPlug wavparse: wavparse: .wav demuxer gamma: gamma: Video Gamma Correction videobalance: videobalance: Video Balance Control rmdemux: rmdemux: RealMedia Demuxer qtdemux: qtdemux: QuickTime Demuxer mpegstream: mpegparse: MPEG System Parser mpegstream: mpegdemux: MPEG Demuxer mpegstream: dvddemux: DVD Demuxer mpegstream: rfc2250enc: RFC 2250 packet encoder system_encode: system_encode: MPEG1 Multiplexer mixmatrix: mixmatrix: Mixing Matrix flxdec: flxdec: FLX Decoder cutter: cutter: Cutter cdxaparse: cdxaparse: .dat parser audioscale: audioscale: Audio scaler asf: asfdemux: ASF Demuxer asf: asfmux: Asf multiplexer adder: adder: Adder matroska: matroskademux: Matroska demuxer matroska: matroskamux: Matroska muxer avi: avidemux: Avi demuxer avi: avimux: Avi multiplexer gstcoreelements: queue: Queue gstcoreelements: thread: Threaded container gstcoreelements: pipeline: Pipeline object gstcoreelements: bin: Generic bin [nesscg@woman nesscg]$ gst-inspect osssink Factory Details: Long name: Audio Sink (OSS) Class: Sink/Audio Description: Output to a sound card via OSS Author(s): Erik Walthinsen <omega@cse.ogi.edu>, Wim Taymans <wim.taymans@chello.be> Rank: primary GObject +----GstObject +----GstElement +----GstOssElement +----GstOssSink Pad Templates: SINK template: 'sink' Availability: Always Capabilities: audio/x-raw-int endianness=(int)1234 signed=(boolean){ true false } width=(int){ 8 16 } depth=(int){ 8 16 } rate=(int)[ 1 2147483647 ] channels=(int)[ 1 2 ] Element Flags: GST_ELEMENT_THREADSUGGESTED GST_ELEMENT_EVENT_AWARE Element Implementation: No loopfunc(), must be chain-based or not configured yet Has change_state() function: gst_osssink_change_state Has custom save_thyself() function: gst_element_save_thyself Has custom restore_thyself() function: gst_element_restore_thyself Clocking Interaction: element requires a clock element provides a clock: GstAudioClock Indexing capabilities: none Pads: SINK: 'sink' Implementation: Has chainfunc(): 0x4022bee4 Supports seeking/conversion/query formats: (3): time (Time) (1): default (Default format for the media type) (2): bytes (Bytes) Has custom convertfunc(): 0x4022c6dc Has custom queryfunc(): 0x4022c760 Provides query types: (3): latency (Latency) (2): position (Current Position) Pad Template: 'sink' Element Properties: name : The name of the object String. (Default "element") device : OSS device (/dev/dspN usually) String. (Default "/dev/dsp") mixerdev : OSS mixer device (/dev/mixerN usually) String. (Default "/dev/mixer") device-name : Name of the device String. (Default "") mute : Mute the audio Boolean. (Default false) fragment : The fragment as 0xMMMMSSSS (MMMM = total fragments, 2^SSSS = fragment size) Integer. Range: 0 - 2147483647 (Default 6) buffer-size : Size of buffers in osssink's bufferpool (bytes) Unsigned Integer. Range: 0 - 2147483647 (Default 4096) sync : If syncing on timestamps should be enabled Boolean. (Default true) chunk-size : Write data in chunk sized buffers Unsigned Integer. Range: 0 - 4294967295 (Default 4096) Dynamic Parameters: none Element Signals: "handoff" : void user_function (GstOssSink* object, gpointer user_data); "state-change" : void user_function (GstElement* object, gint arg0, gint arg1, gpointer user_data); "new-pad" : void user_function (GstElement* object, GObject arg0, gpointer user_data); "pad-removed" : void user_function (GstElement* object, GObject arg0, gpointer user_data); "error" : void user_function (GstElement* object, GstElement arg0, GstGError arg1, gchararray arg2, gpointer user_data); "eos" : void user_function (GstElement* object, gpointer user_data); "found-tag" : void user_function (GstElement* object, GstElement arg0, GstTagList arg1, gpointer user_data); "parent-set" : void user_function (GstObject* object, GObject arg0, gpointer user_data); "parent-unset" : void user_function (GstObject* object, GObject arg0, gpointer user_data); "object-saved" : void user_function (GstObject* object, gpointer arg0, gpointer user_data); "deep-notify" : void user_function (GstObject* object, GObject arg0, GParam arg1, gpointer user_data); "notify" : void user_function (GObject* object, GParam arg0, gpointer user_data); Element Actions: none Need more info, mail me. Could be mad or vorbisdec as well I suppose.
Hi Chris, Latest releases of GStreamer have had lots of improvements on playback so hopefully the situation is better now. Of course when you do reach 100% CPU there is not that much we can do. Please retest and tell us if things are still as bad.
I'm using FC3 now and the sound quality is much better on my hardware. Marking this as closed.