From: Helge Norberg Date: Thu, 26 Jun 2014 17:04:50 +0000 (+0200) Subject: #281 X-Git-Tag: 2.0.7_Beta2~3 X-Git-Url: https://git.sesse.net/?p=casparcg;a=commitdiff_plain;h=c03ed4dd419ea3db3c244c9f4926fe65f610bcb5 #281 Added support for iVGA consumer to not provide channel sync even though connected. Useful for iVGA clients that downloads as fast as possible instead of in frame-rate pace, like Wirecast. false has to be added inside the element to not provide channel sync when connected. --- diff --git a/modules/newtek/consumer/newtek_ivga_consumer.cpp b/modules/newtek/consumer/newtek_ivga_consumer.cpp index 1e5e046aa..cc075c7a9 100644 --- a/modules/newtek/consumer/newtek_ivga_consumer.cpp +++ b/modules/newtek/consumer/newtek_ivga_consumer.cpp @@ -45,8 +45,9 @@ struct newtek_ivga_consumer : public core::frame_consumer { std::shared_ptr 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 connected_; safe_ptr graph_; @@ -55,9 +56,10 @@ struct newtek_ivga_consumer : public core::frame_consumer 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")); @@ -163,7 +165,7 @@ public: virtual bool has_synchronization_clock() const override { - return connected_; + return provide_sync_ && connected_; } }; @@ -175,8 +177,9 @@ safe_ptr create_ivga_consumer(const core::parameters& para 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(channel_layout); + return make_safe(channel_layout, provide_sync); } safe_ptr create_ivga_consumer(const boost::property_tree::wptree& ptree) @@ -185,8 +188,9 @@ safe_ptr create_ivga_consumer(const boost::property_tree:: 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(channel_layout); + return make_safe(channel_layout, provide_sync); } }} \ No newline at end of file diff --git a/shell/casparcg.config b/shell/casparcg.config index de4810b30..eb752a811 100644 --- a/shell/casparcg.config +++ b/shell/casparcg.config @@ -102,6 +102,7 @@ stereo [mono|stereo|dts|dolbye|dolbydigital|smpte|passthru] + true [true|false]