From: Wim Taymans Date: Wed, 26 Apr 2006 08:55:27 +0000 (+0000) Subject: ext/esd/esdsink.c: Always write ESD_BUF_SIZE bytes and use ESD_MAX_WRITE_SIZE as... X-Git-Tag: 1.19.3~509^2~12815 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a3fca5680bd81ce8880be7fba1d8a8c7955d5f4e;p=platform%2Fupstream%2Fgstreamer.git ext/esd/esdsink.c: Always write ESD_BUF_SIZE bytes and use ESD_MAX_WRITE_SIZE as the size of the ringbuffer. This sho... Original commit message from CVS: * ext/esd/esdsink.c: (gst_esdsink_prepare), (gst_esdsink_delay): Always write ESD_BUF_SIZE bytes and use ESD_MAX_WRITE_SIZE as the size of the ringbuffer. This should fix hangs with older esd sound servers. --- diff --git a/ChangeLog b/ChangeLog index 170b2b0..5671a6b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-04-26 Wim Taymans + + * ext/esd/esdsink.c: (gst_esdsink_prepare), (gst_esdsink_delay): + Always write ESD_BUF_SIZE bytes and use ESD_MAX_WRITE_SIZE as + the size of the ringbuffer. This should fix hangs with older + esd sound servers. + 2006-04-26 Stefan Kost * ext/aalib/gstaasink.c: diff --git a/ext/esd/esdsink.c b/ext/esd/esdsink.c index ff0a194..995f110 100644 --- a/ext/esd/esdsink.c +++ b/ext/esd/esdsink.c @@ -270,7 +270,6 @@ gst_esdsink_prepare (GstAudioSink * asink, GstRingBufferSpec * spec) /* Name used by esound for this connection. */ const char connname[] = "GStreamer"; - guint latency; GST_DEBUG_OBJECT (esdsink, "prepare"); @@ -310,11 +309,8 @@ gst_esdsink_prepare (GstAudioSink * asink, GstRingBufferSpec * spec) esdsink->rate = spec->rate; - latency = esd_get_latency (esdsink->ctrl_fd); - latency = latency * 44100LL / esdsink->rate; - - spec->segsize = 256 * spec->bytes_per_sample; - spec->segtotal = (latency / 256); + spec->segsize = ESD_BUF_SIZE; + spec->segtotal = (ESD_MAX_WRITE_SIZE / spec->segsize); spec->silence_sample[0] = 0; spec->silence_sample[1] = 0; spec->silence_sample[2] = 0; @@ -402,7 +398,8 @@ gst_esdsink_delay (GstAudioSink * asink) latency = esd_get_latency (esdsink->ctrl_fd); - /* latency is measured in samples at a rate of 44100 */ + /* latency is measured in samples at a rate of 44100, this + * cannot overflow. */ latency = latency * 44100LL / esdsink->rate; GST_DEBUG_OBJECT (asink, "got latency: %u", latency);