[EMAIL PROTECTED] wrote:
http://bugs.freedesktop.org/show_bug.cgi?id=17307
Summary: sfwdec-mozilla plugin stops playing sounds
Reproduced with latest git and pulseaudio 0.9.10, attached patch fix it for me.
cheers,
riccardo
diff --git a/swfdec-gtk/swfdec_playback_alsa.c b/swfdec-gtk/swfdec_playback_alsa.c
index f4711e9..e1af2de 100644
--- a/swfdec-gtk/swfdec_playback_alsa.c
+++ b/swfdec-gtk/swfdec_playback_alsa.c
@@ -105,6 +105,8 @@ write_player (Stream *stream, const snd_pcm_channel_area_t *dst,
return rendered;
}
+static void swfdec_playback_stream_start (Stream *stream);
+
static gboolean
try_write_mmap (Stream *stream)
{
@@ -114,6 +116,10 @@ try_write_mmap (Stream *stream)
do {
avail_result = snd_pcm_avail_update (stream->pcm);
+ if (avail_result == -EPIPE) {
+ swfdec_playback_stream_start (stream);
+ return TRUE;
+ }
ALSA_ERROR (avail_result, "snd_pcm_avail_update failed", FALSE);
if (avail_result == 0)
return TRUE;
@@ -142,6 +148,10 @@ try_write_so_pa_gets_it (Stream *stream)
gboolean finish = FALSE;
avail = snd_pcm_avail_update (stream->pcm);
+ if (avail == -EPIPE) {
+ swfdec_playback_stream_start (stream);
+ return TRUE;
+ }
ALSA_ERROR (avail, "snd_pcm_avail_update failed", FALSE);
while (avail > 0 && !finish) {
@@ -165,7 +175,6 @@ try_write_so_pa_gets_it (Stream *stream)
#define try_write(stream) ((stream)->write (stream))
-static void swfdec_playback_stream_start (Stream *stream);
static gboolean
handle_stream (GIOChannel *source, GIOCondition cond, gpointer data)
{
_______________________________________________
Swfdec mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/swfdec