diff options
author | David Schleef <ds@schleef.org> | 2010-04-11 13:14:30 -0700 |
---|---|---|
committer | David Schleef <ds@schleef.org> | 2010-04-11 13:15:32 -0700 |
commit | 289f69eb84148d3c92665c76d8730de6fd7cca3d (patch) | |
tree | 75a67ab31343bfedb365c7febe8baed36226632f | |
parent | 49300da948fc862a3ef56421df28bbdaaa04f3e9 (diff) |
deinterlace: Only check interlaced flag in sink caps
Fixes #615460.
-rw-r--r-- | gst/deinterlace/gstdeinterlace.c | 6 | ||||
-rw-r--r-- | gst/deinterlace/gstdeinterlace.h | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c index 8a6d17e56..0f7af634b 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 cc60b307b..d77128f4f 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 |