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 139513 - Hissing and poping on playback under heavy CPU load
Hissing and poping on playback under heavy CPU load
Status: VERIFIED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: dont know
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2004-04-08 19:23 UTC by Chris Ness
Modified: 2009-08-15 18:40 UTC
See Also:
GNOME target: ---
GNOME version: 2.3/2.4



Description Chris Ness 2004-04-08 19:23:09 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.
Comment 1 Christian Fredrik Kalager Schaller 2004-12-16 21:25:56 UTC
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.
Comment 2 Chris Ness 2004-12-16 23:18:42 UTC
I'm using FC3 now and the sound quality is much better on my hardware.
Marking this as closed.