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