Module: wine Branch: master Commit: 63a6b308e91232dd55dd107595a6181c70180dd4 URL: https://source.winehq.org/git/wine.git/?a=commit;h=63a6b308e91232dd55dd10759... Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Thu Nov 28 17:35:40 2019 -0600 quartz/dsoundrender: Delegate IReferenceClock to the system clock. For several reasons. Firstly, the reference clock should still function when the filter is not running. Secondly, IDirectSoundBuffer::GetPositions() in practice returns very coarse positions, both on Windows and on Wine. On my hardware, the resolution is about 10ms, which, while suitable for the DirectSound renderer and probably also any video renderers, is nevertheless actually coarser than GetTickCount(). Thirdly, testing supports that the native DirectSound renderer returns a timestamp from IReferenceClock::GetTime() that is more accurate than IDirectSoundBuffer::GetPositions(). In fact, after dumping a large number of different clock sources, I came to the conclusion that it is probably using timeGetTime() as a source. On Wine that's identical to GetTickCount(), so we may as well just delegate directly to the system clock. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/quartz/dsoundrender.c | 301 +++------------------------------------------ 1 file changed, 14 insertions(+), 287 deletions(-) Diff: https://source.winehq.org/git/wine.git/?a=commitdiff;h=63a6b308e91232dd55dd1...