Zebediah Figura (@zfigura) commented about dlls/winegstreamer/wg_muxer.c:
+ { + link_ok = !link_src_to_sink(stream->my_src, muxer_sink_pad); + } + gst_object_unref(muxer_sink_pad); + if (!link_ok) + return false; + + /* Active pad and push events to prepare for streaming. */ + sprintf(buffer, "wg_muxer_stream_src_%u", stream->id); + gst_segment_init(&stream->segment, GST_FORMAT_BYTES); + if (!gst_pad_set_active(stream->my_src, 1)) + return false; + if (!push_event(stream->my_src, gst_event_new_stream_start(buffer)) + || !push_event(stream->my_src, gst_event_new_caps(stream->my_src_caps)) + || !push_event(stream->my_src, gst_event_new_segment(&stream->segment))) + return false; I don't know if this code was tested, but I'm under the impression that this part needs to be done *after* setting the bin to paused, or these events will be dropped.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3810#note_47816