if(!config.embedded_audio)\r
start_playback();\r
\r
- CASPAR_LOG(info) << print() << L" Buffer depth: " << buffer_size_; \r
CASPAR_LOG(info) << print() << L" Successfully Initialized."; \r
}\r
\r
else if(result == bmdOutputFrameFlushed)\r
graph_->add_tag("flushed-frame");\r
\r
- frame_container_.erase(std::find_if(frame_container_.begin(), frame_container_.end(), [&](const std::shared_ptr<IDeckLinkVideoFrame> frame)\r
- {\r
- return frame.get() == completed_frame;\r
- }));\r
+ frame_container_.erase(std::find_if(frame_container_.begin(), frame_container_.end(), completed_frame));\r
\r
std::shared_ptr<const core::read_frame> frame; \r
- video_frame_buffer_.pop(frame); \r
- \r
- schedule_next_video(safe_ptr<const core::read_frame>(frame)); \r
+ video_frame_buffer_.pop(frame); \r
+ schedule_next_video(make_safe(frame)); \r
}\r
catch(...)\r
{\r
{\r
std::shared_ptr<const core::read_frame> frame;\r
audio_frame_buffer_.pop(frame);\r
- schedule_next_audio(safe_ptr<const core::read_frame>(frame)); \r
+ schedule_next_audio(make_safe(frame)); \r
}\r
}\r
catch(...)\r
const int sample_count = format_desc_.audio_samples_per_frame;\r
const int sample_frame_count = sample_count/2;\r
\r
- const short* frame_audio_data = frame->audio_data().size() == sample_count ? frame->audio_data().begin() : silence.data();\r
- audio_container_.push_back(std::vector<short>(frame_audio_data, frame_audio_data+sample_count));\r
+ const int16_t* frame_audio_data = frame->audio_data().size() == sample_count ? frame->audio_data().begin() : silence.data();\r
+ audio_container_.push_back(std::vector<int16_t>(frame_audio_data, frame_audio_data+sample_count));\r
\r
if(FAILED(output_->ScheduleAudioSamples(audio_container_.back().data(), sample_frame_count, (audio_scheduled_++) * sample_frame_count, format_desc_.audio_sample_rate, nullptr)))\r
CASPAR_LOG(error) << print() << L" Failed to schedule audio.";\r