int n = 0;\r
for(auto it = drawables_.begin(); it != drawables_.end(); ++n)\r
{\r
- auto drawable = *it;\r
+ auto& drawable = *it;\r
if(!drawable.unique())\r
{\r
drawable->SetScale(window_.GetWidth(), window_.GetHeight()/count);\r
void initialize(const video_format_desc& format_desc)\r
{\r
format_desc_ = format_desc;\r
+ for(size_t n = 0; n < buffer_depth(); ++n)\r
+ input_.push(std::vector<short>(static_cast<size_t>(48000.0f/format_desc_.fps)*2, 0)); \r
sf::SoundStream::Initialize(2, 48000);\r
Play(); \r
CASPAR_LOG(info) << "Sucessfully started oal_consumer";\r
\r
void send(const safe_ptr<const read_frame>& frame)\r
{ \r
- if(frame->audio_data().empty())\r
- return;\r
-\r
- input_.push(std::vector<short>(frame->audio_data().begin(), frame->audio_data().end())); \r
+ if(!frame->audio_data().empty())\r
+ input_.push(std::vector<short>(frame->audio_data().begin(), frame->audio_data().end())); \r
+ else\r
+ input_.push(std::vector<short>(static_cast<size_t>(48000.0f/format_desc_.fps)*2, 0)); \r
}\r
\r
size_t buffer_depth() const{return 3;}\r
void load(const safe_ptr<frame_producer>& frame_producer, bool play_on_load)\r
{ \r
background_ = frame_producer;\r
+ is_paused_ = false;\r
if(play_on_load)\r
- play(true); \r
+ play(); \r
}\r
\r
void preview(const safe_ptr<frame_producer>& frame_producer)\r
pause();\r
}\r
\r
- void play(bool force = false)\r
+ void play()\r
{ \r
- if(!is_paused_ || force) \r
+ if(!is_paused_) \r
{\r
background_->set_leading_producer(foreground_);\r
foreground_ = background_;\r