Commit graph

18 commits

Author SHA1 Message Date
Tim-Philipp Müller
cae9ec0ad8 ext, gst: fix indentation 2016-09-15 09:53:07 +01:00
Thomas Scheuermann
1215849e69 jack: Fix pipeline hang when jack changes sample rate or buffer size
If jackd changes the buffer size or sample rate, jackaudiosink hangs
and can't be stopped. This also happens if jack is configured as slave
and a gstreamer pipeline is started on the slave machine while the jack
master isn't running yet. If the the jack master is started it changes
the buffer size / sample rate and jackaudiosink can't be stopped.

This fix calls jack_shutdown_cb when jack_sample_rate_cb or
jack_buffer_size_cb is called.

https://bugzilla.gnome.org/show_bug.cgi?id=771272
2016-09-13 14:19:47 +02:00
Thomas Scheuermann
187d8acd5e jack: don't wait for callbacks if the jack server shut down
Otherwise we'll wait forever.

https://bugzilla.gnome.org/show_bug.cgi?id=747275
2016-07-08 16:52:04 +03:00
Stefan Sauer
117fa7c3e4 jack: add some simple log handlers for jack
Add log handlers for jack that write to the gst debug log. This avoids spamming
the console when e.g. using autoaudiosink, having the jack elements installed,
but not running jack.
2014-02-23 00:17:00 +01:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Mark Nauwelaerts
26dd999b68 Merge branch 'master' into 0.11
Conflicts:
	ext/wavpack/gstwavpackparse.c
	sys/v4l2/gstv4l2bufferpool.c
	sys/v4l2/gstv4l2bufferpool.h
	sys/v4l2/gstv4l2videooverlay.c
2012-03-05 13:29:59 +01:00
Stefan Sauer
18e8aa48e6 jack: change the transport-mode enum into flags
One can use (or not use) master and slave mode independently.
2012-03-04 19:56:43 +01:00
Wim Taymans
225e98d623 Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacenc.c
	ext/jack/gstjackaudioclient.c
	ext/jack/gstjackaudiosink.c
	ext/jack/gstjackaudiosrc.c
	ext/pulse/plugin.c
	ext/shout2/gstshout2.c
	gst/matroska/matroska-mux.c
	gst/rtp/gstrtph264pay.c
2012-02-10 16:23:14 +01:00
Stefan Sauer
7a9970fc29 jack: rework transport support
Move common code to jackclient. There we can also handle the request state
message in a better way, as the element callbacks are only run if the element is
active.
2012-02-07 21:59:29 +01:00
Wim Taymans
1584806634 port to new gthread API 2012-01-19 11:33:53 +01:00
Stefan Sauer
7d4044aa46 jack: add transport control handling
This feature allows to start and stop playback from other jack applications (e.g. qjackctl).
2012-01-10 22:35:02 +01:00
Stefan Sauer
0280ab04ed jack: use jack type for the callback
Jack headers have a typedef for the shutdown callback as well.
2012-01-10 15:08:16 +01:00
Tim-Philipp Müller
66f6e12888 Work around deprecated thread API in glib master
Add private replacements for deprecated functions such as
g_mutex_new(), g_mutex_free(), g_cond_new() etc., mostly
to avoid the deprecation warnings. We'll change these
over to the new API once we depend on glib >= 2.32.
2011-12-12 09:46:27 +00:00
Tristan Matthews
c070cfa7c8 jack: added client property 2011-01-02 14:30:08 +00:00
Stefan Kost
8a002a1121 jack: when stopping playback, do one more cycle to flush the port. Fixes #582167
The gst_jack_audio_client_set_active() flags the port as deactivating and uses
a GCond to wait until the jack_process_cb() has run once more and cleared the
flag. This way the client zero's the buffer. This happens if one manyally go
to PAUSED and then to READY, while leting the mainloop run inbetween.
2011-01-02 14:30:07 +00:00
Tristan Matthews
b34bd1425c ext/jack/: Add a jackaudiosrc. Refactor sink slightly for better code reuse.
Original commit message from CVS:
patch by: Tristan Matthews <tristan@sat.qc.ca>
* ext/jack/Makefile.am:
* ext/jack/gstjack.c:
* ext/jack/gstjackaudioclient.c:
* ext/jack/gstjackaudiosink.c:
* ext/jack/gstjackaudiosink.h:
* ext/jack/gstjackaudiosrc.c:
* ext/jack/gstjackaudiosrc.h:
* ext/jack/gstjackringbuffer.h:
Add a jackaudiosrc. Refactor sink slightly for better code reuse.
Fixes #545197.
2011-01-02 14:30:06 +00:00
Paul Davis
a70ffeed7c ext/jack/gstjackaudioclient.c: Don't need to take the connection lock, it will not be used and could cause deadlocks.
Original commit message from CVS:
Based on patch by: Paul Davis <paul at linuxaudiosystems dot com>
* ext/jack/gstjackaudioclient.c: (gst_jack_audio_unref_connection):
Don't need to take the connection lock, it will not be used and could
cause deadlocks.
2011-01-02 14:30:06 +00:00
Paul Davis
60bcffa5ef ext/jack/: Make an object to manage client connections to the jack server which we will use in the future to run sele...
Original commit message from CVS:
Includes patch by: Paul Davis <paul at linuxaudiosystems dot com>
* ext/jack/Makefile.am:
* ext/jack/gstjackaudioclient.c: (gst_jack_audio_client_init),
(jack_process_cb), (jack_sample_rate_cb), (jack_buffer_size_cb),
(jack_shutdown_cb), (connection_find),
(gst_jack_audio_make_connection), (gst_jack_audio_get_connection),
(gst_jack_audio_unref_connection),
(gst_jack_audio_connection_add_client),
(gst_jack_audio_connection_remove_client),
(gst_jack_audio_client_new), (gst_jack_audio_client_free),
(gst_jack_audio_client_get_client),
(gst_jack_audio_client_set_active):
* ext/jack/gstjackaudioclient.h:
Make an object to manage client connections to the jack server which we
will use in the future to run selected jack elements with the same jack
connection.
Make some stuff a bit more threadsafe.
Activate the jack client ASAP.
* ext/jack/gstjackaudiosink.c:
(gst_jack_audio_sink_allocate_channels),
(gst_jack_audio_sink_free_channels), (jack_process_cb),
(gst_jack_ring_buffer_open_device),
(gst_jack_ring_buffer_close_device),
(gst_jack_ring_buffer_acquire), (gst_jack_ring_buffer_release),
(gst_jack_audio_sink_class_init), (gst_jack_audio_sink_init),
(gst_jack_audio_sink_getcaps):
* ext/jack/gstjackaudiosink.h:
Use new client object to manage connections.
Don't remove and recreate all ports, try to reuse them.
2011-01-02 14:30:06 +00:00