]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 26 Aug 2011 10:16:16 +0000 (10:16 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 26 Aug 2011 10:16:16 +0000 (10:16 +0000)
core/mixer/audio/audio_mixer.cpp
core/mixer/image/image_mixer.cpp

index a241ad39773fde6378eeb8c7841319dda8e03839..a899d949c0275db7077ae3d95adb1033fd30e8a0 100644 (file)
@@ -40,14 +40,10 @@ struct audio_item
        \r
 struct audio_mixer::implementation\r
 {\r
-       std::stack<core::frame_transform> transform_stack_;\r
-\r
-       std::map<const void*, core::frame_transform> prev_frame_transforms_;\r
-       std::map<const void*, core::frame_transform> next_frame_transforms_;\r
-\r
-       const core::video_format_desc format_desc_;\r
-\r
-       std::vector<audio_item> items;\r
+       std::stack<core::frame_transform>                               transform_stack_;\r
+       std::map<const void*, core::frame_transform>    prev_frame_transforms_;\r
+       const core::video_format_desc                                   format_desc_;\r
+       std::vector<audio_item>                                                 items;\r
 \r
 public:\r
        implementation(const core::video_format_desc& format_desc)\r
@@ -96,6 +92,8 @@ public:
        {\r
                auto result = std::vector<int16_t>(format_desc_.audio_samples_per_frame);\r
 \r
+               std::map<const void*, core::frame_transform> next_frame_transforms;\r
+\r
                BOOST_FOREACH(auto& item, items)\r
                {                               \r
                        const auto next = item.transform;\r
@@ -105,7 +103,7 @@ public:
                        if(it != prev_frame_transforms_.end())\r
                                prev = it->second;\r
                                \r
-                       next_frame_transforms_[item.tag] = next; // Store all active tags, inactive tags will be removed at the end.\r
+                       next_frame_transforms[item.tag] = next; // Store all active tags, inactive tags will be removed at the end.\r
                                \r
                        if(next.volume < 0.001 && prev.volume < 0.001)\r
                                continue;\r
@@ -139,7 +137,7 @@ public:
                }\r
 \r
                items.clear();\r
-               prev_frame_transforms_ = std::move(next_frame_transforms_);     \r
+               prev_frame_transforms_ = std::move(next_frame_transforms);      \r
 \r
                return std::move(result);\r
        }\r
index b754e28e899eb63e70c9dfb3c1283d1910d189b3..a93bcd8dec2a73592496a69436f050ccb232aa98 100644 (file)
@@ -60,9 +60,9 @@ typedef std::pair<blend_mode::type, std::vector<item>> layer;
 class image_renderer\r
 {\r
        ogl_device&                                                             ogl_;\r
-       video_format_desc                                               format_desc_;\r
+       const video_format_desc                                 format_desc_;\r
        image_kernel                                                    kernel_;        \r
-       std::shared_ptr<device_buffer>                  active_buffer_;\r
+       std::shared_ptr<device_buffer>                  transferring_buffer_;\r
 public:\r
        image_renderer(ogl_device& ogl, const video_format_desc& format_desc)\r
                : ogl_(ogl)\r
@@ -70,7 +70,7 @@ public:
        {\r
        }\r
        \r
-       boost::unique_future<safe_ptr<host_buffer>> render(std::vector<layer>&& layers)\r
+       boost::unique_future<safe_ptr<host_buffer>> operator()(std::vector<layer>&& layers)\r
        {               \r
                auto layers2 = make_move_on_copy(std::move(layers));\r
                return ogl_.begin_invoke([=]\r
@@ -113,7 +113,7 @@ private:
                ogl_.attach(*draw_buffer);\r
                host_buffer->begin_read(draw_buffer->width(), draw_buffer->height(), format(draw_buffer->stride()));\r
                \r
-               active_buffer_ = std::move(draw_buffer);\r
+               transferring_buffer_ = std::move(draw_buffer);\r
 \r
                ogl_.flush(); // NOTE: This is important, otherwise fences will deadlock.\r
                        \r
@@ -278,7 +278,7 @@ public:
        \r
        boost::unique_future<safe_ptr<host_buffer>> render()\r
        {\r
-               return renderer_.render(std::move(layers_));\r
+               return renderer_(std::move(layers_));\r
        }\r
 \r
        safe_ptr<write_frame> create_frame(const void* tag, const pixel_format_desc& desc)\r