diff options
-rw-r--r-- | sys/wasapi/gstwasapiutil.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/wasapi/gstwasapiutil.c b/sys/wasapi/gstwasapiutil.c index 2084dbb86..e09d1364e 100644 --- a/sys/wasapi/gstwasapiutil.c +++ b/sys/wasapi/gstwasapiutil.c @@ -845,6 +845,7 @@ gst_wasapi_util_initialize_audioclient (GstElement * self, REFERENCE_TIME default_period, min_period; REFERENCE_TIME device_period, device_buffer_duration; guint rate; + guint32 n_frames; HRESULT hr; hr = IAudioClient_GetDevicePeriod (client, &default_period, &min_period); @@ -877,8 +878,6 @@ gst_wasapi_util_initialize_audioclient (GstElement * self, if (hr == AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED && sharemode == AUDCLNT_SHAREMODE_EXCLUSIVE) { - guint32 n_frames; - GST_WARNING_OBJECT (self, "initialize failed due to unaligned period %i", (int) device_period); @@ -897,7 +896,10 @@ gst_wasapi_util_initialize_audioclient (GstElement * self, } HR_FAILED_RET (hr, IAudioClient::Initialize, FALSE); - *ret_devicep_frames = (rate * device_period * 100) / GST_SECOND; + hr = IAudioClient_GetBufferSize (client, &n_frames); + HR_FAILED_RET (hr, IAudioClient::GetBufferSize, FALSE); + + *ret_devicep_frames = n_frames; return TRUE; } |