]> git.sesse.net Git - casparcg/commitdiff
[layer_producer] Return the last known framerate when channel has been destroyed.
authorHelge Norberg <helge.norberg@svt.se>
Fri, 7 Apr 2017 14:02:28 +0000 (16:02 +0200)
committerHelge Norberg <helge.norberg@svt.se>
Fri, 7 Apr 2017 14:02:28 +0000 (16:02 +0200)
modules/reroute/producer/layer_producer.cpp

index 85af0ebd7964fb6d3d08b4c75d143d4e7acb12dc..5e264cd2900a0f4ec269df4e1d9e468228c10e2e 100644 (file)
@@ -144,6 +144,7 @@ class layer_producer : public core::frame_producer_base
        const spl::shared_ptr<layer_consumer>           consumer_;
 
        core::draw_frame                                                        last_frame_;
+       mutable boost::rational<int>                            last_frame_rate_;
 
        const std::weak_ptr<core::video_channel>        channel_;
        core::constraints                                                       pixel_constraints_;
@@ -242,11 +243,13 @@ public:
                auto channel = channel_.lock();
 
                if (!channel)
-                       return 1;
+                       return last_frame_rate_;
 
-               return double_framerate_
+               last_frame_rate_ = double_framerate_
                                ? channel->video_format_desc().framerate * 2
                                : channel->video_format_desc().framerate;
+
+               return last_frame_rate_;
        }
 };