X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=core%2Fmixer%2Fmixer.cpp;h=d793d585d5ef33c73b95167d61a256d000989f3c;hb=5466918d97f614bcb29fb7ad93ba0b2ddec6cc89;hp=9041b2803ad7ab30c82d626bc71e15812b74fd84;hpb=e74449b7b746bbf5af451ed99d18ef30328a2460;p=casparcg diff --git a/core/mixer/mixer.cpp b/core/mixer/mixer.cpp index 9041b2803..d793d585d 100644 --- a/core/mixer/mixer.cpp +++ b/core/mixer/mixer.cpp @@ -118,35 +118,21 @@ public: { auto blend_it = blend_modes_.find(frame.first); image_mixer_.begin_layer(blend_it != blend_modes_.end() ? blend_it->second : blend_mode::normal); + + auto frame1 = make_safe(frame.second); + frame1->get_frame_transform() = transforms_[frame.first].fetch_and_tick(1); if(channel_.get_format_desc().field_mode != core::field_mode::progressive) - { - auto frame1 = make_safe(frame.second); - frame1->get_frame_transform() = transforms_[frame.first].fetch_and_tick(1); - + { auto frame2 = make_safe(frame.second); frame2->get_frame_transform() = transforms_[frame.first].fetch_and_tick(1); if(frame1->get_frame_transform() != frame2->get_frame_transform()) - frame2 = core::basic_frame::interlace(frame1, frame2, channel_.get_format_desc().field_mode); - - frame2->accept(audio_mixer_); - frame2->accept(image_mixer_); - } - else - { - auto frame2 = make_safe(frame.second); - frame2->get_frame_transform() = transforms_[frame.first].fetch_and_tick(1); - - // Audio - frame2->accept(audio_mixer_); - - // Video - auto blend_it = blend_modes_.find(frame.first); - image_mixer_.begin_layer(blend_it != blend_modes_.end() ? blend_it->second : blend_mode::normal); - - frame2->accept(image_mixer_); + frame1 = core::basic_frame::interlace(frame1, frame2, channel_.get_format_desc().field_mode); } + + frame1->accept(audio_mixer_); + frame1->accept(image_mixer_); image_mixer_.end_layer(); }