static GstCaps * gst_vaapidecode_get_caps(GstPad *pad) { GstVaapiDecode * const decode = GST_VAAPIDECODE(GST_OBJECT_PARENT(pad)); if (!decode->is_ready) return gst_static_pad_template_get_caps(&gst_vaapidecode_sink_factory); if (!gst_vaapidecode_ensure_allowed_caps(decode)) return gst_caps_new_empty(); return gst_caps_ref(decode->allowed_caps); }
static GstCaps * gst_vaapidecode_get_caps (GstPad * pad) { GstVaapiDecode *const decode = GST_VAAPIDECODE (GST_OBJECT_PARENT (pad)); if (decode->allowed_caps) goto bail; /* if we haven't a display yet, return our pad's template caps */ if (!GST_VAAPI_PLUGIN_BASE_DISPLAY (decode)) return gst_pad_get_pad_template_caps (pad); /* if the allowed caps calculation fails, return an empty caps, so * the auto-plug can try other decoder */ if (!gst_vaapidecode_ensure_allowed_caps (decode)) return gst_caps_new_empty (); bail: return gst_caps_ref (decode->allowed_caps); }