]> git.sesse.net Git - casparcg/blobdiff - core/producer/frame_producer.cpp
2.0. layer: Pause on eof.
[casparcg] / core / producer / frame_producer.cpp
index 08f3b17093f575cad5f2bee7648bbd994e5d90f0..548d8314a4c931b384e7e59601c00371cd435253 100644 (file)
@@ -50,9 +50,6 @@ const safe_ptr<frame_producer>& frame_producer::empty() // nothrow
 \r
 safe_ptr<basic_frame> receive_and_follow(safe_ptr<frame_producer>& producer, int hints)\r
 {      \r
-       if(producer == frame_producer::empty())\r
-               return basic_frame::eof();\r
-\r
        auto frame = producer->receive(hints);\r
        if(frame == basic_frame::eof())\r
        {\r
@@ -60,7 +57,10 @@ safe_ptr<basic_frame> receive_and_follow(safe_ptr<frame_producer>& producer, int
                auto following = producer->get_following_producer();\r
                following->set_leading_producer(producer);\r
                producer = std::move(following);                \r
-               \r
+                               \r
+               if(producer == frame_producer::empty())\r
+                       return basic_frame::eof();\r
+\r
                return receive_and_follow(producer, hints);\r
        }\r
        return frame;\r