summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-02-23 18:19:18 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-02-23 18:19:18 +0200
commit20586e9f2d48e8bac3178172eec184b80cfca91e (patch)
tree97d5c274b9df34f5862443db8bbe0f6495464fa0
parent4930a1f46115096a23937101787b3e5e667c81d0 (diff)
downloadgst-libav-20586e9f2d48e8bac3178172eec184b80cfca91e.tar.gz
avdeinterlace: Don't assume that get_current_caps() returns non-NULL caps after has_current_caps()
Remove calls to gst_pad_has_current_caps() which then go on to call gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just use gst_pad_get_current_caps() and check for NULL. https://bugzilla.gnome.org/show_bug.cgi?id=759539
-rw-r--r--ext/libav/gstavdeinterlace.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/ext/libav/gstavdeinterlace.c b/ext/libav/gstavdeinterlace.c
index 1ffcb07..e3cfa8d 100644
--- a/ext/libav/gstavdeinterlace.c
+++ b/ext/libav/gstavdeinterlace.c
@@ -404,16 +404,15 @@ gst_ffmpegdeinterlace_chain (GstPad * pad, GstObject * parent,
GST_OBJECT_LOCK (deinterlace);
if (deinterlace->reconfigure) {
+ GstCaps *caps;
+
if ((gint) deinterlace->new_mode != -1)
deinterlace->mode = deinterlace->new_mode;
deinterlace->new_mode = -1;
deinterlace->reconfigure = FALSE;
GST_OBJECT_UNLOCK (deinterlace);
- if (gst_pad_has_current_caps (deinterlace->srcpad)) {
- GstCaps *caps;
-
- caps = gst_pad_get_current_caps (deinterlace->sinkpad);
+ if ((caps = gst_pad_get_current_caps (deinterlace->srcpad))) {
gst_ffmpegdeinterlace_sink_setcaps (deinterlace->sinkpad, caps);
gst_caps_unref (caps);
}