pulsesrc: fix checking for invalid stream index
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Sat, 5 Jan 2019 19:10:46 +0000 (23:10 +0400)
committerMarc-André Lureau <marcandre.lureau@redhat.com>
Mon, 7 Jan 2019 07:54:24 +0000 (11:54 +0400)
PA_INVALID_INDEX, the default value, is unfortunately !0.

Setting the volume before the stream is created will put the ring
buffer in error state. Unfortunately, that's what spice-gtk does.

ext/pulse/pulsesrc.c

index 31ead0c..30c6e7f 100644 (file)
@@ -621,7 +621,7 @@ gst_pulsesrc_set_stream_volume (GstPulseSrc * pulsesrc, gdouble volume)
   if (!pulsesrc->mainloop)
     goto no_mainloop;
 
-  if (!pulsesrc->source_output_idx)
+  if (pulsesrc->source_output_idx == PA_INVALID_INDEX)
     goto no_index;
 
   pa_threaded_mainloop_lock (pulsesrc->mainloop);
@@ -676,7 +676,7 @@ gst_pulsesrc_set_stream_mute (GstPulseSrc * pulsesrc, gboolean mute)
   if (!pulsesrc->mainloop)
     goto no_mainloop;
 
-  if (!pulsesrc->source_output_idx)
+  if (pulsesrc->source_output_idx == PA_INVALID_INDEX)
     goto no_index;
 
   pa_threaded_mainloop_lock (pulsesrc->mainloop);
@@ -729,7 +729,7 @@ gst_pulsesrc_set_stream_device (GstPulseSrc * pulsesrc, const gchar * device)
   if (!pulsesrc->mainloop)
     goto no_mainloop;
 
-  if (!pulsesrc->source_output_idx)
+  if (pulsesrc->source_output_idx == PA_INVALID_INDEX)
     goto no_index;
 
   pa_threaded_mainloop_lock (pulsesrc->mainloop);