+ if(auto_play_delta_ >= 0)\r
+ {\r
+ CASPAR_ASSERT(background_ != core::frame_producer::empty());\r
+ if(frames_left <= 0 || frame == core::basic_frame::eof())\r
+ {\r
+ //CASPAR_ASSERT(frame != core::basic_frame::eof() && "Received early EOF. Media duration metadata incorrect.");\r
+\r
+ CASPAR_LOG(info) << L"Automatically playing next clip with " << auto_play_delta_ << " frames offset. Frames left: " << frames_left;\r
+ \r
+ play();\r
+ frame = receive();\r
+ }\r
+ }\r
+\r
+ if(frame == core::basic_frame::eof())\r
+ {\r
+ pause();\r
+ return receive();\r
+ }\r
+ \r
+ return last_frame_ = frame;\r
+ }\r
+ catch(...)\r
+ {\r
+ CASPAR_LOG_CURRENT_EXCEPTION();\r
+ stop();\r
+ return core::basic_frame::empty();\r
+ }\r
+ }\r
+\r
+ layer_status status() const\r
+ {\r
+ layer_status status;\r
+ status.foreground = foreground_->print();\r
+ status.background = background_->print();\r
+ status.is_paused = is_paused_;\r
+ status.total_frames = foreground_->nb_frames();\r
+ status.current_frame = frame_number_;\r
+\r
+ return status;\r
+ }\r
+\r
+ bool empty() const\r
+ {\r
+ return background_ == core::frame_producer::empty() && foreground_ == core::frame_producer::empty();\r