]> git.sesse.net Git - casparcg/commitdiff
Added OSC message from output mostly for alive detection by management systems
authorHelge Norberg <helge.norberg@gmail.com>
Thu, 14 Nov 2013 15:41:12 +0000 (16:41 +0100)
committerHelge Norberg <helge.norberg@gmail.com>
Thu, 14 Nov 2013 15:41:12 +0000 (16:41 +0100)
core/consumer/output.cpp
core/consumer/output.h
core/video_channel.cpp

index 32d502c789a3a34dd1fbccc5e798360a2b264d62..678a4af734bb4bc3a03480f7be3e748387e63a9e 100644 (file)
@@ -49,6 +49,7 @@ struct output::implementation
 {              \r
        const int                                                                               channel_index_;\r
        const safe_ptr<diagnostics::graph>                              graph_;\r
+       monitor::subject                                                                monitor_subject_;\r
        boost::timer                                                                    consume_timer_;\r
 \r
        video_format_desc                                                               format_desc_;\r
@@ -66,6 +67,7 @@ public:
        implementation(const safe_ptr<diagnostics::graph>& graph, const video_format_desc& format_desc, int channel_index) \r
                : channel_index_(channel_index)\r
                , graph_(graph)\r
+               , monitor_subject_("/output")\r
                , format_desc_(format_desc)\r
                , executor_(L"output")\r
        {\r
@@ -277,6 +279,7 @@ public:
                                }\r
                                                \r
                                graph_->set_value("consume-time", consume_timer_.elapsed()*format_desc_.fps*0.5);\r
+                               monitor_subject_ << monitor::message("/consume_time") % (consume_timer_.elapsed());\r
                        }\r
                        catch(...)\r
                        {\r
@@ -335,6 +338,11 @@ public:
                        return consumers_.empty();\r
                });\r
        }\r
+\r
+       monitor::subject& monitor_output()\r
+       { \r
+               return monitor_subject_;\r
+       }\r
 };\r
 \r
 output::output(const safe_ptr<diagnostics::graph>& graph, const video_format_desc& format_desc, int channel_index) : impl_(new implementation(graph, format_desc, channel_index)){}\r
@@ -347,4 +355,5 @@ void output::set_video_format_desc(const video_format_desc& format_desc){impl_->
 boost::unique_future<boost::property_tree::wptree> output::info() const{return impl_->info();}\r
 boost::unique_future<boost::property_tree::wptree> output::delay_info() const{return impl_->delay_info();}\r
 bool output::empty() const{return impl_->empty();}\r
+monitor::subject& output::monitor_output() { return impl_->monitor_output(); }\r
 }}
\ No newline at end of file
index d3a2b1fdeabe34d3cc6f8de28ca4623891cfe2bc..1b55fcd446ecd1a335dab8f14218dd5b61aa8637 100644 (file)
@@ -22,6 +22,7 @@
 #pragma once\r
 \r
 #include "../consumer/frame_consumer.h"\r
+#include "../monitor/monitor.h"\r
 \r
 #include <common/memory/safe_ptr.h>\r
 #include <common/concurrency/target.h>\r
@@ -56,6 +57,8 @@ public:
        boost::unique_future<boost::property_tree::wptree> delay_info() const;\r
 \r
        bool empty() const;\r
+\r
+       monitor::subject& monitor_output();\r
 private:\r
        struct implementation;\r
        safe_ptr<implementation> impl_;\r
index 43cdf740b8af5803477213d04042e026d110f6e2..13e8a49cd8161514290edf7f1fe738985b8124cd 100644 (file)
@@ -73,6 +73,7 @@ public:
 \r
                stage_->monitor_output().attach_parent(monitor_subject_);\r
                mixer_->monitor_output().attach_parent(monitor_subject_);\r
+               output_->monitor_output().attach_parent(monitor_subject_);\r
 \r
                CASPAR_LOG(info) << print() << " Successfully Initialized.";\r
        }\r