This makes the call to pa_stream_cork() during ringbuffer pause()
synchronous, which makes sure that the clock does not advance after we
take a snapshot for start_time.
https://bugzilla.gnome.org/show_bug.cgi?id=639240
These macros will expand to NOOPs given the right defines. Also,
g_return_if_fail() and friends are meant to be used to catch programming
errors (like invalid input to functions), not runtime error handling.
The unit tests are riddled with g_assert() and friends, make sure we
don't disable assert and cast checks for the unit tests even if
this has been specified for the rest of the code base, e.g. via
--disable-glib-asserts.
The previous default, greedyh, takes 4 times as long as MPEG-2
video decoding, and is unlikely fast enough on any current CPU
to play 1080i video in real-time. greedyl isn't much faster.
linear was chosen over vfir, since the quality advantage of vfir
is minimal compared to the occasional visual artifacts and slower
processing.
Looks like this got enabled by accident when adding it to v4l2sink,
so undo this for now. Not sure it makes much sense in a GStreamer
context with current hardware.
Error out when we are asked to read a different size that what was configured as
the jack period size because that would mean something else is wrong.
Fixes#618409
Not only adjust buffer-time and avoid segtotal=0, but instead ensure segtotal is
atleast 2. Do same change on jacksrc. We could also check the latency and buffer
time configured by the client and adjust buffer-time so that we get to the same
number of segments.
Jack overrides user-specified latency-time with the one it gets from jack
itself. It also needs to adjust buffer-time somewhat to avoid segtotal being 0
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.