winmm: GetCurrentPadding is superfluous while recording.
Alexandre Julliard
julliard at winehq.org
Tue Jan 10 12:41:26 CST 2012
Joerg-Cyril.Hoehle at t-systems.com writes:
> Hi,
>
> now winmm recording does not depend on chunking by mmdevapi.
>
> + if(packet > 0)
> + WARN("losing %u frames\n", packet);
> That part is interesting. Another approach would have been to check whether
> all of GetData could be stuffed into winmm buffers and use ReleaseBuffer(0) if not
> (much more complicated in the presence of several buffers).
>
> As long as winmm supplies enough buffers in advance, that doesn't matter.
>
> With that in place, the "Fix AudioCaptureClient protocol" patches can be applied on
> the winmm side. I have not checked the dsound code.
>
> I'm sorry winmm:ACMPullData was broken by my former notification patch. I'll have to fix that.
> ACMPullData is also not very robust (return; after GetBuffer will prevent any subsequent GetBuffer
> with OUT_OF_ORDER).
It doesn't work here:
../../../tools/runtest -q -P wine -M winmm.dll -T ../../.. -p winmm_test.exe.so mci.c && touch mci.ok
[...]
err:winmm:WID_PullData GetBuffer failed: 88890007
err:winmm:WID_PullData GetBuffer failed: 88890007
err:winmm:WID_PullData GetBuffer failed: 88890007
err:winmm:WID_PullData GetBuffer failed: 88890007
err:winmm:WID_PullData GetBuffer failed: 88890007
err:winmm:WID_PullData GetBuffer failed: 88890007
err:winmm:WID_PullData GetBuffer failed: 88890007
err:winmm:WID_PullData GetBuffer failed: 88890007
err:winmm:WID_PullData GetBuffer failed: 88890007
etc. forever
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list