]> git.sesse.net Git - casparcg/commitdiff
2.1.0: -output: Removed failed consumers.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 20 Mar 2012 21:00:15 +0000 (21:00 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 20 Mar 2012 21:00:15 +0000 (21:00 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.1.0@2697 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

core/consumer/output.cpp

index 4c0ff05061130144c215c069331e973d77c6d447..55b0f0a41cd021ae55054c3badb319cb2053511c 100644 (file)
@@ -176,11 +176,20 @@ public:
                        {\r
                                auto consumer   = it->second;\r
                                auto frame              = frames_.at(consumer->buffer_depth()-minmax.first);\r
-                                               \r
-                               if(consumer->send(frame))\r
-                                       ++it;\r
-                               else\r
+                                       \r
+                               try\r
                                {\r
+                                       if(consumer->send(frame))\r
+                                               ++it;\r
+                                       else\r
+                                       {\r
+                                               CASPAR_LOG(info) << print() << L" " << it->second->print() << L" Removed.";\r
+                                               consumers_.erase(it++);\r
+                                       }\r
+                               }\r
+                               catch(...)\r
+                               {\r
+                                       CASPAR_LOG_CURRENT_EXCEPTION();\r
                                        CASPAR_LOG(info) << print() << L" " << it->second->print() << L" Removed.";\r
                                        consumers_.erase(it++);\r
                                }\r