]> git.sesse.net Git - casparcg/blobdiff - core/producer/transition/transition_producer.cpp
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
[casparcg] / core / producer / transition / transition_producer.cpp
index 9673d51630d53620655954a28806d155daeab5da..42a7ecb4570d0994f69cb81e16dd31757d7dc1b1 100644 (file)
@@ -132,7 +132,10 @@ struct transition_producer : public frame_producer
                if(info_.type == transition::mix)\r
                {\r
                        d_frame1->get_image_transform().set_opacity(delta1);    \r
-                       d_frame2->get_image_transform().set_opacity(delta2);    \r
+                       d_frame2->get_image_transform().set_opacity(delta2);\r
+\r
+                       //s_frame1->get_image_transform().set_opacity(1.0-delta1);      \r
+                       //s_frame2->get_image_transform().set_opacity(1.0-delta2);              \r
                }\r
                else if(info_.type == transition::slide)\r
                {\r
@@ -156,7 +159,12 @@ struct transition_producer : public frame_producer
                const auto s_frame = s_frame1->get_image_transform() == s_frame2->get_image_transform() ? s_frame2 : basic_frame::interlace(s_frame1, s_frame2, mode_);\r
                const auto d_frame = d_frame1->get_image_transform() == d_frame2->get_image_transform() ? d_frame2 : basic_frame::interlace(d_frame1, d_frame2, mode_);\r
                \r
-               return basic_frame::combine(s_frame, d_frame);\r
+               auto frame = basic_frame::combine(s_frame, d_frame);\r
+\r
+               if(info_.type == transition::mix)\r
+                       frame->get_image_transform().set_is_atomic(true);\r
+\r
+               return frame;\r
        }\r
 };\r
 \r