]> git.sesse.net Git - casparcg/commitdiff
#204 stage: tick tweened_transforms without corresponding layer as well as those...
authorHelge Norberg <helge.norberg@gmail.com>
Fri, 8 Nov 2013 15:49:44 +0000 (16:49 +0100)
committerHelge Norberg <helge.norberg@gmail.com>
Fri, 8 Nov 2013 15:49:44 +0000 (16:49 +0100)
CHANGES.txt
core/producer/stage.cpp

index fb38857ab414e16888dedd91fb1b5373f9881a50..a7d52e4655b7f7312b4600e98f9c0edeb01af3ca 100644 (file)
@@ -28,6 +28,8 @@ General
   o Fixed race condition during server shutdown.\r
   o OSC: outgoing audio levels from the audio mixer for each audio channel is\r
     now transmitted (pFS and dBFS).\r
+  o Stage: Fixed bug where tweened transforms were only ticked when a\r
+    corresponding layer existed.\r
   o Version bump to keep up with CasparCG Client version.\r
 \r
 \r
index 7a83cb4d41b6c1d57305f693a51a4e733dcda112..bb8913b03024266926a8b80bc7fea0c4b0307f35 100644 (file)
@@ -194,6 +194,11 @@ public:
 \r
                                frames[layer.first] = frame1;\r
                        });\r
+\r
+                       // Tick the transforms that does not have a corresponding layer.\r
+                       BOOST_FOREACH(auto& elem, transforms_)\r
+                               if (layers_.find(elem.first) == layers_.end())\r
+                                       elem.second.fetch_and_tick(format_desc_.field_mode != core::field_mode::progressive ? 2 : 1);\r
                        \r
                        graph_->set_value("produce-time", produce_timer_.elapsed()*format_desc_.fps*0.5);\r
 \r
@@ -254,7 +259,7 @@ public:
        {\r
                executor_.begin_invoke([=]\r
                {\r
-                       transforms_[index] = tweened_transform<core::frame_transform>();\r
+                       transforms_.unsafe_erase(index);\r
                }, high_priority);\r
        }\r
 \r