http://bugs.winehq.org/show_bug.cgi?id=14717
--- Comment #46 from Raymond superquad.vortex2@gmail.com 2010-12-20 17:32:37 CST --- (In reply to comment #45)
your foobar200 v1.1 are not using dsound since it is not installed by default anymore
you can use WINEDEBUG=+dsound to verify that foobar2000 is using dsound or not
The result (from an older wine) is:
trace:dsound:DSOUND_MixInBuffer (0x143210,58152,2624) trace:dsound:DSOUND_bufpos_to_secpos Converted 148976/211680 to 148976/211680 trace:dsound:DSOUND_MixerVol (0x143210,2624) trace:dsound:DSOUND_MixerVol left = ffff, right = ffff trace:dsound:mix16 0x1e29d8 - 0x1b0360 2624
I think that the WaveOut API implementation in Wine uses dsound internally.
if winejack.drv can nly supply only jack server'sample rate
wwo->sample_rate = fp_jack_get_sample_rate(client);
but in waveoutcaps , it incorrectly state that it can support 16bits 11025Hz, 22050Hz and 44100Hz if the jack server is running at 48000Hz
948 /* NOTE: we don't support any 8 bit modes so note that */ 949 /* WOutDev[i].caps.dwFormats |= WAVE_FORMAT_4M08; 950 WOutDev[i].caps.dwFormats |= WAVE_FORMAT_4S08; */ 951 WOutDev[i].caps.dwFormats |= WAVE_FORMAT_4S16; 952 WOutDev[i].caps.dwFormats |= WAVE_FORMAT_4M16; 953 /* WOutDev[i].caps.dwFormats |= WAVE_FORMAT_2M08; 954 WOutDev[i].caps.dwFormats |= WAVE_FORMAT_2S08; */ 955 WOutDev[i].caps.dwFormats |= WAVE_FORMAT_2M16; 956 WOutDev[i].caps.dwFormats |= WAVE_FORMAT_2S16; 957 /* WOutDev[i].caps.dwFormats |= WAVE_FORMAT_1M08; 958 WOutDev[i].caps.dwFormats |= WAVE_FORMAT_1S08;*/ 959 WOutDev[i].caps.dwFormats |= WAVE_FORMAT_1M16; 960 WOutDev[i].caps.dwFormats |= WAVE_FORMAT_1S16; 961 }
It only 16bit and WAVE_FORMAT_48M16 | WAVE_FORMAT_48S16 by providing 16bit -> float conversion
if you start jack server at 96000Hz, winejack.drv should WAVE_FORMAT_96S16 | WAVE_FORMAT_96M16 in waveoutcaps
to get best result , you should start the jack server at 44100Hz