]> git.sesse.net Git - casparcg/commitdiff
2.0. mixer: Some refactoring.
authorRonag <Ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sun, 31 Jul 2011 10:28:12 +0000 (10:28 +0000)
committerRonag <Ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sun, 31 Jul 2011 10:28:12 +0000 (10:28 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@1028 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

core/mixer/mixer.cpp

index 1e71a39eacc0658015fee97cca50b1c5e422d969..acabe5994e0cec0d1b5ed33e179ca356a4511256 100644 (file)
@@ -179,27 +179,19 @@ private:
                BOOST_FOREACH(auto& frame, frames)\r
                {\r
                        image_mixer_.begin_layer();\r
-                       \r
+\r
+                       auto frame1 = make_safe<core::basic_frame>(frame.second);\r
+                       frame1->get_image_transform() = image_transforms[frame.first].fetch_and_tick(1);\r
+                                               \r
                        if(channel_.get_format_desc().mode != core::video_mode::progressive)\r
                        {\r
-                               auto frame1 = make_safe<core::basic_frame>(frame.second);\r
                                auto frame2 = make_safe<core::basic_frame>(frame.second);\r
-                               \r
-                               frame1->get_image_transform() = image_transforms[frame.first].fetch_and_tick(1);\r
                                frame2->get_image_transform() = image_transforms[frame.first].fetch_and_tick(1);\r
-\r
-                               if(frame1->get_image_transform() != frame2->get_image_transform())\r
-                                       core::basic_frame::interlace(frame1, frame2, channel_.get_format_desc().mode)->accept(image_mixer_);\r
-                               else\r
-                                       frame2->accept(image_mixer_);\r
-                       }\r
-                       else\r
-                       {\r
-                               auto frame1 = make_safe<core::basic_frame>(frame.second);\r
-                               frame1->get_image_transform() = image_transforms[frame.first].fetch_and_tick(1);\r
-                               frame1->accept(image_mixer_);\r
+                               frame1 = core::basic_frame::interlace(frame1, frame2, channel_.get_format_desc().mode); // image_mixer optimizes away unecessary interlacing. No need to worry about it here.\r
                        }\r
 \r
+                       frame1->accept(image_mixer_);\r
+\r
                        image_mixer_.end_layer();\r
                }\r
 \r