mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-20 00:31:13 +00:00
tcpclientsrc: unset flushing state too
When unlocking, we set the flushing state on the fdset. Implement unlock_stop so that we can use it to unset the flushing state again. Fixes #577326
This commit is contained in:
parent
d18118418e
commit
dc91454984
1 changed files with 15 additions and 0 deletions
|
@ -86,6 +86,7 @@ static GstFlowReturn gst_tcp_client_src_create (GstPushSrc * psrc,
|
||||||
static gboolean gst_tcp_client_src_stop (GstBaseSrc * bsrc);
|
static gboolean gst_tcp_client_src_stop (GstBaseSrc * bsrc);
|
||||||
static gboolean gst_tcp_client_src_start (GstBaseSrc * bsrc);
|
static gboolean gst_tcp_client_src_start (GstBaseSrc * bsrc);
|
||||||
static gboolean gst_tcp_client_src_unlock (GstBaseSrc * bsrc);
|
static gboolean gst_tcp_client_src_unlock (GstBaseSrc * bsrc);
|
||||||
|
static gboolean gst_tcp_client_src_unlock_stop (GstBaseSrc * bsrc);
|
||||||
|
|
||||||
static void gst_tcp_client_src_set_property (GObject * object, guint prop_id,
|
static void gst_tcp_client_src_set_property (GObject * object, guint prop_id,
|
||||||
const GValue * value, GParamSpec * pspec);
|
const GValue * value, GParamSpec * pspec);
|
||||||
|
@ -136,6 +137,7 @@ gst_tcp_client_src_class_init (GstTCPClientSrcClass * klass)
|
||||||
gstbasesrc_class->start = gst_tcp_client_src_start;
|
gstbasesrc_class->start = gst_tcp_client_src_start;
|
||||||
gstbasesrc_class->stop = gst_tcp_client_src_stop;
|
gstbasesrc_class->stop = gst_tcp_client_src_stop;
|
||||||
gstbasesrc_class->unlock = gst_tcp_client_src_unlock;
|
gstbasesrc_class->unlock = gst_tcp_client_src_unlock;
|
||||||
|
gstbasesrc_class->unlock_stop = gst_tcp_client_src_unlock_stop;
|
||||||
|
|
||||||
gstpush_src_class->create = gst_tcp_client_src_create;
|
gstpush_src_class->create = gst_tcp_client_src_create;
|
||||||
|
|
||||||
|
@ -423,7 +425,20 @@ gst_tcp_client_src_unlock (GstBaseSrc * bsrc)
|
||||||
{
|
{
|
||||||
GstTCPClientSrc *src = GST_TCP_CLIENT_SRC (bsrc);
|
GstTCPClientSrc *src = GST_TCP_CLIENT_SRC (bsrc);
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (src, "set to flushing");
|
||||||
gst_poll_set_flushing (src->fdset, TRUE);
|
gst_poll_set_flushing (src->fdset, TRUE);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* will be called only between calls to start() and stop() */
|
||||||
|
static gboolean
|
||||||
|
gst_tcp_client_src_unlock_stop (GstBaseSrc * bsrc)
|
||||||
|
{
|
||||||
|
GstTCPClientSrc *src = GST_TCP_CLIENT_SRC (bsrc);
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (src, "unset flushing");
|
||||||
|
gst_poll_set_flushing (src->fdset, FALSE);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue