summaryrefslogtreecommitdiffstats
path: root/ext
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sourceforge.net>2007-04-04 07:36:28 +0000
committerStefan Kost <ensonic@users.sourceforge.net>2007-04-04 07:36:28 +0000
commit1f426a417e42c867e69b14a8f3dcebba48582a84 (patch)
tree5a980c9419967e98806acf67cd0ceb87a2313fa4 /ext
parentf9fc86a14087392e563146957105eff064b34150 (diff)
downloadgst-plugins-bad-1f426a417e42c867e69b14a8f3dcebba48582a84.tar.gz
gst-plugins-bad-1f426a417e42c867e69b14a8f3dcebba48582a84.tar.bz2
gst-plugins-bad-1f426a417e42c867e69b14a8f3dcebba48582a84.zip
ext/jack/gstjackaudiosink.c: Try t better name clients. properly handle return codes when re- establishing links.
Original commit message from CVS: * ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_open_device), (gst_jack_ring_buffer_acquire): Try t better name clients. properly handle return codes when re- establishing links.
Diffstat (limited to 'ext')
-rw-r--r--ext/jack/gstjackaudiosink.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c
index 6f0ea571..d3efe8d6 100644
--- a/ext/jack/gstjackaudiosink.c
+++ b/ext/jack/gstjackaudiosink.c
@@ -26,7 +26,7 @@
*
* <refsect2>
* <para>
- * A Sink that outputs data to Jack ports.
+ * A Sink that outputs data to Jack ports.
* </para>
* <para>
* It will create N Jack ports named out_&lt;num&gt; where &lt;num&gt; is starting from 1.
@@ -39,7 +39,7 @@
* <para>
* When the ::connect property is set to auto, this element will try to connect
* each output port to a random physical jack input pin. In this mode, the sink
- * will expose the number of physical channels on its pad caps.
+ * will expose the number of physical channels on its pad caps.
* </para>
* <para>
* When the ::connect property is set to none, the element will accept any
@@ -396,12 +396,17 @@ gst_jack_ring_buffer_open_device (GstRingBuffer * buf)
{
GstJackAudioSink *sink;
jack_status_t status = 0;
+ const gchar *name;
sink = GST_JACK_AUDIO_SINK (GST_OBJECT_PARENT (buf));
GST_DEBUG_OBJECT (sink, "open");
- sink->client = gst_jack_audio_client_new ("GStreamer", sink->server,
+ name = g_get_application_name ();
+ if (!name)
+ name = "GStreamer";
+
+ sink->client = gst_jack_audio_client_new (name, sink->server,
GST_JACK_CLIENT_SINK,
jack_shutdown_cb,
jack_process_cb, jack_buffer_size_cb, jack_sample_rate_cb, buf, &status);
@@ -526,9 +531,11 @@ gst_jack_ring_buffer_acquire (GstRingBuffer * buf, GstRingBufferSpec * spec)
("No more physical ports, leaving some ports unconnected"));
break;
}
+ GST_DEBUG_OBJECT (sink, "try connecting to %s",
+ jack_port_name (sink->ports[i]));
/* connect the port to a physical port */
- if ((res = jack_connect (client, jack_port_name (sink->ports[i]),
- ports[i])))
+ res = jack_connect (client, jack_port_name (sink->ports[i]), ports[i]);
+ if (res != 0 && res != EEXIST)
goto cannot_connect;
}
free (ports);
@@ -558,13 +565,14 @@ out_of_ports:
could_not_activate:
{
GST_ELEMENT_ERROR (sink, RESOURCE, SETTINGS, (NULL),
- ("Could not activate client (%d)", res));
+ ("Could not activate client (%d:%s)", res, g_strerror (res)));
return FALSE;
}
cannot_connect:
{
GST_ELEMENT_ERROR (sink, RESOURCE, SETTINGS, (NULL),
- ("Could not connect output ports to physical ports (%d)", res));
+ ("Could not connect output ports to physical ports (%d:%s)",
+ res, g_strerror (res)));
free (ports);
return FALSE;
}