summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Santos <thiagoss@osg.samsung.com>2015-08-15 12:55:49 -0300
committerThiago Santos <thiagoss@osg.samsung.com>2015-08-15 13:51:16 -0300
commita5ed877783e67bb1d4bc34ac54e2770137e1ad8a (patch)
tree23ad9e9a19fe19f59c60d098ceafa4217eda5fd6
parent51dfa3b135978bf523348209b0fdf9c21e252243 (diff)
downloadgstreamer-plugins-bad-a5ed877783e67bb1d4bc34ac54e2770137e1ad8a.tar.gz
videodecoders: use default pad accept-caps handling
Avoids useless check of downstream caps when handling an accept-caps query Elements: daaladec, libde265dec, openjpegdec, rsvgdec, schrodec, webpdec, pnmdec, vmncdec, openexrdec
-rw-r--r--ext/daala/gstdaaladec.c3
-rw-r--r--ext/libde265/libde265-dec.c3
-rw-r--r--ext/openexr/gstopenexrdec.cpp3
-rw-r--r--ext/openjpeg/gstopenjpegdec.c3
-rw-r--r--ext/rsvg/gstrsvgdec.c3
-rw-r--r--ext/schroedinger/gstschrodec.c3
-rw-r--r--ext/webp/gstwebpdec.c3
-rw-r--r--gst/pnm/gstpnmdec.c4
-rw-r--r--gst/vmnc/vmncdec.c3
9 files changed, 28 insertions, 0 deletions
diff --git a/ext/daala/gstdaaladec.c b/ext/daala/gstdaaladec.c
index 74302bf39..0cf4f63da 100644
--- a/ext/daala/gstdaaladec.c
+++ b/ext/daala/gstdaaladec.c
@@ -131,6 +131,9 @@ gst_daala_dec_init (GstDaalaDec * dec)
* but is not marked that way so data gets parsed and keyframes marked */
gst_video_decoder_set_packetized (GST_VIDEO_DECODER (dec), FALSE);
gst_video_decoder_set_needs_format (GST_VIDEO_DECODER (dec), TRUE);
+ gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+ (dec), TRUE);
+ GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (dec));
}
static void
diff --git a/ext/libde265/libde265-dec.c b/ext/libde265/libde265-dec.c
index 9ec128e53..7cba37a16 100644
--- a/ext/libde265/libde265-dec.c
+++ b/ext/libde265/libde265-dec.c
@@ -200,6 +200,9 @@ gst_libde265_dec_init (GstLibde265Dec * dec)
dec->length_size = 4;
_gst_libde265_dec_reset_decoder (dec);
gst_video_decoder_set_packetized (GST_VIDEO_DECODER (dec), TRUE);
+ gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+ (dec), TRUE);
+ GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (dec));
}
static inline void
diff --git a/ext/openexr/gstopenexrdec.cpp b/ext/openexr/gstopenexrdec.cpp
index d2d1dffce..a334b0abc 100644
--- a/ext/openexr/gstopenexrdec.cpp
+++ b/ext/openexr/gstopenexrdec.cpp
@@ -151,6 +151,9 @@ gst_openexr_dec_init (GstOpenEXRDec * self)
GstVideoDecoder *decoder = (GstVideoDecoder *) self;
gst_video_decoder_set_packetized (decoder, FALSE);
+ gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+ (self), TRUE);
+ GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (self));
}
static gboolean
diff --git a/ext/openjpeg/gstopenjpegdec.c b/ext/openjpeg/gstopenjpegdec.c
index 363da6a81..53dc5f6a2 100644
--- a/ext/openjpeg/gstopenjpegdec.c
+++ b/ext/openjpeg/gstopenjpegdec.c
@@ -109,6 +109,9 @@ gst_openjpeg_dec_init (GstOpenJPEGDec * self)
gst_video_decoder_set_packetized (decoder, TRUE);
gst_video_decoder_set_needs_format (decoder, TRUE);
+ gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+ (self), TRUE);
+ GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (self));
opj_set_default_decoder_parameters (&self->params);
#ifdef HAVE_OPENJPEG_1
self->params.cp_limit_decoding = NO_LIMITATION;
diff --git a/ext/rsvg/gstrsvgdec.c b/ext/rsvg/gstrsvgdec.c
index c29b947ca..17ebcb118 100644
--- a/ext/rsvg/gstrsvgdec.c
+++ b/ext/rsvg/gstrsvgdec.c
@@ -104,6 +104,9 @@ gst_rsvg_dec_init (GstRsvgDec * rsvg)
{
GstVideoDecoder *decoder = GST_VIDEO_DECODER (rsvg);
gst_video_decoder_set_packetized (decoder, FALSE);
+ gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+ (rsvg), TRUE);
+ GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (rsvg));
}
static void
diff --git a/ext/schroedinger/gstschrodec.c b/ext/schroedinger/gstschrodec.c
index 15065af1e..6ac6ae9dc 100644
--- a/ext/schroedinger/gstschrodec.c
+++ b/ext/schroedinger/gstschrodec.c
@@ -155,6 +155,9 @@ gst_schro_dec_init (GstSchroDec * schro_dec)
schro_dec->decoder = schro_decoder_new ();
gst_video_decoder_set_packetized (GST_VIDEO_DECODER (schro_dec), FALSE);
+ gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+ (schro_dec), TRUE);
+ GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (schro_dec));
schro_dec->header_read = FALSE;
}
diff --git a/ext/webp/gstwebpdec.c b/ext/webp/gstwebpdec.c
index 585840d5f..6877cd457 100644
--- a/ext/webp/gstwebpdec.c
+++ b/ext/webp/gstwebpdec.c
@@ -139,6 +139,9 @@ gst_webp_dec_init (GstWebPDec * dec)
dec->bypass_filtering = FALSE;
dec->no_fancy_upsampling = FALSE;
dec->use_threads = FALSE;
+ gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+ (dec), TRUE);
+ GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (dec));
}
static gboolean
diff --git a/gst/pnm/gstpnmdec.c b/gst/pnm/gstpnmdec.c
index b4bf3d2e8..6963e5e60 100644
--- a/gst/pnm/gstpnmdec.c
+++ b/gst/pnm/gstpnmdec.c
@@ -108,6 +108,10 @@ gst_pnmdec_init (GstPnmdec * s)
/* Initialize decoder */
s->buf = NULL;
gst_pnmdec_flush (s);
+
+ gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+ (s), TRUE);
+ GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (s));
}
static GstFlowReturn
diff --git a/gst/vmnc/vmncdec.c b/gst/vmnc/vmncdec.c
index 54a42ed08..34e63c7bc 100644
--- a/gst/vmnc/vmncdec.c
+++ b/gst/vmnc/vmncdec.c
@@ -105,6 +105,9 @@ gst_vmnc_dec_class_init (GstVMncDecClass * klass)
static void
gst_vmnc_dec_init (GstVMncDec * dec)
{
+ gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+ (dec), TRUE);
+ GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (dec));
}
static gboolean