]> git.sesse.net Git - casparcg/blobdiff - modules/decklink/producer/decklink_producer.cpp
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
[casparcg] / modules / decklink / producer / decklink_producer.cpp
index 420256641861cd0e3bbd44bbdd16fd89895defdd..176e79f56ee79dd6394a27c1b285581d480702d4 100644 (file)
@@ -71,7 +71,7 @@ extern "C"
 \r
 #include <functional>\r
 \r
-namespace caspar { \r
+namespace caspar { namespace decklink {\r
                \r
 class decklink_producer : boost::noncopyable, public IDeckLinkInputCallback\r
 {      \r
@@ -82,7 +82,7 @@ class decklink_producer : boost::noncopyable, public IDeckLinkInputCallback
        const core::video_format_desc                                                           format_desc_;\r
        const size_t                                                                                            device_index_;\r
 \r
-       std::shared_ptr<diagnostics::graph>                                                     graph_;\r
+       safe_ptr<diagnostics::graph>                                                            graph_;\r
        boost::timer                                                                                            tick_timer_;\r
        boost::timer                                                                                            frame_timer_;\r
                \r
@@ -91,9 +91,9 @@ class decklink_producer : boost::noncopyable, public IDeckLinkInputCallback
        tbb::concurrent_bounded_queue<safe_ptr<core::basic_frame>>      frame_buffer_;\r
 \r
        std::exception_ptr                                                                                      exception_;\r
-       filter                                                                                                          filter_;\r
+       ffmpeg::filter                                                                                          filter_;\r
                \r
-       frame_muxer                                                                                                     muxer_;\r
+       ffmpeg::frame_muxer                                                                                     muxer_;\r
 \r
 public:\r
        decklink_producer(const core::video_format_desc& format_desc, size_t device_index, const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filter)\r
@@ -104,17 +104,18 @@ public:
                , device_index_(device_index)\r
                , frame_factory_(frame_factory)\r
                , filter_(filter)\r
-               , muxer_(double_rate(filter) ? format_desc.fps * 2.0 : format_desc.fps, frame_factory)\r
+               , muxer_(ffmpeg::double_rate(filter) ? format_desc.fps * 2.0 : format_desc.fps, frame_factory)\r
        {\r
                frame_buffer_.set_capacity(2);\r
                \r
-               graph_ = diagnostics::create_graph(boost::bind(&decklink_producer::print, this));\r
                graph_->add_guide("tick-time", 0.5);\r
                graph_->set_color("tick-time", diagnostics::color(0.0f, 0.6f, 0.9f));   \r
                graph_->set_color("late-frame", diagnostics::color(0.6f, 0.3f, 0.3f));\r
                graph_->set_color("frame-time", diagnostics::color(1.0f, 0.0f, 0.0f));\r
                graph_->set_color("dropped-frame", diagnostics::color(0.3f, 0.6f, 0.3f));\r
                graph_->set_color("output-buffer", diagnostics::color(0.0f, 1.0f, 0.0f));\r
+               graph_->set_text(print());\r
+               diagnostics::register_graph(graph_);\r
                \r
                auto display_mode = get_display_mode(input_, format_desc_.format, bmdFormat8BitYUV, bmdVideoInputFlagDefault);\r
                \r
@@ -285,7 +286,7 @@ public:
        }\r
 };\r
 \r
-safe_ptr<core::frame_producer> create_decklink_producer(const safe_ptr<core::frame_factory>& frame_factory, const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_producer> create_producer(const safe_ptr<core::frame_factory>& frame_factory, const std::vector<std::wstring>& params)\r
 {\r
        if(params.empty() || !boost::iequals(params[0], "decklink"))\r
                return core::frame_producer::empty();\r
@@ -305,4 +306,4 @@ safe_ptr<core::frame_producer> create_decklink_producer(const safe_ptr<core::fra
        return make_safe<decklink_producer_proxy>(frame_factory, format_desc, device_index, filter_str, length);\r
 }\r
 \r
-}
\ No newline at end of file
+}}
\ No newline at end of file