Commit graph

4 commits

Author SHA1 Message Date
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