]> code.delx.au - pulseaudio/commitdiff
tunnel: Fix reading state from wrong variable
authorTanu Kaskinen <tanu.kaskinen@linux.intel.com>
Sun, 14 Jul 2013 10:39:32 +0000 (13:39 +0300)
committerTanu Kaskinen <tanu.kaskinen@linux.intel.com>
Sun, 14 Jul 2013 10:39:32 +0000 (13:39 +0300)
u->sink->state is not yet updated, so the state must be read from
u->sink->thread_info.state. This makes pausing and resuming of the
smoother happen at the right time.

Thanks to Pierre Ossman for the patch.

src/modules/module-tunnel.c

index de60573061a3fe8579e0004143b5912a327e51ad..ad45f735fcf53a8a02a752d1618c9b292f5e0452 100644 (file)
@@ -488,9 +488,9 @@ static int sink_process_msg(pa_msgobject *o, int code, void *data, int64_t offse
             /* First, change the state, because otherwise pa_sink_render() would fail */
             if ((r = pa_sink_process_msg(o, code, data, offset, chunk)) >= 0) {
 
-                stream_cork_within_thread(u, u->sink->state == PA_SINK_SUSPENDED);
+                stream_cork_within_thread(u, u->sink->thread_info.state == PA_SINK_SUSPENDED);
 
-                if (PA_SINK_IS_OPENED(u->sink->state))
+                if (PA_SINK_IS_OPENED(u->sink->thread_info.state))
                     send_data(u);
             }
 
@@ -597,7 +597,7 @@ static int source_process_msg(pa_msgobject *o, int code, void *data, int64_t off
             int r;
 
             if ((r = pa_source_process_msg(o, code, data, offset, chunk)) >= 0)
-                stream_cork_within_thread(u, u->source->state == PA_SOURCE_SUSPENDED);
+                stream_cork_within_thread(u, u->source->thread_info.state == PA_SOURCE_SUSPENDED);
 
             return r;
         }