\r
General\r
-------\r
- o Allow for the server to work without Processing.AirSend.x86.dll to prevent a\r
- possible GPL violation. It is available as a separate optional download.\r
- o Fixed bug during deinterlace-bob-reinterlace where output fields were offset\r
- by one field in relation to input fields.\r
+ o iVGA: Allow for the server to work without Processing.AirSend.x86.dll to\r
+ prevent a possible GPL violation. It is available as a separate optional\r
+ download.\r
+ o iVGA: Only provide sync to channel while connected, to prevent channel\r
+ ticking too fast.\r
+ o FFmpeg: Fixed bug during deinterlace-bob-reinterlace where output fields\r
+ were offset by one field in relation to input fields.\r
o Frontend: Only writes elements to casparcg.config which overrides a default\r
value to keep the file as compact as possible.\r
o Version bump to keep up with CasparCG Client version.\r
#include <boost/algorithm/string.hpp>
+#include <tbb/atomic.h>
+
#include "../util/air_send.h"
namespace caspar { namespace newtek {
core::video_format_desc format_desc_;
core::channel_layout channel_layout_;
executor executor_;
+ tbb::atomic<bool> connected_;
public:
{
if (!airsend::is_available())
BOOST_THROW_EXCEPTION(caspar_exception() << msg_info(narrow(airsend::dll_name()) + " not available"));
+
+ connected_ = false;
}
~newtek_ivga_consumer()
// VIDEO
- airsend::add_frame_bgra(air_send_.get(), frame->image_data().begin());
+ connected_ = airsend::add_frame_bgra(air_send_.get(), frame->image_data().begin());
return true;
});
{
return 0;
}
+
+ virtual bool has_synchronization_clock() const override
+ {
+ return connected_;
+ }
};
safe_ptr<core::frame_consumer> create_ivga_consumer(const core::parameters& params)