]> git.sesse.net Git - casparcg/commitdiff
2.1.0: Fixed leaking producers.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 27 Mar 2012 00:07:45 +0000 (00:07 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Tue, 27 Mar 2012 00:07:45 +0000 (00:07 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.1.0@2763 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

core/producer/transition/transition_producer.cpp

index 69b91975681e21b635a5f83226d9f020bbfff6aa..7b5be01417178fd21380be962d1ee998af5bdd6d 100644 (file)
@@ -68,9 +68,12 @@ public:
 \r
        draw_frame receive_impl() override\r
        {\r
-               if(current_frame_ >= info_.duration)\r
+               if(++current_frame_ >= info_.duration)\r
+               {\r
+                       source_producer_ = core::frame_producer::empty();\r
                        return dest_producer_->receive();               \r
-               \r
+               }\r
+\r
                auto dest = draw_frame::empty();\r
                auto source = draw_frame::empty();\r
 \r
@@ -87,12 +90,7 @@ public:
                        if(source == core::draw_frame::late())\r
                                source = source_producer_->last_frame();\r
                });                     \r
-                               \r
-               current_frame_ += 1;\r
-\r
-               if(current_frame_ >= info_.duration)\r
-                       source_producer_ = core::frame_producer::empty();\r
-               \r
+                                               \r
                event_subject_  << monitor::event("transition/frame") % current_frame_ % info_.duration\r
                                                << monitor::event("transition/type") % [&]() -> std::string\r
                                                                                                                                {\r