summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndoni Morales Alastruey <amorales@flumotion.com>2010-06-25 16:26:00 +0200
committerEdward Hervey <bilboed@bilboed.com>2010-06-25 17:26:56 +0200
commit7f12d83a3942afaf5da05df397f5620abdcdd268 (patch)
tree0cb3034be79a2183a9b57a892b60dfbb89024b85
parent9b3c3305f392dbbadc985d303f29f0539de2ffae (diff)
ffdeinterlace: Set "interlaced=false" in the source pad's caps
https://bugzilla.gnome.org/show_bug.cgi?id=622736
-rw-r--r--ext/ffmpeg/gstffmpegdeinterlace.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/ext/ffmpeg/gstffmpegdeinterlace.c b/ext/ffmpeg/gstffmpegdeinterlace.c
index caaf6ca..119d2f5 100644
--- a/ext/ffmpeg/gstffmpegdeinterlace.c
+++ b/ext/ffmpeg/gstffmpegdeinterlace.c
@@ -112,6 +112,9 @@ gst_ffmpegdeinterlace_sink_setcaps (GstPad * pad, GstCaps * caps)
GST_FFMPEGDEINTERLACE (gst_pad_get_parent (pad));
GstStructure *structure = gst_caps_get_structure (caps, 0);
AVCodecContext *ctx;
+ GValue interlaced = { 0 };
+ GstCaps *srcCaps;
+ GstFlowReturn ret;
if (!gst_structure_get_int (structure, "width", &deinterlace->width))
return FALSE;
@@ -136,7 +139,15 @@ gst_ffmpegdeinterlace_sink_setcaps (GstPad * pad, GstCaps * caps)
avpicture_get_size (deinterlace->pixfmt, deinterlace->width,
deinterlace->height);
- return gst_pad_set_caps (deinterlace->srcpad, caps);
+ srcCaps = gst_caps_copy (caps);
+ g_value_init (&interlaced, G_TYPE_BOOLEAN);
+ g_value_set_boolean (&interlaced, FALSE);
+ gst_caps_set_value (srcCaps, "interlaced", &interlaced);
+ g_value_unset (&interlaced);
+
+ ret = gst_pad_set_caps (deinterlace->srcpad, srcCaps);
+ gst_caps_unref (srcCaps);
+ return ret;
}
static void