#include <modules/flash/flash.h>\r
#include <modules/ffmpeg/ffmpeg.h>\r
#include <modules/image/image.h>\r
+#include <modules/newtek/util/air_send.h>\r
\r
#include <common/env.h>\r
#include <common/exception/win32_exception.h>\r
CASPAR_LOG(info) << L"FFMPEG-swscale " << caspar::ffmpeg::get_swscale_version();\r
CASPAR_LOG(info) << L"Flash " << caspar::flash::get_version();\r
CASPAR_LOG(info) << L"Template-Host " << caspar::flash::get_cg_version();\r
+ CASPAR_LOG(info) << L"NewTek iVGA " << (caspar::newtek::airsend::is_available() ? L"available" : L"unavailable (" + caspar::newtek::airsend::dll_name() + L")");\r
}\r
\r
LONG WINAPI UserUnhandledExceptionFilter(EXCEPTION_POINTERS* info)\r
SetPriorityClass(GetCurrentProcess(), ABOVE_NORMAL_PRIORITY_CLASS);\r
\r
// Install structured exception handler.\r
- caspar::win32_exception::install_handler();\r
+ caspar::win32_exception::ensure_handler_installed_for_thread("main-thread");\r
\r
// Increase time precision. This will increase accuracy of function like Sleep(1) from 10 ms to 1 ms.\r
struct inc_prec\r
tbb_thread_installer(){observe(true);}\r
void on_scheduler_entry(bool is_worker)\r
{\r
- //caspar::detail::SetThreadName(GetCurrentThreadId(), "tbb-worker-thread");\r
- caspar::win32_exception::install_handler();\r
+ caspar::win32_exception::ensure_handler_installed_for_thread("tbb-worker-thread");\r
}\r
} tbb_thread_installer;\r
\r
// anyway when the main thread terminates.\r
boost::thread stdin_thread([&caspar_server, &shutdown_server_now, &wait_for_keypress]\r
{\r
+ caspar::win32_exception::ensure_handler_installed_for_thread("stdin-thread");\r
+\r
// Create a amcp parser for console commands.\r
caspar::protocol::amcp::AMCPProtocolStrategy amcp(\r
caspar_server.get_channels(),\r
caspar_server.get_thumbnail_generator(),\r
+ caspar_server.get_media_info_repo(),\r
shutdown_server_now);\r
\r
// Create a dummy client which prints amcp responses to console.\r