Release the group lock while we perform the state changes on the uridecodebins
because that might trigger callbacks that we need to handle with the group lock
taken. Avoids a possible deadly embrace in some id3/flac files.
Fixes#567396.
This patch adds a few flags to the mixer and mixerctrl interface to
better support OSSv4 (and potentially other backends).
Patch By: Garret D'Amore <garrett.damore@sun.com>
Signed-Off-By: Jan Schmidt <jan.schmidt@sun.com>
API: GST_MIXER_FLAG_HAS_WHITELIST, GST_MIXER_FLAG_GROUPING,
API: GST_MIXER_TRACK_NO_RECORD, GST_MIXER_TRACK_NO_MUTE,
API: GST_MIXER_TRACK_WHITELIST
Don't randomly call WSAStartup and WSACleanup but instead call the startup when
we create a connection and cleanup when we free it again. Because the internal
datastructure is refcounted, this should not cause any refcounting leaks when
the connection is managed correctly.
Fixes#562794.
When you use gstreamer uninstalled and build outside
the source tree, the includes need to be specified for
both the source tree and the build tree.
Signed-off-by: David Schleef <ds@schleef.org>
Add property "speed-level" to control the amount of motion searching
the encoder does. This is only available in libtheora >= 1.0 and
will silently fail with earlier libraries. Fixes: #572275.
Signed-off-by: David Schleef <ds@schleef.org>
These three flags allow all know combinations of interlaced formats. They should
only be used when the caps contain 'interlaced=True'.
Fixes#163577 (yes, it's a 4 year old bug).
Make the RTSPConnection object opaque so that we can extend it in the future.
Rename GstRTSPChannel to GstRTSPWatch to avoid confusing with the RTSP channels.
Based on pacth by Martin Samuelsson <martin dot samuelsson at axis dot com>
Fixes#571299.
Add gst_app_sink_set_callbacks() to install a set of callbacks. This is a more
performant alternative to connecting to the signals.
Add a unit test for appsink.
Clean up some of the appsink docs.
API: GstAppSink::gst_app_sink_set_callbacks()
Add a GstRTSPChannel object that wraps a GSource around the RTSP connection so
that the connection can be monitored from a maincontext. This allows us to
operate in ASYNC mode, which is handy when building a server.
Rework the old code to use the async code under the hood.
API: gst_rtsp_channel_new()
API: gst_rtsp_channel_unref()
API: gst_rtsp_channel_attach()
API: gst_rtsp_channel_queue_message()
When setting the quality/filter-length while PLAYING the
resampling context will be destroyed and created again in
some cases, which will cause crashes in the transform function
if it's called at that time.