I'm not quite sure where you're getting that,
I do believe I'm right about this. I'm getting it from: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/blob/main/subprojects/g... The decodebin source code shows: ```c analyse_new_pad() { ... for (tmps = gst_element_factory_get_static_pad_templates (factory); tmps && !dontuse; tmps = tmps->next) { GstStaticPadTemplate *st = (GstStaticPadTemplate *) tmps->data; if (st->direction != GST_PAD_SRC) continue; tcaps = gst_static_pad_template_get_caps (st); apcontinue = TRUE; /* Emit autoplug-continue to see if the caps are considered to be raw caps */ g_signal_emit (G_OBJECT (dbin), gst_decode_bin_signals[SIGNAL_AUTOPLUG_CONTINUE], 0, dpad, tcaps, &apcontinue); /* If autoplug-continue returns TRUE and the caps are not final, and * we haven't found any way to output finals yet, don't use them */ if (are_final_caps (dbin, tcaps)) found_finals = TRUE; else if (apcontinue && !found_finals) dontuse = TRUE; gst_caps_unref (tcaps); } ... } ``` It does not use get_pad_caps(), instead, it uses gst_static_pad_template_get_caps() to get caps (the `tcaps` virable), and then pass it to autoplug_continue. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2546#note_29267