]> git.sesse.net Git - casparcg/commitdiff
Added channel_id to logging of accelerator initialization
authorHelge Norberg <helge.norberg@svt.se>
Wed, 28 Oct 2015 15:49:01 +0000 (16:49 +0100)
committerHelge Norberg <helge.norberg@svt.se>
Wed, 28 Oct 2015 15:49:01 +0000 (16:49 +0100)
accelerator/accelerator.cpp
accelerator/accelerator.h
accelerator/cpu/image/image_mixer.cpp
accelerator/cpu/image/image_mixer.h
accelerator/ogl/image/image_mixer.cpp
accelerator/ogl/image/image_mixer.h
shell/server.cpp
unit-test/image_mixer_test.cpp

index a632315d41493048cbf20ad4093f3ffed20af0f2..6f685589a96c432081a828a6348f0b3e8c3f4491 100644 (file)
@@ -26,7 +26,7 @@ struct accelerator::impl
        {
        }
 
-       std::unique_ptr<core::image_mixer> create_image_mixer()
+       std::unique_ptr<core::image_mixer> create_image_mixer(int channel_id)
        {
                try
                {
@@ -40,7 +40,8 @@ struct accelerator::impl
                                return std::unique_ptr<core::image_mixer>(new ogl::image_mixer(
                                                spl::make_shared_ptr(ogl_device_),
                                                env::properties().get(L"configuration.mixer.blend-modes", false),
-                                               env::properties().get(L"configuration.mixer.straight-alpha", false)));
+                                               env::properties().get(L"configuration.mixer.straight-alpha", false),
+                                               channel_id));
                        }
                }
                catch(...)
@@ -49,7 +50,7 @@ struct accelerator::impl
                                CASPAR_LOG_CURRENT_EXCEPTION();
                }
 #ifdef _MSC_VER
-               return std::unique_ptr<core::image_mixer>(new cpu::image_mixer());
+               return std::unique_ptr<core::image_mixer>(new cpu::image_mixer(channel_id));
 #else
                CASPAR_THROW_EXCEPTION(not_supported());
 #endif
@@ -65,9 +66,9 @@ accelerator::~accelerator()
 {
 }
 
-std::unique_ptr<core::image_mixer> accelerator::create_image_mixer()
+std::unique_ptr<core::image_mixer> accelerator::create_image_mixer(int channel_id)
 {
-       return impl_->create_image_mixer();
+       return impl_->create_image_mixer(channel_id);
 }
 
 }}
index ae767676a56de33267a14c46c345efe954a5452b..4d53522a100ad2c956acdc1df351ac9399bc1252 100644 (file)
@@ -15,7 +15,7 @@ public:
        accelerator(const std::wstring& path);
        ~accelerator();
 
-       std::unique_ptr<core::image_mixer> create_image_mixer();
+       std::unique_ptr<core::image_mixer> create_image_mixer(int channel_id);
 private:
        struct impl;
        spl::unique_ptr<impl> impl_;
index a2922e56a1effffabb5737e3064ad93877f17012..5616334cf3c5f9e892ad07bf7e287b4ac8df23f0 100644 (file)
@@ -304,10 +304,10 @@ struct image_mixer::impl : boost::noncopyable
        std::vector<core::image_transform>      transform_stack_;
        std::vector<item>                                       items_; // layer/stream/items
 public:
-       impl(
+       impl(int channel_id)
                : transform_stack_(1)   
        {
-               CASPAR_LOG(info) << L"Initialized Streaming SIMD Extensions Accelerated CPU Image Mixer";
+               CASPAR_LOG(info) << L"Initialized Streaming SIMD Extensions Accelerated CPU Image Mixer for channel " << channel_id;
        }
                
        void push(const core::frame_transform& transform)
@@ -360,7 +360,7 @@ public:
        }
 };
 
-image_mixer::image_mixer() : impl_(new impl()){}
+image_mixer::image_mixer(int channel_id) : impl_(new impl(channel_id)){}
 image_mixer::~image_mixer(){}
 void image_mixer::push(const core::frame_transform& transform){impl_->push(transform);}
 void image_mixer::visit(const core::const_frame& frame){impl_->visit(frame);}
index c357a8ce13ae067a12086a28f115ee788099c745..55f2b416bd08c514975acd93f024eabfa2ae8464 100644 (file)
@@ -23,7 +23,7 @@ public:
 
        // Constructors
 
-       image_mixer();
+       image_mixer(int channel_id);
        ~image_mixer();
 
        // Methods      
index 2c38af47e5dd4ac27eb49006df81c14b3ccafa08..1c983cee20e4f8db8e5a0d7904fabc57c5bc387f 100644 (file)
@@ -295,12 +295,12 @@ struct image_mixer::impl : public core::frame_factory
        std::vector<layer>                                      layers_; // layer/stream/items
        std::vector<layer*>                                     layer_stack_;
 public:
-       impl(const spl::shared_ptr<device>& ogl, bool blend_modes_wanted, bool straight_alpha_wanted)
+       impl(const spl::shared_ptr<device>& ogl, bool blend_modes_wanted, bool straight_alpha_wanted, int channel_id)
                : ogl_(ogl)
                , renderer_(ogl, blend_modes_wanted, straight_alpha_wanted)
                , transform_stack_(1)   
        {
-               CASPAR_LOG(info) << L"Initialized OpenGL Accelerated GPU Image Mixer";
+               CASPAR_LOG(info) << L"Initialized OpenGL Accelerated GPU Image Mixer for channel " << channel_id;
        }
                
        void push(const core::frame_transform& transform)
