std::unordered_map<int, tweened_transform<core::frame_transform>> transforms_; \r
std::unordered_map<int, blend_mode::type> blend_modes_;\r
\r
- std::queue<std::pair<boost::unique_future<safe_ptr<host_buffer>>, std::vector<int16_t>>> buffer_;\r
+ std::queue<std::pair<boost::unique_future<safe_ptr<host_buffer>>, core::audio_buffer>> buffer_;\r
\r
const size_t buffer_size_;\r
\r
implementation(video_channel_context& video_channel) \r
: channel_(video_channel)\r
, audio_mixer_(channel_.get_format_desc())\r
- , image_mixer_(channel_)\r
+ , image_mixer_(channel_.ogl(), channel_.get_format_desc())\r
, buffer_size_(env::properties().get("configuration.producers.buffer-depth", 1))\r
{ \r
CASPAR_LOG(info) << print() << L" Successfully initialized . Buffer-depth: " << buffer_size_; \r
{ \r
auto frame2 = make_safe<core::basic_frame>(frame.second);\r
frame2->get_frame_transform() = transforms_[frame.first].fetch_and_tick(1);\r
- \r
- if(frame1->get_frame_transform() != frame2->get_frame_transform())\r
- frame1 = core::basic_frame::interlace(frame1, frame2, channel_.get_format_desc().field_mode);\r
+ frame1 = core::basic_frame::interlace(frame1, frame2, channel_.get_format_desc().field_mode);\r
}\r
\r
frame1->accept(audio_mixer_); \r
auto src = transforms_[index].fetch();\r
auto dst = transform;\r
transforms_[index] = tweened_transform<frame_transform>(src, dst, mix_duration, tween);\r
- });\r
+ }, high_priority);\r
}\r
\r
void apply_transform(int index, const std::function<frame_transform(frame_transform)>& transform, unsigned int mix_duration, const std::wstring& tween)\r
auto src = transforms_[index].fetch();\r
auto dst = transform(src);\r
transforms_[index] = tweened_transform<frame_transform>(src, dst, mix_duration, tween);\r
- });\r
+ }, high_priority);\r
}\r
\r
void clear_transforms()\r
{\r
transforms_.clear();\r
blend_modes_.clear();\r
- });\r
+ }, high_priority);\r
}\r
\r
void set_blend_mode(int index, blend_mode::type value)\r
{\r
- blend_modes_[index] = value;\r
+ channel_.execution().invoke([&]\r
+ {\r
+ blend_modes_[index] = value;\r
+ }, high_priority);\r
}\r
\r
std::wstring print() const\r