Commit f06c2fe0 authored by Christoph Reiter's avatar Christoph Reiter Committed by Nirbheek Chauhan

wasapisink: fix regression in shared mode segment size

In commit fd806628a8 (839cc392 in the stable branch) I changed the
segment size to match exactly the buffer size.  I missed that this is
only valid in exclusive mode and in shared mode the buffer size is
a multiple of the device period.

Revert the logic for the shared mode.

https://bugzilla.gnome.org/show_bug.cgi?id=796354

https://bugzilla.gnome.org/show_bug.cgi?id=796858
parent 8c48ccab
......@@ -896,10 +896,16 @@ gst_wasapi_util_initialize_audioclient (GstElement * self,
}
HR_FAILED_RET (hr, IAudioClient::Initialize, FALSE);
hr = IAudioClient_GetBufferSize (client, &n_frames);
HR_FAILED_RET (hr, IAudioClient::GetBufferSize, FALSE);
if (sharemode == AUDCLNT_SHAREMODE_EXCLUSIVE) {
/* We use the device period for the segment size and that needs to match
* the buffer size exactly when we write into it */
hr = IAudioClient_GetBufferSize (client, &n_frames);
HR_FAILED_RET (hr, IAudioClient::GetBufferSize, FALSE);
*ret_devicep_frames = n_frames;
*ret_devicep_frames = n_frames;
} else {
*ret_devicep_frames = (rate * device_period * 100) / GST_SECOND;
}
return TRUE;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment