From: ronag Date: Fri, 4 Mar 2011 19:31:10 +0000 (+0000) Subject: 2.0.0.2: Added check for channel formats when swapping layers. X-Git-Tag: 2.0.1~702 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=44136128e7c9575f6ae355e4672dac637e48aeb6;p=casparcg 2.0.0.2: Added check for channel formats when swapping layers. git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@525 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d --- diff --git a/core/core.vcxproj.filters b/core/core.vcxproj.filters index 868a9f573..80d30fe7e 100644 --- a/core/core.vcxproj.filters +++ b/core/core.vcxproj.filters @@ -70,9 +70,6 @@ {865b1b03-83c0-4c59-b896-f98cd3323c00} - - {fb911bef-1f24-492e-9806-827d8609b866} - diff --git a/core/producer/frame_producer_device.cpp b/core/producer/frame_producer_device.cpp index f7edb8616..e6e31e194 100644 --- a/core/producer/frame_producer_device.cpp +++ b/core/producer/frame_producer_device.cpp @@ -129,6 +129,9 @@ public: swap_layer(index, other_index); else { + if(factory_->get_video_format_desc() != other.impl_->factory_->get_video_format_desc()) + BOOST_THROW_EXCEPTION(invalid_operation() << msg_info("Cannot swap between channels with different formats.")); + auto func = [&] { get_layer(index).swap(other.impl_->layers_.at(other_index)); @@ -145,6 +148,9 @@ public: if(other.impl_.get() == this) return; + if(factory_->get_video_format_desc() != other.impl_->factory_->get_video_format_desc()) + BOOST_THROW_EXCEPTION(invalid_operation() << msg_info("Cannot swap between channels with different formats.")); + auto func = [&] { std::set my_indices;