auto result = last_frame_;\r
if(!ouput_channel_.empty()) \r
result = get_frame(); // TODO: Support 50p \r
- else if(input_->is_eof())\r
+ else if(!input_->is_running())\r
result = core::basic_frame::eof();\r
else\r
graph_->add_tag("lag");\r
audio_packet_buffer_.try_push(std::move(packet)); \r
}\r
else if(!loop_ || av_seek_frame(format_context_.get(), -1, 0, AVSEEK_FLAG_BACKWARD) < 0) // TODO: av_seek_frame does not work for all formats\r
+ {\r
executor_.stop();\r
+ CASPAR_LOG(info) << print() << " eof";\r
+ } \r
else\r
graph_->add_tag("seek"); \r
\r
const std::shared_ptr<AVCodecContext>& input::get_video_codec_context() const{return impl_->video_codec_context_;}\r
const std::shared_ptr<AVCodecContext>& input::get_audio_codec_context() const{return impl_->audio_codex_context_;}\r
bool input::is_eof() const{return impl_->is_eof();}\r
+bool input::is_running() const {return impl_->executor_.is_running();}\r
aligned_buffer input::get_video_packet(){return impl_->get_video_packet();}\r
aligned_buffer input::get_audio_packet(){return impl_->get_audio_packet();}\r
double input::fps() const { return impl_->fps(); }\r