Zebediah Figura (@zfigura) commented about dlls/winegstreamer/wg_parser.c:
+ struct_name = gst_structure_get_name(gst_sample_get_info(sample)); + if (!struct_name || strcmp(struct_name, "application/x-gst-qt-name-tag")) + continue; + if (!(buf = gst_sample_get_buffer(sample))) + continue; + if ((size = gst_buffer_get_size(buf)) < 8) + continue; + if (!gst_buffer_map(buf, &map_info, GST_MAP_READ)) + continue; + size -= 8; + if ((stream->tags[WG_PARSER_TAG_NAME] = g_malloc(size + 1))) + { + memcpy(stream->tags[WG_PARSER_TAG_NAME], map_info.data + 8, size); + stream->tags[WG_PARSER_TAG_NAME][size] = 0; + } + gst_buffer_unmap(buf, &map_info); FWIW, there's gst_buffer_extract_dup() for this.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/1542#note_17591