From a6a125e4bafdfcd39b748bfff962a64caea82155 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 13 May 2010 12:16:38 +0200 Subject: [PATCH] videoscale: Use passthrough mode if width and height are not changed It doesn't matter if the PAR changes or not, processing of every pixel is only necessary when the width or height changes. --- gst/videoscale/gstvideoscale.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gst/videoscale/gstvideoscale.c b/gst/videoscale/gstvideoscale.c index 06ea8b1..5ae058d 100644 --- a/gst/videoscale/gstvideoscale.c +++ b/gst/videoscale/gstvideoscale.c @@ -264,8 +264,6 @@ gst_video_scale_class_init (GstVideoScaleClass * klass) trans_class->transform = GST_DEBUG_FUNCPTR (gst_video_scale_transform); trans_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_video_scale_fixate_caps); trans_class->src_event = GST_DEBUG_FUNCPTR (gst_video_scale_src_event); - - trans_class->passthrough_on_same_caps = TRUE; } static void @@ -545,6 +543,10 @@ gst_video_scale_set_caps (GstBaseTransform * trans, GstCaps * in, GstCaps * out) if (to_dar_n != from_dar_n || to_dar_d != from_dar_d) GST_WARNING_OBJECT (videoscale, "Can't keep DAR!"); + gst_base_transform_set_passthrough (trans, + (videoscale->from_width == videoscale->to_width + && videoscale->from_height == videoscale->to_height)); + GST_DEBUG_OBJECT (videoscale, "from=%dx%d (par=%d/%d dar=%d/%d), size %d " "-> to=%dx%d (par=%d/%d dar=%d/%d), size %d", videoscale->from_width, videoscale->from_height, from_par_n, from_par_d, -- 2.7.4