SofTalk (Japanese text-to-speech software) depends on this.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50515 Signed-off-by: Akihiro Sagawa sagawa.aki@gmail.com --- dlls/winmm/tests/wave.c | 2 +- dlls/winmm/waveform.c | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-)
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=84281
Your paranoid android.
=== w1064v1809 (32 bit report) ===
winmm: wave.c:502: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1377 bytes, should be 13230 wave.c:513: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1377 samples (1377 bytes), should be 13230 (13230 bytes) wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed
=== w1064 (32 bit report) ===
winmm: wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed wave.c:800: Test failed: missing WOM_DONE notification wave.c:805: Test failed: (00) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:502: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1356 bytes, should be 13230 wave.c:513: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1356 samples (1356 bytes), should be 13230 (13230 bytes) wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed wave.c:536: Test failed: waveOutGetPosition(WAVE_MAPPER): SMPTE test failed wave.c:547: Test failed: waveOutGetPosition(WAVE_MAPPER): MIDI test failed wave.c:558: Test failed: waveOutGetPosition(WAVE_MAPPER): TICKS test failed wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:821: Test failed: dwFlags(-1)=12 wave.c:825: Test failed: waveOutUnprepareHeader(-1): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:826: Test failed: dwFlags(-1)=13 wave.c:831: Test failed: dwFlags(-1)=13 wave.c:836: Test failed: dwFlags(-1)=13 wave.c:844: Test failed: waveOutClose(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:1636: Test failed: after position: 10716
=== w10pro64 (32 bit report) ===
winmm: wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed
=== w1064v1809 (64 bit report) ===
winmm: wave.c:800: Test failed: missing WOM_DONE notification wave.c:800: Test failed: missing WOM_DONE notification wave.c:800: Test failed: missing WOM_DONE notification wave.c:796: Test failed: waveOutWrite(WAVE_MAPPER, header[0]): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:800: Test failed: missing WOM_DONE notification wave.c:800: Test failed: missing WOM_DONE notification wave.c:800: Test failed: missing WOM_DONE notification wave.c:800: Test failed: missing WOM_DONE notification wave.c:800: Test failed: missing WOM_DONE notification wave.c:800: Test failed: missing WOM_DONE notification wave.c:805: Test failed: (01) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (02) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (03) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (04) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:502: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1377 bytes, should be 22050 wave.c:513: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1377 samples (1377 bytes), should be 22050 (22050 bytes) wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave: Timeout
=== w1064 (64 bit report) ===
winmm: wave.c:805: Test failed: (05) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (06) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (07) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (08) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (09) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:502: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1356 bytes, should be 17640 wave.c:513: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1356 samples (1356 bytes), should be 17640 (17640 bytes) wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) wave.c:800: Test failed: missing WOM_DONE notification wave.c:800: Test failed: missing WOM_DONE notification wave.c:800: Test failed: missing WOM_DONE notification
=== w1064_2qxl (64 bit report) ===
winmm: wave.c:502: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 2238 bytes, should be 13230 wave.c:513: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 2238 samples (2238 bytes), should be 13230 (13230 bytes) wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed
=== w10pro64_ar (64 bit report) ===
winmm: wave.c:502: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 2238 bytes, should be 13230 wave.c:513: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 2238 samples (2238 bytes), should be 13230 (13230 bytes) wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed wave.c:502: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1356 bytes, should be 13230 wave.c:513: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1356 samples (1356 bytes), should be 13230 (13230 bytes) wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed
=== w10pro64_he (64 bit report) ===
winmm: wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed wave.c:800: Test failed: missing WOM_DONE notification wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed
=== w10pro64_zh_CN (64 bit report) ===
winmm: wave.c:805: Test failed: (05) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (06) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (07) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (08) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:805: Test failed: (09) WHDR_DONE WHDR_PREPARED expected, got WHDR_INQUEUE WHDR_PREPARED wave.c:502: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1356 bytes, should be 17640 wave.c:513: Test failed: waveOutGetPosition(WAVE_MAPPER): returned 1356 samples (1356 bytes), should be 17640 (17640 bytes) wave.c:525: Test failed: waveOutGetPosition(WAVE_MAPPER): TIME_MS test failed wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(²¥·ÅÃœÌåÊýŸÝʱ£¬ÎÞ·šÖŽÐÐÕâÏî²Ù×÷¡£ÇëÖØÖÞÃÉ豞£¬»òµÈµœÊýŸÝ²¥·ÅÍê±ÏÔÙÖŽÐС£) wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(²¥·ÅÃœÌåÊýŸÝʱ£¬ÎÞ·šÖŽÐÐÕâÏî²Ù×÷¡£ÇëÖØÖÞÃÉ豞£¬»òµÈµœÊýŸÝ²¥·ÅÍê±ÏÔÙÖŽÐС£) wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(²¥·ÅÃœÌåÊýŸÝʱ£¬ÎÞ·šÖŽÐÐÕâÏî²Ù×÷¡£ÇëÖØÖÞÃÉ豞£¬»òµÈµœÊýŸÝ²¥·ÅÍê±ÏÔÙÖŽÐС£) wave.c:816: Test failed: waveOutUnprepareHeader(WAVE_MAPPER): rc=WAVERR_STILLPLAYING(²¥·ÅÃœÌåÊýŸÝʱ£¬ÎÞ·šÖŽÐÐÕâÏî²Ù×÷¡£ÇëÖØÖÞÃÉ豞£¬»òµÈµœÊýŸÝ²¥·ÅÍê±ÏÔÙÖŽÐС£)
Signed-off-by: Andrew Eikum aeikum@codeweavers.com
On Wed, Jan 20, 2021 at 10:23:42PM +0900, Akihiro Sagawa wrote:
SofTalk (Japanese text-to-speech software) depends on this.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50515 Signed-off-by: Akihiro Sagawa sagawa.aki@gmail.com
dlls/winmm/tests/wave.c | 2 +- dlls/winmm/waveform.c | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/dlls/winmm/tests/wave.c b/dlls/winmm/tests/wave.c index 079a497dd0b..cb18f3e0fa4 100644 --- a/dlls/winmm/tests/wave.c +++ b/dlls/winmm/tests/wave.c @@ -519,7 +519,7 @@ static void check_position(int device, HWAVEOUT wout, DWORD bytes, rc=waveOutGetPosition(wout, &mmtime, sizeof(mmtime)); ok(rc==MMSYSERR_NOERROR, "waveOutGetPosition(%s): rc=%s\n",dev_name(device),wave_out_error(rc));
- todo_wine ok(mmtime.wType == TIME_BYTES, "(waveOutGetPosition(%s): returned %s\n",
- ok(mmtime.wType == TIME_BYTES, "(waveOutGetPosition(%s): returned %s\n", dev_name(device), wave_time_format(mmtime.wType)); returned = time_to_bytes(&mmtime, pwfx); ok(returned == bytes, "waveOutGetPosition(%s): TIME_MS test failed\n",
diff --git a/dlls/winmm/waveform.c b/dlls/winmm/waveform.c index 9d58b78c779..876b9d3d91d 100644 --- a/dlls/winmm/waveform.c +++ b/dlls/winmm/waveform.c @@ -2038,9 +2038,6 @@ static MMRESULT WINMM_FramesToMMTime(MMTIME *time, UINT32 played_frames, case TIME_SAMPLES: time->u.sample = played_frames; return MMSYSERR_NOERROR;
- case TIME_MS:
time->u.ms = (UINT64)played_frames * 1000 / sample_rate;
case TIME_SMPTE: time->u.smpte.fps = 30; played_frames += sample_rate / time->u.smpte.fps - 1; /* round up */return MMSYSERR_NOERROR;