GstCaps * outcaps);
static GstFlowReturn gst_gamma_transform_ip (GstBaseTransform * transform,
GstBuffer * buf);
+static void gst_gamma_before_transform (GstBaseTransform * transform,
+ GstBuffer * buf);
static void gst_gamma_calculate_tables (GstGamma * gamma);
trans_class->set_caps = GST_DEBUG_FUNCPTR (gst_gamma_set_caps);
trans_class->transform_ip = GST_DEBUG_FUNCPTR (gst_gamma_transform_ip);
+ trans_class->before_transform =
+ GST_DEBUG_FUNCPTR (gst_gamma_before_transform);
}
static void
return FALSE;
}
-static GstFlowReturn
-gst_gamma_transform_ip (GstBaseTransform * base, GstBuffer * outbuf)
+static void
+gst_gamma_before_transform (GstBaseTransform * base, GstBuffer * outbuf)
{
GstGamma *gamma = GST_GAMMA (base);
- guint8 *data;
- guint size;
GstClockTime timestamp, stream_time;
- if (!gamma->process)
- goto not_negotiated;
-
timestamp = GST_BUFFER_TIMESTAMP (outbuf);
stream_time =
gst_segment_to_stream_time (&base->segment, GST_FORMAT_TIME, timestamp);
if (GST_CLOCK_TIME_IS_VALID (stream_time))
gst_object_sync_values (G_OBJECT (gamma), stream_time);
+}
+
+static GstFlowReturn
+gst_gamma_transform_ip (GstBaseTransform * base, GstBuffer * outbuf)
+{
+ GstGamma *gamma = GST_GAMMA (base);
+ guint8 *data;
+ guint size;
+
+ if (!gamma->process)
+ goto not_negotiated;
if (base->passthrough)
goto done;