From: Paul Gofman pgofman@codeweavers.com
--- dlls/mmdevapi/client.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/mmdevapi/client.c b/dlls/mmdevapi/client.c index 4a205632b12..882ee32dd21 100644 --- a/dlls/mmdevapi/client.c +++ b/dlls/mmdevapi/client.c @@ -390,9 +390,6 @@ static HRESULT stream_init(struct audio_client *client, const BOOLEAN force_def_ return E_INVALIDARG; }
- if (FAILED(params.result = adjust_timing(client, force_def_period, &duration, &period, mode, flags, fmt))) - return params.result; - sessions_lock();
if (client->stream) { @@ -405,6 +402,12 @@ static HRESULT stream_init(struct audio_client *client, const BOOLEAN force_def_ return params.result; }
+ if (FAILED(params.result = adjust_timing(client, force_def_period, &duration, &period, mode, flags, fmt))) + { + sessions_unlock(); + return params.result; + } + params.name = name = get_application_name(); params.device = client->device_name; params.flow = client->dataflow;