From: Elizabeth Figura <zfigura(a)codeweavers.com> Ignoring their start time. This matches native behaviour. --- dlls/quartz/dsoundrender.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dlls/quartz/dsoundrender.c b/dlls/quartz/dsoundrender.c index 81ec532e420..bf750d417ac 100644 --- a/dlls/quartz/dsoundrender.c +++ b/dlls/quartz/dsoundrender.c @@ -321,9 +321,9 @@ static HRESULT configure_buffer(struct dsound_render *filter, IMediaSample *pSam static HRESULT render_sample(struct dsound_render *filter, IMediaSample *pSample) { + REFERENCE_TIME start = -1, stop = -1; LPBYTE pbSrcStream = NULL; LONG cbSrcStream = 0; - REFERENCE_TIME tStart, tStop; HRESULT hr; hr = IMediaSample_GetPointer(pSample, &pbSrcStream); @@ -333,11 +333,11 @@ static HRESULT render_sample(struct dsound_render *filter, IMediaSample *pSample return hr; } - hr = IMediaSample_GetTime(pSample, &tStart, &tStop); - if (FAILED(hr)) + if (IMediaSample_IsDiscontinuity(pSample) == S_OK + && FAILED(hr = IMediaSample_GetTime(pSample, &start, &stop))) { ERR("Failed to get sample time, hr %#lx.\n", hr); - tStart = tStop = -1; + start = stop = -1; } if (IMediaSample_IsPreroll(pSample) == S_OK) @@ -347,7 +347,7 @@ static HRESULT render_sample(struct dsound_render *filter, IMediaSample *pSample } cbSrcStream = IMediaSample_GetActualDataLength(pSample); - return send_sample_data(filter, tStart, pbSrcStream, cbSrcStream); + return send_sample_data(filter, start, pbSrcStream, cbSrcStream); } static HRESULT WINAPI dsound_render_sink_Receive(struct strmbase_sink *iface, IMediaSample *sample) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6973