diff -u alsa-plugins-1.0.15/debian/changelog alsa-plugins-1.0.15/debian/changelog --- alsa-plugins-1.0.15/debian/changelog +++ alsa-plugins-1.0.15/debian/changelog @@ -1,3 +1,18 @@ +alsa-plugins (1.0.15-1ubuntu3.1) hardy-proposed; urgency=low + + [ Daniel T Chen ] + * Add remaining fixes to make Flash usable with PulseAudio, by removing some + uneeded asserts. + affects LP #192888. + + [ Luke Yelavich ] + * debian/patches/pulse_use_ioplug_setstate.diff: The pulseaudio plugin + should report the XRUN state back to the application. Should allow more + applications to work with the pulseaudio plugin. (LP: #221673) + * debian/control: Build-depend on libasound2-dev >= 1.0.15-3ubuntu4.1. + + -- Luke Yelavich Fri, 30 May 2008 16:50:39 +1000 + alsa-plugins (1.0.15-1ubuntu3) hardy; urgency=low * Backport remaining pcm_pulse.c patches from hg tip (LP: #112948) diff -u alsa-plugins-1.0.15/debian/patches/pulse-buffer_attr.diff alsa-plugins-1.0.15/debian/patches/pulse-buffer_attr.diff --- alsa-plugins-1.0.15/debian/patches/pulse-buffer_attr.diff +++ alsa-plugins-1.0.15/debian/patches/pulse-buffer_attr.diff @@ -1,5 +1,7 @@ ---- alsa-plugins-1.0.14/pulse/pcm_pulse.c 2007-05-31 10:06:51.000000000 +0200 -+++ alsa-plugins-1.0.14.lennart/pulse/pcm_pulse.c 2007-09-24 01:43:01.000000000 +0200 +Index: alsa-plugins-1.0.15/pulse/pcm_pulse.c +=================================================================== +--- alsa-plugins-1.0.15.orig/pulse/pcm_pulse.c 2008-04-24 01:18:17.000000000 -0400 ++++ alsa-plugins-1.0.15/pulse/pcm_pulse.c 2008-04-24 01:19:43.000000000 -0400 @@ -57,7 +57,7 @@ if (size > pcm->last_size) { @@ -9,12 +11,9 @@ } pcm->last_size = size; -@@ -533,9 +533,9 @@ - pcm->ss.rate = io->rate; - pcm->ss.channels = io->channels; +@@ -535,7 +535,7 @@ -- pcm->buffer_attr.maxlength = io->buffer_size * pcm->frame_size; -+ pcm->buffer_attr.maxlength = (io->buffer_size*3)/2 * pcm->frame_size; + pcm->buffer_attr.maxlength = io->buffer_size * pcm->frame_size; pcm->buffer_attr.tlength = io->buffer_size * pcm->frame_size; - pcm->buffer_attr.prebuf = io->period_size * pcm->frame_size; + pcm->buffer_attr.prebuf = (io->buffer_size-io->period_size) * pcm->frame_size; diff -u alsa-plugins-1.0.15/debian/patches/series alsa-plugins-1.0.15/debian/patches/series --- alsa-plugins-1.0.15/debian/patches/series +++ alsa-plugins-1.0.15/debian/patches/series @@ -4,0 +5,2 @@ +pulse-remove-useless-asserts.diff +pulse_use_ioplug_setstate.diff only in patch2: unchanged: --- alsa-plugins-1.0.15.orig/debian/patches/pulse-remove-useless-asserts.diff +++ alsa-plugins-1.0.15/debian/patches/pulse-remove-useless-asserts.diff @@ -0,0 +1,34 @@ +Index: alsa-plugins-1.0.15/pulse/pcm_pulse.c +=================================================================== +--- alsa-plugins-1.0.15.orig/pulse/pcm_pulse.c 2008-04-24 00:56:59.000000000 -0400 ++++ alsa-plugins-1.0.15/pulse/pcm_pulse.c 2008-04-24 01:00:10.000000000 -0400 +@@ -73,9 +73,10 @@ + assert(pcm); + assert(pcm->p); + +- pa_threaded_mainloop_lock(pcm->p->mainloop); ++ if (pcm->stream == NULL) ++ return 0; + +- assert(pcm->stream); ++ pa_threaded_mainloop_lock(pcm->p->mainloop); + + err = pulse_check_connection(pcm->p); + if (err < 0) +@@ -112,12 +113,14 @@ + + pa_threaded_mainloop_lock(pcm->p->mainloop); + +- assert(pcm->stream); +- + err = pulse_check_connection(pcm->p); + if (err < 0) + goto finish; + ++ /* If stream connection fails, this gets called anyway */ ++ if (pcm->stream == NULL) ++ goto finish; ++ + o = pa_stream_flush(pcm->stream, pulse_stream_success_cb, pcm->p); + assert(o); + only in patch2: unchanged: --- alsa-plugins-1.0.15.orig/debian/patches/pulse_use_ioplug_setstate.diff +++ alsa-plugins-1.0.15/debian/patches/pulse_use_ioplug_setstate.diff @@ -0,0 +1,25 @@ +--- alsa-plugins-1.0.15/pulse/pcm_pulse.c 2008-05-29 16:16:18.368746926 +1000 ++++ alsa-plugins/pulse/pcm_pulse.c 2008-05-29 16:16:26.476747305 +1000 +@@ -243,9 +240,8 @@ + + *delayp = snd_pcm_bytes_to_frames(io->pcm, pa_usec_to_bytes(lat, &pcm->ss)); + +- /* Yes, this is evil, and we're not supposed to do this. */ + if (pcm->underrun && pcm->io.state == SND_PCM_STATE_RUNNING) +- pcm->io.state = SND_PCM_STATE_XRUN; ++ snd_pcm_ioplug_set_state(io, SND_PCM_STATE_XRUN); + + finish: + pa_threaded_mainloop_unlock(pcm->p->mainloop); +--- alsa-plugins-1.0.15.orig/pulse/pcm_pulse.c ++++ alsa-plugins-1.0.15/pulse/pcm_pulse.c +@@ -188,6 +188,9 @@ + assert(pcm); + assert(pcm->p); + ++ if (pcm->stream == NULL) ++ return 0; ++ + pa_threaded_mainloop_lock(pcm->p->mainloop); + + assert(pcm->stream); only in patch2: unchanged: