+ SetConsoleTitle(str.str().c_str());\r
+}\r
+\r
+void print_info()\r
+{\r
+ CASPAR_LOG(info) << L"################################################################################";\r
+ CASPAR_LOG(info) << L"Copyright (c) 2010 Sveriges Television AB, www.casparcg.com, <info@casparcg.com>";\r
+ CASPAR_LOG(info) << L"################################################################################";\r
+ CASPAR_LOG(info) << L"Starting CasparCG Video and Graphics Playout Server " << caspar::env::version();\r
+ CASPAR_LOG(info) << L"on " << caspar::get_win_product_name() << L" " << caspar::get_win_sp_version();\r
+ CASPAR_LOG(info) << caspar::get_cpu_info();\r
+ CASPAR_LOG(info) << caspar::get_system_product_name();\r
+ \r
+ CASPAR_LOG(info) << L"Decklink " << caspar::decklink::get_version();\r
+ BOOST_FOREACH(auto device, caspar::decklink::get_device_list())\r
+ CASPAR_LOG(info) << L" - " << device; \r
+ \r
+ CASPAR_LOG(info) << L"Bluefish " << caspar::bluefish::get_version();\r
+ BOOST_FOREACH(auto device, caspar::bluefish::get_device_list())\r
+ CASPAR_LOG(info) << L" - " << device; \r
+ \r
+ CASPAR_LOG(info) << L"Flash " << caspar::flash::get_version();\r
+ CASPAR_LOG(info) << L"FreeImage " << caspar::image::get_version();\r
+ CASPAR_LOG(info) << L"FFMPEG-avcodec " << caspar::ffmpeg::get_avcodec_version();\r
+ CASPAR_LOG(info) << L"FFMPEG-avformat " << caspar::ffmpeg::get_avformat_version();\r
+ CASPAR_LOG(info) << L"FFMPEG-avfilter " << caspar::ffmpeg::get_avfilter_version();\r
+ CASPAR_LOG(info) << L"FFMPEG-avutil " << caspar::ffmpeg::get_avutil_version();\r
+ CASPAR_LOG(info) << L"FFMPEG-swscale " << caspar::ffmpeg::get_swscale_version();\r
+}\r
+\r
+LONG WINAPI UserUnhandledExceptionFilter(EXCEPTION_POINTERS* info)\r
+{\r
+ try\r
+ {\r
+ CASPAR_LOG(fatal) << L"#######################\n UNHANDLED EXCEPTION: \n" \r
+ << L"Adress:" << info->ExceptionRecord->ExceptionAddress << L"\n"\r
+ << L"Code:" << info->ExceptionRecord->ExceptionCode << L"\n"\r
+ << L"Flag:" << info->ExceptionRecord->ExceptionFlags << L"\n"\r
+ << L"Info:" << info->ExceptionRecord->ExceptionInformation << L"\n"\r
+ << L"Continuing execution. \n#######################";\r
+ }\r
+ catch(...){}\r
+\r
+ return EXCEPTION_EXECUTE_HANDLER;\r
+}\r
+\r
+int main(int argc, wchar_t* argv[])\r
+{ \r
+ static_assert(sizeof(void*) == 4, "64-bit code generation is not supported.");\r
+ \r
+ SetUnhandledExceptionFilter(UserUnhandledExceptionFilter);\r