@@ -371,7 +371,7 @@ public:
        }
 };
 
-image_mixer::image_mixer(const spl::shared_ptr<device>& ogl, bool blend_modes_wanted, bool straight_alpha_wanted) : impl_(new impl(ogl, blend_modes_wanted, straight_alpha_wanted)){}
+image_mixer::image_mixer(const spl::shared_ptr<device>& ogl, bool blend_modes_wanted, bool straight_alpha_wanted, int channel_id) : impl_(new impl(ogl, blend_modes_wanted, straight_alpha_wanted, channel_id)){}
 image_mixer::~image_mixer(){}
 void image_mixer::push(const core::frame_transform& transform){impl_->push(transform);}
 void image_mixer::visit(const core::const_frame& frame){impl_->visit(frame);}
index 95eebb9739571ffc2b8800ebc9ae4e4413f935cc..3b203b5119425e799206631d8578aa4664a394f8 100644 (file)
@@ -44,7 +44,7 @@ public:
        
        // Constructors
 
-       image_mixer(const spl::shared_ptr<class device>& ogl, bool blend_modes_wanted, bool straight_alpha_wanted);
+       image_mixer(const spl::shared_ptr<class device>& ogl, bool blend_modes_wanted, bool straight_alpha_wanted, int channel_id);
        ~image_mixer();
 
        // Methods
index 0120b236c88aace11fbfb903442968a93731256f..53814d14283f08018a383df318653043e04c9ec9 100644 (file)
@@ -249,7 +249,8 @@ struct server::impl : boost::noncopyable
                        if (!channel_layout)
                                CASPAR_THROW_EXCEPTION(caspar_exception() << msg_info("Unknown channel-layout."));
 
-                       auto channel = spl::make_shared<video_channel>(static_cast<int>(channels_.size()+1), format_desc, *channel_layout, accelerator_.create_image_mixer());
+                       auto channel_id = static_cast<int>(channels_.size() + 1);
+                       auto channel = spl::make_shared<video_channel>(channel_id, format_desc, *channel_layout, accelerator_.create_image_mixer(channel_id));
 
                        core::diagnostics::scoped_call_context save;
                        core::diagnostics::call_context::for_thread().video_channel = channel->index();
@@ -277,11 +278,12 @@ struct server::impl : boost::noncopyable
                // Dummy diagnostics channel
                if (env::properties().get(L"configuration.channel-grid", false))
                {
+                       auto channel_id = static_cast<int>(channels_.size() + 1);
                        channels_.push_back(spl::make_shared<video_channel>(
-                                       static_cast<int>(channels_.size() + 1),
+                                       channel_id,
                                        core::video_format_desc(core::video_format::x576p2500),
                                        *core::audio_channel_layout_repository::get_default()->get_layout(L"stereo"),
-                                       accelerator_.create_image_mixer()));
+                                       accelerator_.create_image_mixer(channel_id)));
                        channels_.back()->monitor_output().attach_parent(monitor_subject_);
                }
        }
@@ -345,7 +347,7 @@ struct server::impl : boost::noncopyable
                        pt.get(L"configuration.thumbnails.width", 256),
                        pt.get(L"configuration.thumbnails.height", 144),
                        core::video_format_desc(pt.get(L"configuration.thumbnails.video-mode", L"720p2500")),
-                       accelerator_.create_image_mixer(),
+                       accelerator_.create_image_mixer(0),
                        pt.get(L"configuration.thumbnails.generate-delay-millis", 2000),
                        &image::write_cropped_png,
                        media_info_repo_,
index 2b02e31c28a48202edf778fb4837ba06e46457f6..907cd94fa5a2b95b3e6724bdd0ea2dad36d93c72 100644 (file)
@@ -57,8 +57,9 @@ spl::shared_ptr<core::image_mixer> create_mixer<accelerator::ogl::image_mixer>()
 {
        return spl::make_shared<accelerator::ogl::image_mixer>(
                        ogl_device(),
-                       false,  // blend modes not wanted
-                       false); // straight alpha not wanted
+                       false, // blend modes not wanted
+                       false, // straight alpha not wanted
+                       0);
 }
 
 struct dummy_ogl_with_blend_modes {};
@@ -67,15 +68,16 @@ spl::shared_ptr<core::image_mixer> create_mixer<dummy_ogl_with_blend_modes>()
 {
        return spl::make_shared<accelerator::ogl::image_mixer>(
                        ogl_device(),
-                       true,   // blend modes wanted
-                       false); // straight alpha not wanted
+                       true,  // blend modes wanted
+                       false, // straight alpha not wanted
+                       0);
 }
 
 #ifdef _MSC_VER
 template <>
 spl::shared_ptr<core::image_mixer> create_mixer<accelerator::cpu::image_mixer>()
 {
-       return spl::make_shared<accelerator::cpu::image_mixer>();
+       return spl::make_shared<accelerator::cpu::image_mixer>(0);
 }
 #endif