Commit ea672b68 authored by Wim Taymans's avatar Wim Taymans
Browse files

playsinconvert: clear the probe id when removing

parent 3b09cfe5
...@@ -205,6 +205,7 @@ pad_blocked_cb (GstPad * pad, GstProbeType type, gpointer type_data, ...@@ -205,6 +205,7 @@ pad_blocked_cb (GstPad * pad, GstProbeType type, gpointer type_data,
} }
unblock: unblock:
self->sink_proxypad_block_id = 0;
GST_PLAY_SINK_AUDIO_CONVERT_UNLOCK (self); GST_PLAY_SINK_AUDIO_CONVERT_UNLOCK (self);
return GST_PROBE_REMOVE; return GST_PROBE_REMOVE;
...@@ -215,6 +216,7 @@ link_failed: ...@@ -215,6 +216,7 @@ link_failed:
(NULL), ("Failed to configure the audio converter.")); (NULL), ("Failed to configure the audio converter."));
gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad), gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad),
self->sink_proxypad); self->sink_proxypad);
self->sink_proxypad_block_id = 0;
GST_PLAY_SINK_AUDIO_CONVERT_UNLOCK (self); GST_PLAY_SINK_AUDIO_CONVERT_UNLOCK (self);
return GST_PROBE_REMOVE; return GST_PROBE_REMOVE;
......
...@@ -186,6 +186,7 @@ pad_blocked_cb (GstPad * pad, GstProbeType type, gpointer type_data, ...@@ -186,6 +186,7 @@ pad_blocked_cb (GstPad * pad, GstProbeType type, gpointer type_data,
} }
unblock: unblock:
self->sink_proxypad_block_id = 0;
GST_PLAY_SINK_VIDEO_CONVERT_UNLOCK (self); GST_PLAY_SINK_VIDEO_CONVERT_UNLOCK (self);
return GST_PROBE_REMOVE; return GST_PROBE_REMOVE;
...@@ -196,6 +197,7 @@ link_failed: ...@@ -196,6 +197,7 @@ link_failed:
(NULL), ("Failed to configure the video converter.")); (NULL), ("Failed to configure the video converter."));
gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad), gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad),
self->sink_proxypad); self->sink_proxypad);
self->sink_proxypad_block_id = 0;
GST_PLAY_SINK_VIDEO_CONVERT_UNLOCK (self); GST_PLAY_SINK_VIDEO_CONVERT_UNLOCK (self);
return GST_PROBE_REMOVE; return GST_PROBE_REMOVE;
...@@ -205,12 +207,12 @@ link_failed: ...@@ -205,12 +207,12 @@ link_failed:
static void static void
block_proxypad (GstPlaySinkVideoConvert * self) block_proxypad (GstPlaySinkVideoConvert * self)
{ {
if (self->sink_proxypad_block_id != 0) if (self->sink_proxypad_block_id == 0) {
return; self->sink_proxypad_block_id =
gst_pad_add_probe (self->sink_proxypad, GST_PROBE_TYPE_BLOCK,
self->sink_proxypad_block_id = pad_blocked_cb, gst_object_ref (self),
gst_pad_add_probe (self->sink_proxypad, GST_PROBE_TYPE_BLOCK, (GDestroyNotify) gst_object_unref);
pad_blocked_cb, gst_object_ref (self), (GDestroyNotify) gst_object_unref); }
} }
static void static void
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment