]> git.sesse.net Git - casparcg/commitdiff
Fixed bug in video_channel where return value of timed_wait() was ignored timeout...
authorHelge Norberg <helge.norberg@gmail.com>
Tue, 18 Jun 2013 16:40:03 +0000 (18:40 +0200)
committerHelge Norberg <helge.norberg@gmail.com>
Tue, 18 Jun 2013 16:40:03 +0000 (18:40 +0200)
core/video_channel.cpp

index 196590365187efba87670ab24c948370064fec8d..3ec1156a2bb02192b533a8f06d3865b1fa97f037 100644 (file)
@@ -111,14 +111,16 @@ public:
                auto mixer_info  = mixer_->info();\r
                auto output_info = output_->info();\r
 \r
-               stage_info.timed_wait(boost::posix_time::seconds(2));\r
-               mixer_info.timed_wait(boost::posix_time::seconds(2));\r
-               output_info.timed_wait(boost::posix_time::seconds(2));\r
-               \r
                info.add(L"video-mode", format_desc_.name);\r
-               info.add_child(L"stage", stage_info.get());\r
-               info.add_child(L"mixer", mixer_info.get());\r
-               info.add_child(L"output", output_info.get());\r
+\r
+               if (stage_info.timed_wait(boost::posix_time::seconds(2)))\r
+                       info.add_child(L"stage", stage_info.get());\r
+\r
+               if (mixer_info.timed_wait(boost::posix_time::seconds(2)))\r
+                       info.add_child(L"mixer", mixer_info.get());\r
+\r
+               if (output_info.timed_wait(boost::posix_time::seconds(2)))\r
+                       info.add_child(L"output", output_info.get());\r
    \r
                return info;                       \r
        }\r
@@ -131,13 +133,14 @@ public:
                auto mixer_info  = mixer_->delay_info();\r
                auto output_info = output_->delay_info();\r
 \r
-               stage_info.timed_wait(boost::posix_time::seconds(2));\r
-               mixer_info.timed_wait(boost::posix_time::seconds(2));\r
-               output_info.timed_wait(boost::posix_time::seconds(2));\r
+               if (stage_info.timed_wait(boost::posix_time::seconds(2)))\r
+                       info.add_child(L"layers", stage_info.get());\r
+\r
+               if (mixer_info.timed_wait(boost::posix_time::seconds(2)))\r
+                       info.add_child(L"mix-time", mixer_info.get());\r
 \r
-               info.add_child(L"layers", stage_info.get());\r
-               info.add_child(L"mix-time", mixer_info.get());\r
-               info.add_child(L"consumers", output_info.get());\r
+               if (output_info.timed_wait(boost::posix_time::seconds(2)))\r
+                       info.add_child(L"consumers", output_info.get());\r
 \r
                return info;\r
        }\r