Alexandre Julliard pushed to branch master at wine / wine
Commits: 06b4e550 by Elizabeth Figura at 2024-12-06T11:22:41+01:00 quartz/dsoundrender: Always treat samples as continuous if they are late or out of order.
- - - - - c2cc20f7 by Elizabeth Figura at 2024-12-06T11:22:42+01:00 quartz/dsoundrender: Remove the unused "tStop" argument to send_sample_data().
- - - - - b22dd553 by Elizabeth Figura at 2024-12-06T11:22:44+01:00 quartz/dsoundrender: Play non-discontinuous samples consecutively.
Ignoring their start time. This matches native behaviour.
- - - - - ad480161 by Elizabeth Figura at 2024-12-06T11:22:45+01:00 quartz/tests: Test whether the DirectSound renderer provides a position.
- - - - - 2b63a021 by Elizabeth Figura at 2024-12-06T11:22:45+01:00 quartz/dsoundrender: Do not provide time to the passthrough.
- - - - - abf36a86 by Elizabeth Figura at 2024-12-06T11:22:46+01:00 quartz/dsoundrender: Do not ignore preroll samples.
- - - - - 971a05f1 by Elizabeth Figura at 2024-12-06T11:22:47+01:00 quartz/dsoundrender: Queue samples and render them on a separate thread.
As tests show, the DirectSound renderer will return immediately from Receive() and EndOfStream(), holding the sample to be rendered arbitrarily later. This is also necessary to properly clear the buffer if the renderer is starved for a long period of time.
- - - - - e6b8e9ee by Elizabeth Figura at 2024-12-06T11:22:49+01:00 quartz/dsoundrender: Use send_sample_data() to fill the buffer with silence at EOS.
Inspired by a patch by Rémi Bernon.
This allows us to clear the buffer a bit earlier than waiting for an underrun does, and avoids the spurious FIXME message in that case. It also unifies code paths a bit.
This change also correctly clears the buffer for 8-bit formats.
- - - - -
4 changed files:
- dlls/quartz/dsoundrender.c - dlls/quartz/main.c - dlls/quartz/quartz_private.h - dlls/quartz/tests/dsoundrender.c
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/05351526b6fc7977d88df08cd8c43b...