summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2010-04-11 13:14:30 -0700
committerDavid Schleef <ds@schleef.org>2010-04-11 13:15:32 -0700
commit289f69eb84148d3c92665c76d8730de6fd7cca3d (patch)
tree75a67ab31343bfedb365c7febe8baed36226632f
parent49300da948fc862a3ef56421df28bbdaaa04f3e9 (diff)
deinterlace: Only check interlaced flag in sink caps
Fixes #615460.
-rw-r--r--gst/deinterlace/gstdeinterlace.c6
-rw-r--r--gst/deinterlace/gstdeinterlace.h1
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