Rémi Bernon (@rbernon) commented about dlls/winegstreamer/wma_decoder.c:
- type->majortype = MFMediaType_Audio;
- type->subtype = MEDIASUBTYPE_PCM;
- type->formattype = FORMAT_WaveFormatEx;
- type->bFixedSizeSamples = FALSE;
- type->bTemporalCompression = TRUE;
- type->lSampleSize = 0;
- type->cbFormat = sizeof(WAVEFORMATEX);
- type->pbFormat = CoTaskMemAlloc(type->cbFormat);
- memset(type->pbFormat, 0, type->cbFormat);
- wfx = (WAVEFORMATEX *)type->pbFormat;
- wfx->wFormatTag = WAVE_FORMAT_PCM;
- wfx->nChannels = decoder->input_format.u.audio_wma.channels;
- wfx->nSamplesPerSec = decoder->input_format.u.audio_wma.rate;
- wfx->wBitsPerSample = decoder->input_format.u.audio_wma.depth;
The tests use 32bit WMA input type (which is probably incorrect but it is accepted), and this makes us return 32bit PCM output, which is also incorrect and doesn't pass the tests (at mf/tests/transform.c:3590).
Maybe better change the tests to avoid using an arguably invalid input type and solve this issue while keeping support for more than 16bit with WMA3.