if(fill == basic_frame::eof() && key == basic_frame::eof())\r
return basic_frame::eof();\r
\r
- if(key == basic_frame::empty())\r
+ if(key == basic_frame::empty() || key == basic_frame::eof())\r
return fill;\r
\r
std::vector<safe_ptr<basic_frame>> frames;\r
if(last_fill_ == core::basic_frame::late() || last_key_ == core::basic_frame::late()) // One of the producers is lagging, keep them in sync.\r
return last_frame_;\r
\r
- if(last_key_ == basic_frame::eof())\r
- {\r
- last_frame_ = last_fill_;\r
- last_fill_ = basic_frame::empty();\r
- }\r
- else\r
- {\r
- last_frame_= basic_frame::fill_and_key(last_fill_, last_key_);\r
- last_fill_ = basic_frame::empty();\r
- last_key_ = basic_frame::empty();\r
- }\r
+ last_frame_= basic_frame::fill_and_key(last_fill_, last_key_);\r
+\r
+ last_fill_ = basic_frame::empty();\r
+ last_key_ = basic_frame::empty();\r
\r
return last_frame_;\r
}\r
}\r
else if(!video_frame_buffer_.empty() && !audio_decoder_)\r
{\r
- frame = video_frame_buffer_.front(); \r
+ frame = std::move(video_frame_buffer_.front()); \r
video_frame_buffer_.pop_front();\r
frame->get_audio_transform().set_has_audio(false); \r
}\r
<channel>\r
<videomode>1080i5000</videomode>\r
<consumers>\r
- <!--<decklink>\r
+ <decklink>\r
<device>1</device>\r
<embedded-audio>true</embedded-audio>\r
<latency>low</latency>\r
<key>external</key>\r
- </decklink>-->\r
- <ogl>\r
+ </decklink>\r
+ <!--<ogl>\r
<device>1</device>\r
<stretch>uniform</stretch>\r
<windowed>true</windowed>\r
- </ogl>\r
+ </ogl>-->\r
<audio/>\r
<!--<bluefish>\r
<device>1</device>\r