namespace caspar { namespace reroute {
class layer_consumer : public core::write_frame_consumer
-{
+{
tbb::concurrent_bounded_queue<core::draw_frame> frame_buffer_;
semaphore frames_available_ { 0 };
int frames_delay_;
: layer_(layer)
, consumer_(spl::make_shared<layer_consumer>(frames_delay))
, channel_(channel)
- , last_frame_(core::draw_frame::empty())
+ , last_frame_(core::draw_frame::late())
, frame_number_(0)
{
pixel_constraints_.width.set(channel->video_format_desc().width);
}
// frame_producer
-
+
core::draw_frame receive_impl() override
{
auto consumer_frame = consumer_->receive();
frame_number_++;
return last_frame_ = consumer_frame;
- }
+ }
+
+ core::draw_frame last_frame() override
+ {
+ return last_frame_;
+ }
std::wstring print() const override
{