Rémi Bernon (@rbernon) commented about dlls/winegstreamer/media_sink.c:
iface, stream_sink_id, media_type, stream_sink);
+ if (!FAILED(IMFMediaType_GetMajorType(media_type, &major_type)) && + IsEqualGUID(&major_type, &MFMediaType_Audio) && + !FAILED(IMFMediaType_GetGUID(media_type, &MF_MT_SUBTYPE, &subtype)) && + (IsEqualGUID(&subtype, &MFAudioFormat_AAC) || IsEqualGUID(&subtype, &MFAudioFormat_RAW_AAC)) && + FAILED(IMFMediaType_GetItem(media_type, &MF_MT_USER_DATA, NULL))) + { + if (FAILED(hr = MFCreateMediaType(&type_copy)) || + FAILED(hr = IMFMediaType_CopyAllItems(media_type, (IMFAttributes*)type_copy))) + goto done; + hr = mf_media_type_add_aac_user_data(type_copy); + if (FAILED(hr)) + goto done; + media_type = type_copy; + }
Doesn't seem right to have to do that here. Please 1) a test to check that not passing MF_MT_USER_DATA works, and 2) probably this done elsewhere, for instance fallback to individual AAC attributes in `mf_media_type_to_wg_format_audio_mpeg4` when MF_MT_USER_DATA is missing. (Also `!FAILED` should be `SUCCEEDED`) -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5159#note_62624