From 6c1a6e151c1f981a2800d40af7c041cfcccc710e Mon Sep 17 00:00:00 2001 From: Paul Adenot Date: Tue, 21 May 2024 18:11:12 +0200 Subject: Revert "Fetch avrt.dll functions dynamically again." This reverts commit aaffe75c25c18bd171b60edc2d5a6f287a9f9808. --- src/cubeb_wasapi.cpp | 58 ++-------------------------------------------------- 1 file changed, 2 insertions(+), 56 deletions(-) (limited to 'src/cubeb_wasapi.cpp') diff --git a/src/cubeb_wasapi.cpp b/src/cubeb_wasapi.cpp index b2e95be..01417a5 100644 --- a/src/cubeb_wasapi.cpp +++ b/src/cubeb_wasapi.cpp @@ -204,11 +204,6 @@ struct auto_stream_ref { cubeb_stream * stm; }; -using set_mm_thread_characteristics_function = - decltype(&AvSetMmThreadCharacteristicsW); -using revert_mm_thread_characteristics_function = - decltype(&AvRevertMmThreadCharacteristics); - extern cubeb_ops const wasapi_ops; static com_heap_ptr @@ -306,13 +301,6 @@ struct cubeb { nullptr; void * output_collection_changed_user_ptr = nullptr; UINT64 performance_counter_frequency; - /* Library dynamically opened to increase the render thread priority, and - the two function pointers we need. */ - HMODULE mmcss_module = nullptr; - set_mm_thread_characteristics_function set_mm_thread_characteristics = - nullptr; - revert_mm_thread_characteristics_function revert_mm_thread_characteristics = - nullptr; }; class wasapi_endpoint_notification_client; @@ -1413,8 +1401,7 @@ static unsigned int __stdcall wasapi_stream_render_loop(LPVOID stream) /* We could consider using "Pro Audio" here for WebAudio and maybe WebRTC. */ - mmcss_handle = - stm->context->set_mm_thread_characteristics(L"Audio", &mmcss_task_index); + mmcss_handle = AvSetMmThreadCharacteristicsA("Audio", &mmcss_task_index); if (!mmcss_handle) { /* This is not fatal, but we might glitch under heavy load. */ LOG("Unable to use mmcss to bump the render thread priority: %lx", @@ -1522,7 +1509,7 @@ static unsigned int __stdcall wasapi_stream_render_loop(LPVOID stream) } if (mmcss_handle) { - stm->context->revert_mm_thread_characteristics(mmcss_handle); + AvRevertMmThreadCharacteristics(mmcss_handle); } if (FAILED(hr)) { @@ -1535,18 +1522,6 @@ static unsigned int __stdcall wasapi_stream_render_loop(LPVOID stream) void wasapi_destroy(cubeb * context); -HANDLE WINAPI -set_mm_thread_characteristics_noop(LPCWSTR, LPDWORD mmcss_task_index) -{ - return (HANDLE)1; -} - -BOOL WINAPI -revert_mm_thread_characteristics_noop(HANDLE mmcss_handle) -{ - return true; -} - HRESULT register_notification_client(cubeb_stream * stm) { @@ -1782,31 +1757,6 @@ wasapi_init(cubeb ** context, char const * context_name) ctx->performance_counter_frequency = 0; } - ctx->mmcss_module = LoadLibraryW(L"Avrt.dll"); - - bool success = false; - if (ctx->mmcss_module) { - ctx->set_mm_thread_characteristics = - reinterpret_cast( - GetProcAddress(ctx->mmcss_module, "AvSetMmThreadCharacteristicsW")); - ctx->revert_mm_thread_characteristics = - reinterpret_cast( - GetProcAddress(ctx->mmcss_module, - "AvRevertMmThreadCharacteristics")); - success = ctx->set_mm_thread_characteristics && - ctx->revert_mm_thread_characteristics; - } - if (!success) { - // This is not a fatal error, but we might end up glitching when - // the system is under high load. - LOG("Could not load avrt.dll or fetch AvSetMmThreadCharacteristicsW " - "AvRevertMmThreadCharacteristics: %lx", - GetLastError()); - ctx->set_mm_thread_characteristics = &set_mm_thread_characteristics_noop; - ctx->revert_mm_thread_characteristics = - &revert_mm_thread_characteristics_noop; - } - *context = ctx; return CUBEB_OK; @@ -1863,10 +1813,6 @@ wasapi_destroy(cubeb * context) } } - if (context->mmcss_module) { - FreeLibrary(context->mmcss_module); - } - delete context; } -- cgit v1.2.3