{
std::shared_ptr<void> air_send_;
core::video_format_desc format_desc_;
- core::channel_layout channel_layout_;
executor executor_;
+ core::channel_layout channel_layout_;
+ bool provide_sync_;
tbb::atomic<bool> connected_;
safe_ptr<diagnostics::graph> graph_;
public:
- newtek_ivga_consumer(core::channel_layout channel_layout)
+ newtek_ivga_consumer(core::channel_layout channel_layout, bool provide_sync)
: executor_(print())
, channel_layout_(channel_layout)
+ , provide_sync_(provide_sync)
{
if (!airsend::is_available())
BOOST_THROW_EXCEPTION(caspar_exception() << msg_info(narrow(airsend::dll_name()) + " not available"));
virtual bool has_synchronization_clock() const override
{
- return connected_;
+ return provide_sync_ && connected_;
}
};
const auto channel_layout = core::default_channel_layout_repository()
.get_by_name(
params.get(L"CHANNEL_LAYOUT", L"STEREO"));
+ const auto provide_sync = params.get(L"PROVIDE_SYNC", true);
- return make_safe<newtek_ivga_consumer>(channel_layout);
+ return make_safe<newtek_ivga_consumer>(channel_layout, provide_sync);
}
safe_ptr<core::frame_consumer> create_ivga_consumer(const boost::property_tree::wptree& ptree)
core::default_channel_layout_repository()
.get_by_name(
boost::to_upper_copy(ptree.get(L"channel-layout", L"STEREO")));
+ const auto provide_sync = ptree.get(L"provide-sync", true);
- return make_safe<newtek_ivga_consumer>(channel_layout);
+ return make_safe<newtek_ivga_consumer>(channel_layout, provide_sync);
}
}}
\ No newline at end of file