summaryrefslogtreecommitdiff
path: root/gst/videobox
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2010-04-18 15:02:42 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2010-04-29 19:28:22 +0200
commit90058bc0762409622e866fc0c053b707b14dc160 (patch)
treeaaabdb4bf4e5ab4070e16da751d9536dbd31ef5b /gst/videobox
parent9fa14f8c37501c189f760a96d03e64941cb6d9ba (diff)
downloadgstreamer-plugins-good-90058bc0762409622e866fc0c053b707b14dc160.tar.gz
videobox: Sync properties to the controller in before_transform
Diffstat (limited to 'gst/videobox')
-rw-r--r--gst/videobox/gstvideobox.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/gst/videobox/gstvideobox.c b/gst/videobox/gstvideobox.c
index 7f2f28429..484c787e8 100644
--- a/gst/videobox/gstvideobox.c
+++ b/gst/videobox/gstvideobox.c
@@ -1877,6 +1877,8 @@ static gboolean gst_video_box_get_unit_size (GstBaseTransform * trans,
GstCaps * caps, guint * size);
static GstFlowReturn gst_video_box_transform (GstBaseTransform * trans,
GstBuffer * in, GstBuffer * out);
+static void gst_video_box_before_transform (GstBaseTransform * trans,
+ GstBuffer * in);
static void gst_video_box_fixate_caps (GstBaseTransform * trans,
GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
@@ -1987,6 +1989,8 @@ gst_video_box_class_init (GstVideoBoxClass * klass)
"Auto crop", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
trans_class->transform = GST_DEBUG_FUNCPTR (gst_video_box_transform);
+ trans_class->before_transform =
+ GST_DEBUG_FUNCPTR (gst_video_box_before_transform);
trans_class->transform_caps =
GST_DEBUG_FUNCPTR (gst_video_box_transform_caps);
trans_class->set_caps = GST_DEBUG_FUNCPTR (gst_video_box_set_caps);
@@ -2655,13 +2659,10 @@ gst_video_box_process (GstVideoBox * video_box, const guint8 * src,
GST_LOG_OBJECT (video_box, "image created");
}
-static GstFlowReturn
-gst_video_box_transform (GstBaseTransform * trans, GstBuffer * in,
- GstBuffer * out)
+static void
+gst_video_box_before_transform (GstBaseTransform * trans, GstBuffer * in)
{
GstVideoBox *video_box = GST_VIDEO_BOX (trans);
- const guint8 *indata;
- guint8 *outdata;
GstClockTime timestamp, stream_time;
timestamp = GST_BUFFER_TIMESTAMP (in);
@@ -2673,6 +2674,15 @@ gst_video_box_transform (GstBaseTransform * trans, GstBuffer * in,
if (GST_CLOCK_TIME_IS_VALID (stream_time))
gst_object_sync_values (G_OBJECT (video_box), stream_time);
+}
+
+static GstFlowReturn
+gst_video_box_transform (GstBaseTransform * trans, GstBuffer * in,
+ GstBuffer * out)
+{
+ GstVideoBox *video_box = GST_VIDEO_BOX (trans);
+ const guint8 *indata;
+ guint8 *outdata;
indata = GST_BUFFER_DATA (in);
outdata = GST_BUFFER_DATA (out);