mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-18 15:51:11 +00:00
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.
This commit is contained in:
parent
9696af170f
commit
a6a125e4ba
1 changed files with 4 additions and 2 deletions
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue