diff options
Diffstat (limited to 'sys/vdpau/gstvdpaudecoder.c')
-rw-r--r-- | sys/vdpau/gstvdpaudecoder.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/vdpau/gstvdpaudecoder.c b/sys/vdpau/gstvdpaudecoder.c index 36d6eca0..36a566e0 100644 --- a/sys/vdpau/gstvdpaudecoder.c +++ b/sys/vdpau/gstvdpaudecoder.c @@ -286,6 +286,7 @@ static gboolean gst_vdpaudecoder_sink_set_caps (GstPad * pad, GstCaps * caps) { GstVdpauDecoder *dec = GST_VDPAU_DECODER (GST_OBJECT_PARENT (pad)); + GstVdpauDecoderClass *dec_class = GST_VDPAU_DECODER_GET_CLASS (dec); GstCaps *src_caps, *new_caps; GstStructure *structure; @@ -324,6 +325,9 @@ gst_vdpaudecoder_sink_set_caps (GstPad * pad, GstCaps * caps) dec->height = height; dec->format = fourcc_format; + if (dec_class->set_caps && !dec_class->set_caps (dec, caps)) + return FALSE; + return TRUE; } @@ -404,6 +408,7 @@ gst_vdpaudecoder_init (GstVdpauDecoder * dec, GstVdpauDecoderClass * klass) (GST_ELEMENT_CLASS (klass), "sink"), "sink"); gst_pad_set_setcaps_function (dec->sink, gst_vdpaudecoder_sink_set_caps); gst_element_add_pad (GST_ELEMENT (dec), dec->sink); + gst_pad_set_active (dec->sink, TRUE); } static void |