From 289f69eb84148d3c92665c76d8730de6fd7cca3d Mon Sep 17 00:00:00 2001 From: David Schleef Date: Sun, 11 Apr 2010 13:14:30 -0700 Subject: [PATCH] deinterlace: Only check interlaced flag in sink caps Fixes #615460. --- gst/deinterlace/gstdeinterlace.c | 6 +++++- gst/deinterlace/gstdeinterlace.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c index 8a6d17e..0f7af63 100644 --- a/gst/deinterlace/gstdeinterlace.c +++ b/gst/deinterlace/gstdeinterlace.c @@ -1491,7 +1491,11 @@ gst_deinterlace_setcaps (GstPad * pad, GstCaps * caps) gst_structure_get_fraction (structure, "framerate", &self->frame_rate_n, &self->frame_rate_d); res &= gst_structure_get_fourcc (structure, "format", &fourcc); - res &= gst_video_format_parse_caps_interlaced (caps, &self->interlaced); + if (pad == self->sinkpad) { + res &= gst_video_format_parse_caps_interlaced (caps, &self->interlaced); + } else { + res &= gst_video_format_parse_caps_interlaced (caps, &self->src_interlaced); + } if (!res) goto invalid_caps; diff --git a/gst/deinterlace/gstdeinterlace.h b/gst/deinterlace/gstdeinterlace.h index cc60b30..d77128f 100644 --- a/gst/deinterlace/gstdeinterlace.h +++ b/gst/deinterlace/gstdeinterlace.h @@ -213,6 +213,7 @@ struct _GstDeinterlace guint frame_size; gint frame_rate_n, frame_rate_d; gboolean interlaced; + gboolean src_interlaced; /* Number of bytes of actual data in each scanline. May be less than OverlayPitch since the overlay's scanlines might have alignment -- 2.7.4