]> git.sesse.net Git - casparcg/commitdiff
decklink_producer: Drop old frames, not new ones.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 27 Feb 2012 14:51:20 +0000 (14:51 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 27 Feb 2012 14:51:20 +0000 (14:51 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/trunk@2497 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

modules/decklink/producer/decklink_producer.cpp

index fe088040aa778ee2ea9066c5fd28ebe9fbbaff33..30f6cce52d570da32fd3ba024a58491f360b2936 100644 (file)
@@ -231,7 +231,14 @@ public:
                        for(auto frame = muxer_.poll(); frame; frame = muxer_.poll())\r
                        {\r
                                if(!frame_buffer_.try_push(make_safe_ptr(frame)))\r
+                               {\r
+                                       auto dummy = core::basic_frame::empty();\r
+                                       frame_buffer_.try_pop(dummy);\r
+\r
+                                       frame_buffer_.try_push(make_safe_ptr(frame));\r
+\r
                                        graph_->set_tag("dropped-frame");\r
+                               }\r
                        }\r
 \r
                        graph_->set_value("frame-time", frame_timer_.elapsed()*format_desc_.fps*0.5);\r