Rémi Bernon (@rbernon) commented about dlls/winegstreamer/wg_muxer.c:
gst_pad_set_element_private(stream->my_src, stream);
+ /* Create parser. */ + if ((stream->parser = find_element(GST_ELEMENT_FACTORY_TYPE_PARSER, GST_RANK_NONE, stream->my_src_caps, NULL))) + { + GstPad *parser_src = gst_element_get_static_pad(stream->parser, "src"); + gchar *parser_name = gst_element_get_name(stream->parser); + + gst_bin_add(GST_BIN(muxer->container), stream->parser); + stream->parser_src_caps = gst_pad_query_caps(parser_src, NULL); + GST_INFO("Create parser %s %p for stream %u %p.", + parser_name, stream->parser, stream->id, stream); + + g_free(parser_name); + gst_object_unref(parser_src); + }
I'd split the parser creation in a separate commit. Maybe you could try to link it here already, and remove it if that fails instead of waiting until the muxer has been chosen? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3810#note_49882