From a6a86caf21d586082ec7abf4a791e7e041bde22c Mon Sep 17 00:00:00 2001 From: Matt Gajownik Date: Sat, 19 Oct 2019 19:16:25 +1100 Subject: [PATCH] win-wasapi: Log device sample rate when initialized --- plugins/win-wasapi/enum-wasapi.hpp | 1 + plugins/win-wasapi/win-wasapi.cpp | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/plugins/win-wasapi/enum-wasapi.hpp b/plugins/win-wasapi/enum-wasapi.hpp index cbaa14ff5..6f42be2f7 100644 --- a/plugins/win-wasapi/enum-wasapi.hpp +++ b/plugins/win-wasapi/enum-wasapi.hpp @@ -2,6 +2,7 @@ #define WIN32_MEAN_AND_LEAN #include +#include #include #include #include diff --git a/plugins/win-wasapi/win-wasapi.cpp b/plugins/win-wasapi/win-wasapi.cpp index 215946e96..68432b08c 100644 --- a/plugins/win-wasapi/win-wasapi.cpp +++ b/plugins/win-wasapi/win-wasapi.cpp @@ -28,6 +28,7 @@ class WASAPISource { obs_source_t *source; string device_id; string device_name; + string device_sample = "-"; bool isInputDevice; bool useDeviceTiming = false; bool isDefaultDevice = false; @@ -289,7 +290,8 @@ void WASAPISource::InitCapture() client->Start(); active = true; - blog(LOG_INFO, "WASAPI: Device '%s' initialized", device_name.c_str()); + blog(LOG_INFO, "WASAPI: Device '%s' [%s Hz] initialized", + device_name.c_str(), device_sample.c_str()); } void WASAPISource::Initialize() @@ -308,6 +310,22 @@ void WASAPISource::Initialize() device_name = GetDeviceName(device); + HRESULT resSample; + IPropertyStore *store = nullptr; + PWAVEFORMATEX deviceFormatProperties; + PROPVARIANT prop; + resSample = device->OpenPropertyStore(STGM_READ, &store); + if (!FAILED(resSample)) { + resSample = + store->GetValue(PKEY_AudioEngine_DeviceFormat, &prop); + if (!FAILED(resSample)) { + deviceFormatProperties = + (PWAVEFORMATEX)prop.blob.pBlobData; + device_sample = std::to_string( + deviceFormatProperties->nSamplesPerSec); + } + } + InitClient(); if (!isInputDevice) InitRender();