{
GstElement *mixer = NULL;
-- /* Prefer videomixer2 to videomixer */
-- mixer = gst_element_factory_make ("videomixer2", NULL);
-- if (mixer == NULL)
-- mixer = gst_element_factory_make ("videomixer", NULL);
++ mixer = gst_element_factory_make ("videomixer", NULL);
g_object_set (G_OBJECT (mixer), "background", 1, NULL);
gst_bin_add (GST_BIN (topbin), mixer);
beach:
priv->pending_type = GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE;
- gst_pad_remove_probe (sink, priv->switch_to_smpte_prob);
- gst_pad_set_blocked_async (sink,
- FALSE, (GstPadBlockCallback) unblock_pad_cb, NULL);
+
- return GST_PAD_PROBE_OK;
++ return GST_PAD_PROBE_REMOVE;
}
static GstElement *
beach:
priv->pending_type = GES_VIDEO_STANDARD_TRANSITION_TYPE_NONE;
- gst_pad_remove_probe (sink, priv->switch_to_cfade_prob);
- gst_pad_set_blocked_async (sink, FALSE,
- (GstPadBlockCallback) unblock_pad_cb, NULL);
+
- return GST_PAD_PROBE_OK;
++ return GST_PAD_PROBE_REMOVE;
}
static GObject *
link_element_to_mixer (GstElement * element, GstElement * mixer)
{
-- GstPad *sinkpad = gst_element_get_request_pad (mixer, "sink_%d");
++ GstPad *sinkpad = gst_element_get_request_pad (mixer, "sink_%u");
GstPad *srcpad = gst_element_get_static_pad (element, "src");
gst_pad_link_full (srcpad, sinkpad, GST_PAD_LINK_CHECK_NOTHING);
if (type != GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE) {
if (!priv->topbin)
return FALSE;
- GST_ERROR ("OO");
priv->smpte = NULL;
- priv->switch_to_smpte_prob =
- gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM,
- gst_pad_set_blocked_async (gst_element_get_static_pad (priv->topbin,
- "sinka"), TRUE, (GstPadBlockCallback) switch_to_smpte_cb, self);
++ gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_IDLE,
+ (GstPadProbeCallback) switch_to_smpte_cb, self, NULL);
- GST_ERROR ("OO");
} else {
if (!priv->topbin)
return FALSE;
priv->start_value = 1.0;
priv->end_value = 0.0;
- priv->switch_to_cfade_prob =
- gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM,
- gst_pad_set_blocked_async (gst_element_get_static_pad (priv->topbin,
- "sinka"), TRUE, (GstPadBlockCallback) switch_to_crossfade_cb,
- self);
++ gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_IDLE,
+ (GstPadProbeCallback) switch_to_crossfade_cb, self, NULL);
}
return TRUE;
}