GST_PAD_REQUEST,
GST_STATIC_CAPS_ANY);
+static const gboolean passthrough = TRUE;
+
GST_BOILERPLATE (GstStreamSynchronizer, gst_stream_synchronizer,
GstElement, GST_TYPE_ELEMENT);
GstPad *opad;
gboolean ret = FALSE;
+ if (passthrough)
+ goto skip_adjustments;
+
GST_LOG_OBJECT (pad, "Handling event %s: %" GST_PTR_FORMAT,
GST_EVENT_TYPE_NAME (event), event->structure);
break;
}
+skip_adjustments:
+
opad = gst_stream_get_other_pad_from_pad (pad);
if (opad) {
ret = gst_pad_push_event (opad, event);
GstPad *opad;
gboolean ret = FALSE;
+ if (passthrough)
+ goto skip_adjustments;
+
GST_LOG_OBJECT (pad, "Handling event %s: %" GST_PTR_FORMAT,
GST_EVENT_TYPE_NAME (event), event->structure);
break;
}
+skip_adjustments:
+
opad = gst_stream_get_other_pad_from_pad (pad);
if (opad) {
ret = gst_pad_push_event (opad, event);
GstClockTime timestamp = GST_CLOCK_TIME_NONE;
GstClockTime timestamp_end = GST_CLOCK_TIME_NONE;
+ if (passthrough) {
+ opad = gst_stream_get_other_pad_from_pad (pad);
+ if (opad) {
+ ret = gst_pad_push (opad, buffer);
+ gst_object_unref (opad);
+ }
+ goto done;
+ }
+
GST_LOG_OBJECT (pad, "Handling buffer %p: size=%u, timestamp=%"
GST_TIME_FORMAT " duration=%" GST_TIME_FORMAT
" offset=%" G_GUINT64_FORMAT " offset_end=%" G_GUINT64_FORMAT,
GST_STREAM_SYNCHRONIZER_UNLOCK (self);
}
+done:
+
gst_object_unref (self);
return ret;