static GstCaps * gst_vaapidecode_sink_getcaps (GstVideoDecoder * vdec, GstCaps * filter) { GstVaapiDecode *const decode = GST_VAAPIDECODE (vdec); GstCaps *result; if (decode->allowed_sinkpad_caps) goto bail; /* if we haven't a display yet, return our pad's template caps */ if (!GST_VAAPI_PLUGIN_BASE_DISPLAY (decode)) goto bail; /* if the allowed caps calculation fails, return an empty caps, so * the auto-plug can try other decoder */ if (!gst_vaapidecode_ensure_allowed_sinkpad_caps (decode)) return gst_caps_new_empty (); bail: result = gst_video_decoder_proxy_getcaps (vdec, decode->allowed_sinkpad_caps, filter); GST_DEBUG_OBJECT (decode, "Returning sink caps %" GST_PTR_FORMAT, result); return result; }
static GstCaps * gst_v4l2_video_dec_sink_getcaps (GstVideoDecoder * decoder, GstCaps * filter) { GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder); GstCaps *result; result = gst_video_decoder_proxy_getcaps (decoder, self->probed_sinkcaps, filter); GST_DEBUG_OBJECT (self, "Returning sink caps %" GST_PTR_FORMAT, result); return result; }