summaryrefslogtreecommitdiffstats
path: root/gst/effectv/gstaging.c
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-06-15 17:20:21 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-06-15 21:13:32 +0200
commitd1ad31b9b35a0b705fe830df7fab666f4fbe65a8 (patch)
treecbe12deb23887cd407b1438ef889338410b2d42b /gst/effectv/gstaging.c
parent45ef8efc6b181d7fb092f2f970ee1ed6ef20c2db (diff)
agingtv: Actually use GstController for syncing the properties to timestamps
Diffstat (limited to 'gst/effectv/gstaging.c')
-rw-r--r--gst/effectv/gstaging.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/gst/effectv/gstaging.c b/gst/effectv/gstaging.c
index 8ff4dc11..829fa3f0 100644
--- a/gst/effectv/gstaging.c
+++ b/gst/effectv/gstaging.c
@@ -28,12 +28,15 @@
#include "config.h"
#endif
-#include <gst/video/gstvideofilter.h>
-
#include <string.h>
#include <math.h>
+#include <gst/gst.h>
+
#include <gst/video/video.h>
+#include <gst/video/gstvideofilter.h>
+
+#include <gst/controller/gstcontroller.h>
#define GST_TYPE_AGINGTV \
(gst_agingtv_get_type())
@@ -387,6 +390,17 @@ gst_agingtv_transform (GstBaseTransform * trans, GstBuffer * in,
guint32 *dest = (guint32 *) GST_BUFFER_DATA (out);
gint area_scale = width * height / 64 / 480;
GstFlowReturn ret = GST_FLOW_OK;
+ GstClockTime timestamp, stream_time;
+
+ timestamp = GST_BUFFER_TIMESTAMP (in);
+ stream_time =
+ gst_segment_to_stream_time (&trans->segment, GST_FORMAT_TIME, timestamp);
+
+ GST_DEBUG_OBJECT (agingtv, "sync to %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (timestamp));
+
+ if (GST_CLOCK_TIME_IS_VALID (stream_time))
+ gst_object_sync_values (G_OBJECT (agingtv), stream_time);
if (area_scale <= 0)
area_scale = 1;