GESSmartMixer *self;
GstPad *mixer_pad;
GstPad *ghostpad;
- GstElement *bin;
} PadInfos;
static void
{
if (g_atomic_int_dec_and_test (&infos->refcount)) {
GST_DEBUG_OBJECT (infos->mixer_pad, "Releasing pad");
- if (G_LIKELY (infos->bin)) {
- gst_element_set_state (infos->bin, GST_STATE_NULL);
- gst_element_unlink (infos->bin, infos->self->mixer);
- gst_bin_remove (GST_BIN (infos->self), infos->bin);
- }
-
if (infos->mixer_pad) {
gst_element_release_request_pad (infos->self->mixer, infos->mixer_pad);
gst_object_unref (infos->mixer_pad);
_request_new_pad (GstElement * element, GstPadTemplate * templ,
const gchar * name, const GstCaps * caps)
{
- GstPad *videoconvert_srcpad, *videoconvert_sinkpad, *tmpghost;
PadInfos *infos = pad_infos_new ();
GESSmartMixer *self = GES_SMART_MIXER (element);
GstPad *ghost;
- GstElement *videoconvert;
infos->mixer_pad = gst_element_request_pad (self->mixer,
gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (self->mixer),
infos->self = self;
- infos->bin = gst_bin_new (NULL);
- videoconvert = gst_element_factory_make ("videoconvert", NULL);
-
- gst_bin_add (GST_BIN (infos->bin), videoconvert);
-
- videoconvert_sinkpad = gst_element_get_static_pad (videoconvert, "sink");
- tmpghost = GST_PAD (gst_ghost_pad_new (NULL, videoconvert_sinkpad));
- gst_object_unref (videoconvert_sinkpad);
- gst_pad_set_active (tmpghost, TRUE);
- gst_element_add_pad (GST_ELEMENT (infos->bin), tmpghost);
-
- gst_bin_add (GST_BIN (self), infos->bin);
ghost = g_object_new (ges_smart_mixer_pad_get_type (), "name", name,
- "direction", GST_PAD_DIRECTION (tmpghost), NULL);
+ "direction", GST_PAD_DIRECTION (infos->mixer_pad), NULL);
infos->ghostpad = ghost;
- gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (ghost), tmpghost);
+ gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (ghost), infos->mixer_pad);
gst_pad_set_active (ghost, TRUE);
if (!gst_element_add_pad (GST_ELEMENT (self), ghost))
goto could_not_add;
- videoconvert_srcpad = gst_element_get_static_pad (videoconvert, "src");
- tmpghost = GST_PAD (gst_ghost_pad_new (NULL, videoconvert_srcpad));
- gst_object_unref (videoconvert_srcpad);
- gst_pad_set_active (tmpghost, TRUE);
- gst_element_add_pad (GST_ELEMENT (infos->bin), tmpghost);
- gst_pad_link (tmpghost, infos->mixer_pad);
-
gst_pad_set_event_function (GST_PAD (ghost),
ges_smart_mixer_sinkpad_event_func);
ges_smart_mixer_constructed (GObject * obj)
{
GstPad *pad;
- GstElement *identity;
+ GstElement *identity, *videoconvert;
GESSmartMixer *self = GES_SMART_MIXER (obj);
gchar *cname = g_strdup_printf ("%s-compositor", GST_OBJECT_NAME (self));
g_object_set (identity, "drop-allocation", TRUE, NULL);
g_assert (identity);
- gst_bin_add_many (GST_BIN (self), self->mixer, identity, NULL);
- gst_element_link (self->mixer, identity);
+ videoconvert = gst_element_factory_make ("videoconvert", NULL);
+ g_assert (videoconvert);
+
+ gst_bin_add_many (GST_BIN (self), self->mixer, identity, videoconvert, NULL);
+ gst_element_link_many (self->mixer, identity, videoconvert, NULL);
- pad = gst_element_get_static_pad (identity, "src");
+ pad = gst_element_get_static_pad (videoconvert, "src");
self->srcpad = gst_ghost_pad_new ("src", pad);
gst_pad_set_active (self->srcpad, TRUE);
gst_object_unref (pad);
static GstElement *
ges_video_transition_create_element (GESTrackElement * object)
{
- GstElement *topbin, *iconva, *iconvb, *oconv;
+ GstElement *topbin, *iconva, *iconvb;
GstElement *mixer = NULL;
GstPad *sinka_target, *sinkb_target, *src_target, *sinka, *sinkb, *src;
GESVideoTransition *self;
gst_element_factory_make ("framepositioner", "frame_tagger");
g_object_set (priv->positioner, "zorder",
G_MAXUINT - GES_TIMELINE_ELEMENT_PRIORITY (self), NULL);
- oconv = gst_element_factory_make ("videoconvert", "tr-csp-output");
- gst_bin_add_many (GST_BIN (topbin), iconva, iconvb, priv->positioner,
- oconv, NULL);
+ gst_bin_add_many (GST_BIN (topbin), iconva, iconvb, priv->positioner, NULL);
mixer =
g_object_new (GES_TYPE_SMART_MIXER, "name",
GES_VIDEO_STANDARD_TRANSITION_TYPE_CROSSFADE ? "add" : "over");
fast_element_link (mixer, priv->positioner);
- fast_element_link (priv->positioner, oconv);
sinka_target = gst_element_get_static_pad (iconva, "sink");
sinkb_target = gst_element_get_static_pad (iconvb, "sink");
- src_target = gst_element_get_static_pad (oconv, "src");
+ src_target = gst_element_get_static_pad (priv->positioner, "src");
sinka = gst_ghost_pad_new ("sinka", sinka_target);
sinkb = gst_ghost_pad_new ("sinkb", sinkb_target);
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE;
-event caps: video/x-raw, format=(string)I420, width=(int)500, height=(int)500, framerate=(fraction)10/1, chroma-site=(string)jpeg, colorimetry=(string)bt601;
+event caps: video/x-raw, width=(int)500, height=(int)500, framerate=(fraction)10/1, format=(string)I420;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:02.000000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=none
-buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.100000000
-buffer: content-id=1, pts=0:00:00.100000000, dur=0:00:00.100000000
-buffer: content-id=2, pts=0:00:00.200000000, dur=0:00:00.100000000
-buffer: content-id=3, pts=0:00:00.300000000, dur=0:00:00.100000000
-buffer: content-id=4, pts=0:00:00.400000000, dur=0:00:00.100000000
-buffer: content-id=5, pts=0:00:00.500000000, dur=0:00:00.100000000
-buffer: content-id=6, pts=0:00:00.600000000, dur=0:00:00.100000000
-buffer: content-id=7, pts=0:00:00.700000000, dur=0:00:00.100000000
-buffer: content-id=8, pts=0:00:00.800000000, dur=0:00:00.100000000
-buffer: content-id=9, pts=0:00:00.900000000, dur=0:00:00.100000000
-buffer: content-id=10, pts=0:00:01.000000000, dur=0:00:00.100000000
-buffer: content-id=9, pts=0:00:01.100000000, dur=0:00:00.100000000
-buffer: content-id=8, pts=0:00:01.200000000, dur=0:00:00.100000000
-buffer: content-id=7, pts=0:00:01.300000000, dur=0:00:00.100000000
-buffer: content-id=6, pts=0:00:01.400000000, dur=0:00:00.100000000
-buffer: content-id=5, pts=0:00:01.500000000, dur=0:00:00.100000000
-buffer: content-id=4, pts=0:00:01.600000000, dur=0:00:00.100000000
-buffer: content-id=3, pts=0:00:01.700000000, dur=0:00:00.100000000
-buffer: content-id=2, pts=0:00:01.800000000, dur=0:00:00.100000000
-buffer: content-id=1, pts=0:00:01.900000000, dur=0:00:00.100000000
+buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=1, pts=0:00:00.100000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=2, pts=0:00:00.200000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=3, pts=0:00:00.300000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=4, pts=0:00:00.400000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=5, pts=0:00:00.500000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=6, pts=0:00:00.600000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=7, pts=0:00:00.700000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=8, pts=0:00:00.800000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=9, pts=0:00:00.900000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=10, pts=0:00:01.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=9, pts=0:00:01.100000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=8, pts=0:00:01.200000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=7, pts=0:00:01.300000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=6, pts=0:00:01.400000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=5, pts=0:00:01.500000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=4, pts=0:00:01.600000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=3, pts=0:00:01.700000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=2, pts=0:00:01.800000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: content-id=1, pts=0:00:01.900000000, dur=0:00:00.100000000, meta=GstVideoMeta
event segment: format=TIME, start=0:00:02.000000000, offset=0:00:00.000000000, stop=0:00:02.000000001, flags=0x01, time=0:00:02.000000000, base=0:00:02.000000000, position=none
-buffer: content-id=11, pts=0:00:02.000000000, dur=0:00:00.000000001
+buffer: content-id=11, pts=0:00:02.000000000, dur=0:00:00.000000001, meta=GstVideoMeta
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:01.000000000, offset=0:00:00.000000000, stop=0:00:02.000000000, flags=0x01, time=0:00:01.000000000, base=0:00:00.000000000, position=none
-buffer: content-id=10, pts=0:00:01.000000000, dur=0:00:00.100000000
+buffer: content-id=12, pts=0:00:01.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:01.000000000, offset=0:00:00.000000000, stop=0:00:03.000000000, flags=0x01, time=0:00:01.000000000, base=0:00:00.000000000, position=none
-buffer: content-id=0, pts=0:00:01.000000000, dur=0:00:00.100000000
+buffer: content-id=0, pts=0:00:01.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE;
-event caps: video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-site=(string)jpeg, colorimetry=(string)bt601;
+event caps: video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)30/1, format=(string)I420, chroma-site=(string)jpeg, colorimetry=(string)bt601;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.100000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000
-buffer: checksum=d2d49287a7d0ddd7b5fadbb60c3220623119fea8, pts=0:00:00.000000000, dur=0:00:00.033333333
-buffer: checksum=d2d49287a7d0ddd7b5fadbb60c3220623119fea8, pts=0:00:00.033333333, dur=0:00:00.033333334
-buffer: checksum=d2d49287a7d0ddd7b5fadbb60c3220623119fea8, pts=0:00:00.066666667, dur=0:00:00.033333333
+buffer: checksum=d2d49287a7d0ddd7b5fadbb60c3220623119fea8, pts=0:00:00.000000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: checksum=d2d49287a7d0ddd7b5fadbb60c3220623119fea8, pts=0:00:00.033333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: checksum=d2d49287a7d0ddd7b5fadbb60c3220623119fea8, pts=0:00:00.066666667, dur=0:00:00.033333333, meta=GstVideoMeta
event segment: format=TIME, start=0:00:00.100000000, offset=0:00:00.000000000, stop=0:00:00.100000001, flags=0x01, time=0:00:00.100000000, base=0:00:00.100000000
-buffer: checksum=b4a126ab26f314a74ef860a9af457327a28d680b, pts=0:00:00.100000000, dur=0:00:00.000000001
+buffer: checksum=b4a126ab26f314a74ef860a9af457327a28d680b, pts=0:00:00.100000000, dur=0:00:00.000000001, meta=GstVideoMeta
event eos: (no structure)
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE;
-event caps: video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, framerate=(fraction)10/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709;
+event caps: video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)10/1, format=(string)I420, chroma-site=(string)mpeg2, colorimetry=(string)bt709;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=none
-buffer: pts=0:00:00.000000000, dur=0:00:00.100000000
+buffer: pts=0:00:00.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.500000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=none
-buffer: pts=0:00:00.000000000, dur=0:00:00.100000000
+buffer: pts=0:00:00.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.500000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=none
-buffer: pts=0:00:00.000000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.100000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.200000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.300000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.400000000, dur=0:00:00.100000000
+buffer: pts=0:00:00.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.100000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.200000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.300000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.400000000, dur=0:00:00.100000000, meta=GstVideoMeta
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.500000000, offset=0:00:00.000000000, stop=0:00:01.000000000, flags=0x01, time=0:00:00.500000000, base=0:00:00.000000000, position=none
-buffer: pts=0:00:00.500000000, dur=0:00:00.100000000
+buffer: pts=0:00:00.500000000, dur=0:00:00.100000000, meta=GstVideoMeta
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.500000000, offset=0:00:00.000000000, stop=0:00:01.000000000, flags=0x01, time=0:00:00.500000000, base=0:00:00.000000000, position=none
-buffer: pts=0:00:00.500000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.600000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.700000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.800000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.900000000, dur=0:00:00.100000000
+buffer: pts=0:00:00.500000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.600000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.700000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.800000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.900000000, dur=0:00:00.100000000, meta=GstVideoMeta
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:01.000000000, offset=0:00:00.000000000, stop=0:00:02.000000000, flags=0x01, time=0:00:01.000000000, base=0:00:00.000000000, position=none
-buffer: pts=0:00:01.000000000, dur=0:00:00.100000000
+buffer: pts=0:00:01.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:01.000000000, offset=0:00:00.000000000, stop=0:00:01.500000000, flags=0x01, time=0:00:01.000000000, base=0:00:00.000000000, position=none
-buffer: pts=0:00:01.000000000, dur=0:00:00.100000000
-buffer: pts=0:00:01.100000000, dur=0:00:00.100000000
-buffer: pts=0:00:01.200000000, dur=0:00:00.100000000
-buffer: pts=0:00:01.300000000, dur=0:00:00.100000000
-buffer: pts=0:00:01.400000000, dur=0:00:00.100000000
+buffer: pts=0:00:01.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:01.100000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:01.200000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:01.300000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:01.400000000, dur=0:00:00.100000000, meta=GstVideoMeta
event segment: format=TIME, start=0:00:01.500000000, offset=0:00:00.000000000, stop=0:00:01.500000001, flags=0x01, time=0:00:01.500000000, base=0:00:00.500000000, position=none
-buffer: pts=0:00:01.500000000, dur=0:00:00.000000001
+buffer: pts=0:00:01.500000000, dur=0:00:00.000000001, meta=GstVideoMeta
event eos: (no structure)
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE;
-event caps: video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, framerate=(fraction)10/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709;
+event caps: video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)10/1, format=(string)I420, chroma-site=(string)mpeg2, colorimetry=(string)bt709;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=none
-buffer: pts=0:00:00.000000000, dur=0:00:00.100000000
+buffer: pts=0:00:00.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.500000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=none
-buffer: pts=0:00:00.000000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.100000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.200000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.300000000, dur=0:00:00.100000000
-buffer: pts=0:00:00.400000000, dur=0:00:00.100000000
+buffer: pts=0:00:00.000000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.100000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.200000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.300000000, dur=0:00:00.100000000, meta=GstVideoMeta
+buffer: pts=0:00:00.400000000, dur=0:00:00.100000000, meta=GstVideoMeta
event eos: (no structure)
event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE;
-event caps: video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, framerate=(fraction)30/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709;
+event caps: video/x-raw, width=(int)1280, height=(int)720, framerate=(fraction)30/1, format=(string)I420, chroma-site=(string)mpeg2, colorimetry=(string)bt709;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000
-buffer: pts=0:00:00.000000000, dur=0:00:00.033333333
+buffer: pts=0:00:00.000000000, dur=0:00:00.033333333, meta=GstVideoMeta
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.500000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000
-buffer: pts=0:00:00.000000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.033333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.066666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.100000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.133333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.166666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.200000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.233333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.266666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.300000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.333333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.366666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.400000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.433333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.466666667, dur=0:00:00.033333333
+buffer: pts=0:00:00.000000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.033333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.066666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.100000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.133333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.166666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.200000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.233333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.266666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.300000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.333333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.366666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.400000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.433333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.466666667, dur=0:00:00.033333333, meta=GstVideoMeta
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:00.500000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000
-buffer: pts=0:00:00.000000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.033333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.066666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.100000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.133333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.166666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.200000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.233333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.266666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.300000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.333333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.366666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.400000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.433333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.466666667, dur=0:00:00.033333333
+buffer: pts=0:00:00.000000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.033333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.066666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.100000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.133333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.166666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.200000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.233333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.266666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.300000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.333333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.366666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.400000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.433333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.466666667, dur=0:00:00.033333333, meta=GstVideoMeta
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000
-buffer: pts=0:00:00.000000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.033333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.066666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.100000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.133333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.166666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.200000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.233333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.266666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.300000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.333333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.366666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.400000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.433333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.466666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.500000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.533333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.566666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.600000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.633333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.666666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.700000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.733333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.766666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.800000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.833333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.866666667, dur=0:00:00.033333333
-buffer: pts=0:00:00.900000000, dur=0:00:00.033333333
-buffer: pts=0:00:00.933333333, dur=0:00:00.033333334
-buffer: pts=0:00:00.966666667, dur=0:00:00.033333333
+buffer: pts=0:00:00.000000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.033333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.066666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.100000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.133333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.166666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.200000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.233333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.266666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.300000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.333333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.366666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.400000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.433333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.466666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.500000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.533333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.566666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.600000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.633333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.666666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.700000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.733333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.766666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.800000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.833333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.866666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.900000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:00.933333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:00.966666667, dur=0:00:00.033333333, meta=GstVideoMeta
event eos: (no structure)
event flush-start: (no structure)
event flush-stop: GstEventFlushStop, reset-time=(boolean)true;
event segment: format=TIME, start=0:00:01.000000000, offset=0:00:00.000000000, stop=0:00:01.500000000, flags=0x01, time=0:00:01.000000000, base=0:00:00.000000000
-buffer: pts=0:00:01.000000000, dur=0:00:00.033333333
-buffer: pts=0:00:01.033333333, dur=0:00:00.033333334
-buffer: pts=0:00:01.066666667, dur=0:00:00.033333333
-buffer: pts=0:00:01.100000000, dur=0:00:00.033333333
-buffer: pts=0:00:01.133333333, dur=0:00:00.033333334
-buffer: pts=0:00:01.166666667, dur=0:00:00.033333333
-buffer: pts=0:00:01.200000000, dur=0:00:00.033333333
-buffer: pts=0:00:01.233333333, dur=0:00:00.033333334
-buffer: pts=0:00:01.266666667, dur=0:00:00.033333333
-buffer: pts=0:00:01.300000000, dur=0:00:00.033333333
-buffer: pts=0:00:01.333333333, dur=0:00:00.033333334
-buffer: pts=0:00:01.366666667, dur=0:00:00.033333333
-buffer: pts=0:00:01.400000000, dur=0:00:00.033333333
-buffer: pts=0:00:01.433333333, dur=0:00:00.033333334
-buffer: pts=0:00:01.466666667, dur=0:00:00.033333333
+buffer: pts=0:00:01.000000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:01.033333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:01.066666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:01.100000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:01.133333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:01.166666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:01.200000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:01.233333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:01.266666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:01.300000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:01.333333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:01.366666667, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:01.400000000, dur=0:00:00.033333333, meta=GstVideoMeta
+buffer: pts=0:00:01.433333333, dur=0:00:00.033333334, meta=GstVideoMeta
+buffer: pts=0:00:01.466666667, dur=0:00:00.033333333, meta=GstVideoMeta
event eos: (no structure)