microkiri and Wagamama High Spec recently broke, most likely due to @rbernon's d05cd460.
Here's a fix. (I didn't file a bugzilla, should I?)
From: Alfred Agrell floating@muncher.se
--- dlls/winegstreamer/wma_decoder.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/dlls/winegstreamer/wma_decoder.c b/dlls/winegstreamer/wma_decoder.c index 14a48db9ae2..c141b7e26fe 100644 --- a/dlls/winegstreamer/wma_decoder.c +++ b/dlls/winegstreamer/wma_decoder.c @@ -661,8 +661,8 @@ static HRESULT WINAPI media_object_GetOutputType(IMediaObject *iface, DWORD inde DMO_MEDIA_TYPE *type) { struct wma_decoder *decoder = impl_from_IMediaObject(iface); + UINT32 depth, channels, rate; IMFMediaType *media_type; - UINT32 depth; HRESULT hr;
TRACE("iface %p, index %lu, type_index %lu, type %p\n", iface, index, type_index, type); @@ -686,6 +686,16 @@ static HRESULT WINAPI media_object_GetOutputType(IMediaObject *iface, DWORD inde else hr = IMFMediaType_SetGUID(media_type, &MF_MT_SUBTYPE, &MFAudioFormat_PCM);
+ if (SUCCEEDED(hr)) + hr = IMFMediaType_GetUINT32(media_type, &MF_MT_AUDIO_NUM_CHANNELS, &channels); + if (SUCCEEDED(hr)) + hr = IMFMediaType_SetUINT32(media_type, &MF_MT_AUDIO_BLOCK_ALIGNMENT, depth * channels / 8); + + if (SUCCEEDED(hr)) + hr = IMFMediaType_GetUINT32(media_type, &MF_MT_AUDIO_SAMPLES_PER_SECOND, &rate); + if (SUCCEEDED(hr)) + hr = IMFMediaType_SetUINT32(media_type, &MF_MT_AUDIO_AVG_BYTES_PER_SECOND, depth * channels / 8 * rate); + if (SUCCEEDED(hr)) hr = IMFMediaType_DeleteItem(media_type, &MF_MT_USER_DATA); if (SUCCEEDED(hr))
From: Alfred Agrell floating@muncher.se
--- dlls/mf/tests/transform.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/dlls/mf/tests/transform.c b/dlls/mf/tests/transform.c index 38e31af97c1..6aff6838a80 100644 --- a/dlls/mf/tests/transform.c +++ b/dlls/mf/tests/transform.c @@ -3585,6 +3585,8 @@ static void test_wma_decoder_dmo_output_type(void) good_output_type = (void *)buffer_good_output; bad_output_type = (void *)buffer_bad_output; init_dmo_media_type_audio(input_type, input_subtype, channel_count, rate, 16); + ((WAVEFORMATEX *)(input_type + 1))->nBlockAlign = 640; + ((WAVEFORMATEX *)(input_type + 1))->nAvgBytesPerSec = 2000; init_dmo_media_type_audio(good_output_type, &MEDIASUBTYPE_PCM, channel_count, rate, bits_per_sample); memset(bad_output_type, 0, sizeof(buffer_bad_output));
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=146415
Your paranoid android.
=== debian11 (32 bit report) ===
mf: transform.c:1444: Test failed: wmadec: type 0: Got nAvgBytesPerSec 2000, expected 88200. transform.c:1444: Test failed: wmadec: type 0: Got nBlockAlign 640, expected 4.
=== debian11 (32 bit ar:MA report) ===
mf: transform.c:1444: Test failed: wmadec: type 0: Got nAvgBytesPerSec 2000, expected 88200. transform.c:1444: Test failed: wmadec: type 0: Got nBlockAlign 640, expected 4.
=== debian11 (32 bit de report) ===
mf: transform.c:1444: Test failed: wmadec: type 0: Got nAvgBytesPerSec 2000, expected 88200. transform.c:1444: Test failed: wmadec: type 0: Got nBlockAlign 640, expected 4.
=== debian11 (32 bit fr report) ===
mf: transform.c:1444: Test failed: wmadec: type 0: Got nAvgBytesPerSec 2000, expected 88200. transform.c:1444: Test failed: wmadec: type 0: Got nBlockAlign 640, expected 4.
=== debian11 (32 bit he:IL report) ===
mf: transform.c:1444: Test failed: wmadec: type 0: Got nAvgBytesPerSec 2000, expected 88200. transform.c:1444: Test failed: wmadec: type 0: Got nBlockAlign 640, expected 4.
=== debian11 (32 bit hi:IN report) ===
mf: transform.c:1444: Test failed: wmadec: type 0: Got nAvgBytesPerSec 2000, expected 88200. transform.c:1444: Test failed: wmadec: type 0: Got nBlockAlign 640, expected 4.
=== debian11 (32 bit ja:JP report) ===
mf: transform.c:1444: Test failed: wmadec: type 0: Got nAvgBytesPerSec 2000, expected 88200. transform.c:1444: Test failed: wmadec: type 0: Got nBlockAlign 640, expected 4.
=== debian11 (32 bit zh:CN report) ===
mf: transform.c:1444: Test failed: wmadec: type 0: Got nAvgBytesPerSec 2000, expected 88200. transform.c:1444: Test failed: wmadec: type 0: Got nBlockAlign 640, expected 4.
=== debian11b (32 bit WoW report) ===
mf: transform.c:1444: Test failed: wmadec: type 0: Got nAvgBytesPerSec 2000, expected 88200. transform.c:1444: Test failed: wmadec: type 0: Got nBlockAlign 640, expected 4.
=== debian11b (64 bit WoW report) ===
mf: transform.c:1444: Test failed: wmadec: type 0: Got nAvgBytesPerSec 2000, expected 88200. transform.c:1444: Test failed: wmadec: type 0: Got nBlockAlign 640, expected 4.
This merge request was approved by Elizabeth Figura.
This merge request was approved by Rémi Bernon.