git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@1537
362d55ac-95cf-4e76-9f9a-
cbaa9c17b72d
\r
auto stream_sink = boost::make_shared<stream_sink_type>(stream_backend);\r
\r
\r
auto stream_sink = boost::make_shared<stream_sink_type>(stream_backend);\r
\r
-#ifdef NDEBUG\r
- stream_sink->set_filter(boost::log::filters::attr<severity_level>(boost::log::sources::aux::severity_attribute_name<wchar_t>::get()) >= trace);\r
-#else\r
- stream_sink->set_filter(boost::log::filters::attr<severity_level>(boost::log::sources::aux::severity_attribute_name<wchar_t>::get()) >= trace);\r
-#endif\r
+//#ifdef NDEBUG\r
+// stream_sink->set_filter(boost::log::filters::attr<severity_level>(boost::log::sources::aux::severity_attribute_name<wchar_t>::get()) >= debug);\r
+//#else\r
+// stream_sink->set_filter(boost::log::filters::attr<severity_level>(boost::log::sources::aux::severity_attribute_name<wchar_t>::get()) >= debug);\r
+//#endif\r
\r
stream_sink->locked_backend()->set_formatter(&my_formatter);\r
\r
\r
stream_sink->locked_backend()->set_formatter(&my_formatter);\r
\r
\r
file_sink->locked_backend()->set_formatter(&my_formatter);\r
\r
\r
file_sink->locked_backend()->set_formatter(&my_formatter);\r
\r
-#ifdef NDEBUG\r
- file_sink->set_filter(boost::log::filters::attr<severity_level>(boost::log::sources::aux::severity_attribute_name<wchar_t>::get()) >= trace);\r
-#else\r
- file_sink->set_filter(boost::log::filters::attr<severity_level>(boost::log::sources::aux::severity_attribute_name<wchar_t>::get()) >= trace);\r
-#endif\r
+//#ifdef NDEBUG\r
+// file_sink->set_filter(boost::log::filters::attr<severity_level>(boost::log::sources::aux::severity_attribute_name<wchar_t>::get()) >= debug);\r
+//#else\r
+// file_sink->set_filter(boost::log::filters::attr<severity_level>(boost::log::sources::aux::severity_attribute_name<wchar_t>::get()) >= debug);\r
+//#endif\r
boost::log::wcore::get()->add_sink(file_sink);\r
\r
CASPAR_LOG(info) << L"Logging [info] or higher severity to " << folder << std::endl << std::endl;\r
boost::log::wcore::get()->add_sink(file_sink);\r
\r
CASPAR_LOG(info) << L"Logging [info] or higher severity to " << folder << std::endl << std::endl;\r
- if(delay > 0)\r
- CASPAR_LOG(debug) << L"[fence] Performance warning. GPU was not ready during requested host read-back. Delayed by atleast: " << delay << L" ms.";\r
+ static tbb::atomic<bool> warned;\r
+ \r
+ if(delay > 2)\r
+ {\r
+ if(!warned.fetch_and_store(true))\r
+ {\r
+ CASPAR_LOG(warning) << L"[fence] Performance warning. GPU was not ready during requested host read-back. Delayed by atleast: " << delay << L" ms. Further warnings are sent to trace log level."\r
+ << L" You can ignore this warning if you do not notice any problems with output video. This warning is caused by insufficent support or performance of your graphics card for OpenGL based memory transfers. "\r
+ << L" Please try to update your graphics drivers or update your graphics card, see recommendations on (www.casparcg.com)."\r
+ << L" Further help is available at (www.casparcg.com/forum).";\r
+ }\r
+ else\r
+ CASPAR_LOG(trace) << L"[fence] Performance warning. GPU was not ready during requested host read-back. Delayed by atleast: " << delay << L" ms.";\r
+ }\r
\r
seek_frame(start_, flags);\r
graph_->add_tag("seek"); \r
\r
seek_frame(start_, flags);\r
graph_->add_tag("seek"); \r
- CASPAR_LOG(trace) << print() << " Looping."; \r
+ CASPAR_LOG(debug) << print() << " Looping."; \r
} \r
else\r
{\r
is_running_ = false;\r
} \r
else\r
{\r
is_running_ = false;\r
- CASPAR_LOG(trace) << print() << " Stopping.";\r
+ CASPAR_LOG(debug) << print() << " Stopping.";\r
if(ret == AVERROR(EIO))\r
CASPAR_LOG(trace) << print() << " Received EIO, assuming EOF. " << nb_frames_;\r
if(ret == AVERROR_EOF)\r
if(ret == AVERROR(EIO))\r
CASPAR_LOG(trace) << print() << " Received EIO, assuming EOF. " << nb_frames_;\r
if(ret == AVERROR_EOF)\r
- CASPAR_LOG(trace) << print() << " Received EOF. " << nb_frames_;\r
+ CASPAR_LOG(debug) << print() << " Received EOF. " << nb_frames_;\r
\r
return ret == AVERROR_EOF || ret == AVERROR(EIO) || frame_number_ >= length_; // av_read_frame doesn't always correctly return AVERROR_EOF;\r
}\r
\r
return ret == AVERROR_EOF || ret == AVERROR(EIO) || frame_number_ >= length_; // av_read_frame doesn't always correctly return AVERROR_EOF;\r
}\r
AMCPCommandPtr pCommand;\r
MessageParserState state = New;\r
\r
AMCPCommandPtr pCommand;\r
MessageParserState state = New;\r
\r
- CASPAR_LOG(trace) << message;\r
+ CASPAR_LOG(info) << message;\r
\r
std::size_t tokensInMessage = TokenizeMessage(message, &tokens);\r
\r
\r
std::size_t tokensInMessage = TokenizeMessage(message, &tokens);\r
\r
\r
// Install structured exception handler.\r
caspar::win32_exception::install_handler();\r
\r
// Install structured exception handler.\r
caspar::win32_exception::install_handler();\r
+\r
+ caspar::log::set_log_level(L"debug");\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
\r
// Increase time precision. This will increase accuracy of function like Sleep(1) from 10 ms to 1 ms.\r
struct inc_prec\r