]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: Moved mixer folder into correct directory.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Thu, 20 Jan 2011 22:26:33 +0000 (22:26 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Thu, 20 Jan 2011 22:26:33 +0000 (22:26 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@394 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

44 files changed:
common/utility/assert.h [new file with mode: 0644]
core/consumer/bluefish/bluefish_consumer.cpp
core/consumer/decklink/decklink_consumer.cpp
core/consumer/ffmpeg/ffmpeg_consumer.cpp
core/consumer/oal/oal_consumer.cpp
core/consumer/ogl/ogl_consumer.cpp
core/core.vcxproj
core/core.vcxproj.filters
core/producer/color/color_producer.cpp
core/producer/decklink/decklink_producer.cpp
core/producer/ffmpeg/ffmpeg_producer.cpp
core/producer/ffmpeg/video/video_decoder.cpp
core/producer/ffmpeg/video/video_decoder.h
core/producer/flash/flash_producer.cpp
core/producer/image/image_producer.cpp
core/producer/transition/transition_producer.cpp
mixer/audio/audio_mixer.cpp [moved from core/mixer/audio/audio_mixer.cpp with 100% similarity]
mixer/audio/audio_mixer.h [moved from core/mixer/audio/audio_mixer.h with 100% similarity]
mixer/audio/audio_transform.cpp [new file with mode: 0644]
mixer/audio/audio_transform.h [new file with mode: 0644]
mixer/frame/draw_frame.cpp [moved from core/mixer/frame/draw_frame.cpp with 96% similarity]
mixer/frame/draw_frame.h [moved from core/mixer/frame/draw_frame.h with 94% similarity]
mixer/frame/pixel_format.h [moved from core/mixer/frame/pixel_format.h with 100% similarity]
mixer/frame/read_frame.cpp [moved from core/mixer/frame/read_frame.cpp with 100% similarity]
mixer/frame/read_frame.h [moved from core/mixer/frame/read_frame.h with 100% similarity]
mixer/frame/write_frame.cpp [moved from core/mixer/frame/write_frame.cpp with 100% similarity]
mixer/frame/write_frame.h [moved from core/mixer/frame/write_frame.h with 92% similarity]
mixer/frame_factory.h [moved from core/mixer/frame_factory.h with 100% similarity]
mixer/frame_mixer_device.cpp [moved from core/mixer/frame_mixer_device.cpp with 96% similarity]
mixer/frame_mixer_device.h [moved from core/mixer/frame_mixer_device.h with 100% similarity]
mixer/fwd.h [moved from core/mixer/fwd.h with 100% similarity]
mixer/gpu/device_buffer.cpp [moved from core/mixer/gpu/device_buffer.cpp with 100% similarity]
mixer/gpu/device_buffer.h [moved from core/mixer/gpu/device_buffer.h with 100% similarity]
mixer/gpu/host_buffer.cpp [moved from core/mixer/gpu/host_buffer.cpp with 100% similarity]
mixer/gpu/host_buffer.h [moved from core/mixer/gpu/host_buffer.h with 100% similarity]
mixer/gpu/ogl_device.cpp [moved from core/mixer/gpu/ogl_device.cpp with 100% similarity]
mixer/gpu/ogl_device.h [moved from core/mixer/gpu/ogl_device.h with 100% similarity]
mixer/image/image_kernel.cpp [moved from core/mixer/image/image_kernel.cpp with 100% similarity]
mixer/image/image_kernel.h [moved from core/mixer/image/image_kernel.h with 85% similarity]
mixer/image/image_mixer.cpp [moved from core/mixer/image/image_mixer.cpp with 100% similarity]
mixer/image/image_mixer.h [moved from core/mixer/image/image_mixer.h with 91% similarity]
mixer/image/image_transform.cpp [new file with mode: 0644]
mixer/image/image_transform.h [new file with mode: 0644]
protocol/amcp/AMCPCommandsImpl.cpp

diff --git a/common/utility/assert.h b/common/utility/assert.h
new file mode 100644 (file)
index 0000000..29c5840
--- /dev/null
@@ -0,0 +1,7 @@
+#pragma once\r
+\r
+#include "../log/log.h"\r
+\r
+#define __ASSERT_EXPR_STR(name) #name\r
+\r
+#define CASPAR_ASSERT(expr) do{if(!(expr)) CASPAR_LOG(error) << "\nAssertion failed.\n " << __ASSERT_EXPR_STR(expr) << "\n" << __FILE__ << "\n" << __LINE__ << "\n\n";}while(0)
\ No newline at end of file
index c43357bdf90cb301ef04c2feb94f6ea4270e97ea..ec359d5dbca2b8a0c0a9762ca35906d5848278ed 100644 (file)
@@ -24,7 +24,7 @@
 #include "util.h"\r
 #include "memory.h"\r
 \r
-#include "../../mixer/frame/read_frame.h"\r
+#include <mixer/frame/read_frame.h>\r
 \r
 #include <common/concurrency/executor.h>\r
 \r
index d03bd358d35be2e183d18a9bef68b3e60d17e230..e33d2334bfcaca8ea322c00dee157b11c2445550 100644 (file)
@@ -26,8 +26,9 @@
 \r
 #include "DeckLinkAPI_h.h"\r
 \r
-#include "../../video_format.h"\r
-#include "../../mixer/frame/read_frame.h"\r
+#include <core/video_format.h>\r
+\r
+#include <mixer/frame/read_frame.h>\r
 \r
 #include <common/concurrency/executor.h>\r
 #include <common/exception/exceptions.h>\r
index 8733a87eac807c8183a86053644cc496cd46cc6a..2b64b3b79de1acd9428e2aa924b24017bb6d60f4 100644 (file)
@@ -22,7 +22,7 @@
 \r
 #include "ffmpeg_consumer.h"\r
 \r
-#include "../../mixer/frame/read_frame.h"\r
+#include <mixer/frame/read_frame.h>\r
 \r
 #include <common/concurrency/executor.h>\r
 #include <common/utility/string_convert.h>\r
index a228067b6af1f2ed9b556e89ac5f303eccff7aa7..f202567b35ad93e4cad99796016b3c567a3798f8 100644 (file)
@@ -22,9 +22,9 @@
 \r
 #include "oal_consumer.h"\r
 \r
-#include "../../video_format.h"\r
+#include <core/video_format.h>\r
 \r
-#include "../../mixer/frame/read_frame.h"\r
+#include <mixer/frame/read_frame.h>\r
 \r
 #include <SFML/Audio.hpp>\r
 \r
index e28af19b5a29b7c2989e31ca10b80c526674ada3..0e65e44bb063bccbc6a7aabd4aa16bde2cba062e 100644 (file)
@@ -22,8 +22,8 @@
 \r
 #include "ogl_consumer.h"\r
 \r
-#include "../../video_format.h"\r
-#include "../../mixer/frame/read_frame.h"\r
+#include <core/video_format.h>\r
+#include <mixer/frame/read_frame.h>\r
 \r
 #include <common/gl/gl_check.h>\r
 #include <common/concurrency/executor.h>\r
index a2dc3f5fd81a2dbfcdef412250bd474814dbb915..00d1d6396b7eafd329ea64d496450551a24fb320 100644 (file)
@@ -44,8 +44,8 @@
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">debug\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">release\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\FreeImage\Dist\;..\..\..\dependencies\FreeImage\Dist\;..\..\dependencies\GLee5_4\;..\..\..\dependencies\GLee5_4\;..\..\dependencies\SFML-1.6\include\;..\..\..\dependencies\SFML-1.6\include\;..\..\dependencies\tbb30_20100406oss\include\;..\..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\FreeImage\Dist\;..\..\..\dependencies\FreeImage\Dist\;..\..\dependencies\GLee5_4\;..\..\..\dependencies\GLee5_4\;..\..\dependencies\SFML-1.6\include\;..\..\..\dependencies\SFML-1.6\include\;..\..\dependencies\tbb30_20100406oss\include\;..\..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\;..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\FreeImage\Dist\;..\..\..\dependencies\FreeImage\Dist\;..\..\dependencies\GLee5_4\;..\..\..\dependencies\GLee5_4\;..\..\dependencies\SFML-1.6\include\;..\..\..\dependencies\SFML-1.6\include\;..\..\dependencies\tbb30_20100406oss\include\;..\..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\;..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\FreeImage\Dist\;..\..\..\dependencies\FreeImage\Dist\;..\..\dependencies\GLee5_4\;..\..\..\dependencies\GLee5_4\;..\..\dependencies\SFML-1.6\include\;..\..\..\dependencies\SFML-1.6\include\;..\..\dependencies\tbb30_20100406oss\include\;..\..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\FreeImage\Dist\;..\..\..\dependencies\FreeImage\Dist\;..\..\dependencies\GLee5_4\;..\..\..\dependencies\GLee5_4\;..\..\dependencies\SFML-1.6\lib\;..\..\..\dependencies\SFML-1.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;..\..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\FreeImage\Dist\;..\..\..\dependencies\FreeImage\Dist\;..\..\dependencies\GLee5_4\;..\..\..\dependencies\GLee5_4\;..\..\dependencies\SFML-1.6\lib\;..\..\..\dependencies\SFML-1.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;..\..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)debug\</OutDir>\r
     </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
+    <ClInclude Include="..\mixer\audio\audio_mixer.h" />\r
+    <ClInclude Include="..\mixer\audio\audio_transform.h" />\r
+    <ClInclude Include="..\mixer\frame\draw_frame.h" />\r
+    <ClInclude Include="..\mixer\frame\pixel_format.h" />\r
+    <ClInclude Include="..\mixer\frame\read_frame.h" />\r
+    <ClInclude Include="..\mixer\frame\write_frame.h" />\r
+    <ClInclude Include="..\mixer\frame_factory.h" />\r
+    <ClInclude Include="..\mixer\frame_mixer_device.h" />\r
+    <ClInclude Include="..\mixer\fwd.h" />\r
+    <ClInclude Include="..\mixer\gpu\device_buffer.h" />\r
+    <ClInclude Include="..\mixer\gpu\host_buffer.h" />\r
+    <ClInclude Include="..\mixer\gpu\ogl_device.h" />\r
+    <ClInclude Include="..\mixer\image\image_kernel.h" />\r
+    <ClInclude Include="..\mixer\image\image_mixer.h" />\r
+    <ClInclude Include="..\mixer\image\image_transform.h" />\r
     <ClInclude Include="channel.h" />\r
     <ClInclude Include="consumer\bluefish\memory.h" />\r
     <ClInclude Include="consumer\bluefish\bluefish_consumer.h" />\r
     <ClInclude Include="consumer\frame_consumer.h" />\r
     <ClInclude Include="consumer\oal\oal_consumer.h" />\r
     <ClInclude Include="consumer\ogl\ogl_consumer.h" />\r
-    <ClInclude Include="mixer\audio\audio_mixer.h" />\r
-    <ClInclude Include="mixer\audio\audio_transform.h" />\r
-    <ClInclude Include="mixer\frame\draw_frame.h" />\r
-    <ClInclude Include="mixer\frame\pixel_format.h" />\r
-    <ClInclude Include="mixer\frame\read_frame.h" />\r
-    <ClInclude Include="mixer\frame\write_frame.h" />\r
-    <ClInclude Include="mixer\frame_factory.h" />\r
-    <ClInclude Include="mixer\frame_mixer_device.h" />\r
-    <ClInclude Include="mixer\fwd.h" />\r
-    <ClInclude Include="mixer\gpu\device_buffer.h" />\r
-    <ClInclude Include="mixer\gpu\host_buffer.h" />\r
-    <ClInclude Include="mixer\gpu\ogl_device.h" />\r
-    <ClInclude Include="mixer\image\image_kernel.h" />\r
-    <ClInclude Include="mixer\image\image_mixer.h" />\r
-    <ClInclude Include="mixer\image\image_transform.h" />\r
     <ClInclude Include="producer\color\color_producer.h" />\r
     <ClInclude Include="producer\decklink\decklink_producer.h" />\r
     <ClInclude Include="producer\ffmpeg\audio\audio_decoder.h" />\r
     <ClInclude Include="StdAfx.h" />\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <ClCompile Include="channel.cpp" />\r
-    <ClCompile Include="consumer\bluefish\bluefish_consumer.cpp">\r
+    <ClCompile Include="..\mixer\audio\audio_mixer.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="consumer\decklink\decklink_consumer.cpp">\r
+    <ClCompile Include="..\mixer\audio\audio_transform.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="consumer\ffmpeg\ffmpeg_consumer.cpp">\r
+    <ClCompile Include="..\mixer\frame\draw_frame.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="consumer\frame_consumer_device.cpp">\r
+    <ClCompile Include="..\mixer\frame\read_frame.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+    </ClCompile>\r
+    <ClCompile Include="..\mixer\frame\write_frame.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+    </ClCompile>\r
+    <ClCompile Include="..\mixer\frame_mixer_device.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="consumer\decklink\DeckLinkAPI_i.c">\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    <ClCompile Include="..\mixer\gpu\device_buffer.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="consumer\oal\oal_consumer.cpp">\r
+    <ClCompile Include="..\mixer\gpu\host_buffer.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="consumer\ogl\ogl_consumer.cpp">\r
+    <ClCompile Include="..\mixer\gpu\ogl_device.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\audio\audio_mixer.cpp">\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
+    <ClCompile Include="..\mixer\image\image_kernel.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+    </ClCompile>\r
+    <ClCompile Include="..\mixer\image\image_mixer.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\audio\audio_transform.cpp">\r
+    <ClCompile Include="..\mixer\image\image_transform.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\frame\draw_frame.cpp">\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
+    <ClCompile Include="channel.cpp" />\r
+    <ClCompile Include="consumer\bluefish\bluefish_consumer.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\frame\read_frame.cpp">\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
+    <ClCompile Include="consumer\decklink\decklink_consumer.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\frame\write_frame.cpp">\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
+    <ClCompile Include="consumer\ffmpeg\ffmpeg_consumer.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\frame_mixer_device.cpp">\r
+    <ClCompile Include="consumer\frame_consumer_device.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\gpu\device_buffer.cpp">\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="mixer\gpu\host_buffer.cpp">\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="mixer\gpu\ogl_device.cpp">\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="mixer\image\image_kernel.cpp">\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
+    <ClCompile Include="consumer\decklink\DeckLinkAPI_i.c">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\image\image_mixer.cpp">\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../stdafx.h</PrecompiledHeaderFile>\r
+    <ClCompile Include="consumer\oal\oal_consumer.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\image\image_transform.cpp">\r
+    <ClCompile Include="consumer\ogl\ogl_consumer.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
index 3966097a2e8a69d80014bb4cb633ec635807c7c4..a428e74d543aed078e397d9a7d04d1b9f1887184 100644 (file)
     <ClInclude Include="consumer\ffmpeg\ffmpeg_consumer.h">\r
       <Filter>Source\consumer\ffmpeg</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\frame_mixer_device.h">\r
+    <ClInclude Include="producer\frame_producer_device.h">\r
+      <Filter>Source\producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\layer.h">\r
+      <Filter>Source\producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="..\mixer\frame_factory.h">\r
+      <Filter>Source\mixer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="..\mixer\frame_mixer_device.h">\r
       <Filter>Source\mixer</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\fwd.h">\r
+    <ClInclude Include="..\mixer\fwd.h">\r
       <Filter>Source\mixer</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\image\image_kernel.h">\r
+    <ClInclude Include="..\mixer\image\image_kernel.h">\r
       <Filter>Source\mixer\image</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\image\image_mixer.h">\r
+    <ClInclude Include="..\mixer\image\image_mixer.h">\r
       <Filter>Source\mixer\image</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\audio\audio_mixer.h">\r
-      <Filter>Source\mixer\audio</Filter>\r
+    <ClInclude Include="..\mixer\image\image_transform.h">\r
+      <Filter>Source\mixer\image</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\gpu\device_buffer.h">\r
+    <ClInclude Include="..\mixer\gpu\device_buffer.h">\r
       <Filter>Source\mixer\gpu</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\gpu\host_buffer.h">\r
+    <ClInclude Include="..\mixer\gpu\host_buffer.h">\r
       <Filter>Source\mixer\gpu</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\gpu\ogl_device.h">\r
+    <ClInclude Include="..\mixer\gpu\ogl_device.h">\r
       <Filter>Source\mixer\gpu</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\frame\draw_frame.h">\r
+    <ClInclude Include="..\mixer\frame\draw_frame.h">\r
       <Filter>Source\mixer\frame</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\frame\pixel_format.h">\r
+    <ClInclude Include="..\mixer\frame\pixel_format.h">\r
       <Filter>Source\mixer\frame</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\frame\read_frame.h">\r
+    <ClInclude Include="..\mixer\frame\read_frame.h">\r
       <Filter>Source\mixer\frame</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\frame\write_frame.h">\r
+    <ClInclude Include="..\mixer\frame\write_frame.h">\r
       <Filter>Source\mixer\frame</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="producer\frame_producer_device.h">\r
-      <Filter>Source\producer</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\layer.h">\r
-      <Filter>Source\producer</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="mixer\frame_factory.h">\r
-      <Filter>Source\mixer</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="mixer\image\image_transform.h">\r
-      <Filter>Source\mixer\image</Filter>\r
+    <ClInclude Include="..\mixer\audio\audio_mixer.h">\r
+      <Filter>Source\mixer\audio</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="mixer\audio\audio_transform.h">\r
+    <ClInclude Include="..\mixer\audio\audio_transform.h">\r
       <Filter>Source\mixer\audio</Filter>\r
     </ClInclude>\r
   </ItemGroup>\r
     <ClCompile Include="consumer\ffmpeg\ffmpeg_consumer.cpp">\r
       <Filter>Source\consumer\ffmpeg</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\frame_mixer_device.cpp">\r
+    <ClCompile Include="producer\frame_producer_device.cpp">\r
+      <Filter>Source\producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\layer.cpp">\r
+      <Filter>Source\producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="..\mixer\frame_mixer_device.cpp">\r
       <Filter>Source\mixer</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\image\image_kernel.cpp">\r
+    <ClCompile Include="..\mixer\image\image_kernel.cpp">\r
       <Filter>Source\mixer\image</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\image\image_mixer.cpp">\r
+    <ClCompile Include="..\mixer\image\image_mixer.cpp">\r
       <Filter>Source\mixer\image</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\audio\audio_mixer.cpp">\r
-      <Filter>Source\mixer\audio</Filter>\r
+    <ClCompile Include="..\mixer\image\image_transform.cpp">\r
+      <Filter>Source\mixer\image</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\gpu\device_buffer.cpp">\r
+    <ClCompile Include="..\mixer\gpu\device_buffer.cpp">\r
       <Filter>Source\mixer\gpu</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\gpu\host_buffer.cpp">\r
+    <ClCompile Include="..\mixer\gpu\host_buffer.cpp">\r
       <Filter>Source\mixer\gpu</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\gpu\ogl_device.cpp">\r
+    <ClCompile Include="..\mixer\gpu\ogl_device.cpp">\r
       <Filter>Source\mixer\gpu</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\frame\draw_frame.cpp">\r
+    <ClCompile Include="..\mixer\frame\draw_frame.cpp">\r
       <Filter>Source\mixer\frame</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\frame\read_frame.cpp">\r
+    <ClCompile Include="..\mixer\frame\read_frame.cpp">\r
       <Filter>Source\mixer\frame</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\frame\write_frame.cpp">\r
+    <ClCompile Include="..\mixer\frame\write_frame.cpp">\r
       <Filter>Source\mixer\frame</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="producer\frame_producer_device.cpp">\r
-      <Filter>Source\producer</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\layer.cpp">\r
-      <Filter>Source\producer</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="mixer\image\image_transform.cpp">\r
-      <Filter>Source\mixer\image</Filter>\r
+    <ClCompile Include="..\mixer\audio\audio_mixer.cpp">\r
+      <Filter>Source\mixer\audio</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="mixer\audio\audio_transform.cpp">\r
+    <ClCompile Include="..\mixer\audio\audio_transform.cpp">\r
       <Filter>Source\mixer\audio</Filter>\r
     </ClCompile>\r
   </ItemGroup>\r
index 3e131713d50a48797226aee150f63fee59ac3e4d..371e1dd6686845bda5756475670db06a9f298ce5 100644 (file)
@@ -22,7 +22,7 @@
 \r
 #include "color_producer.h"\r
 \r
-#include "../../mixer/frame/draw_frame.h"\r
+#include <mixer/frame/draw_frame.h>\r
 \r
 #include <sstream>\r
 \r
index 2f4cf80562ccf127fea84a8e7250e7ac5b0714ec..9744fe1a04844955c002f2f6c7dab798e3903824 100644 (file)
@@ -22,7 +22,7 @@
 \r
 #include "decklink_producer.h"\r
 \r
-#include "../../mixer/frame/draw_frame.h"\r
+#include <mixer/frame/draw_frame.h>\r
 #include "../../consumer/decklink/DeckLinkAPI_h.h" // TODO: Change this\r
 #include "../../consumer/decklink/util.h" // TODO: Change this\r
 \r
index ea65c538d0819acd69ca7c7283b82145740cc472..13a9723670bc5030e0de8a0a7c449baf3bad6085 100644 (file)
@@ -6,9 +6,9 @@
 #include "audio/audio_decoder.h"\r
 #include "video/video_decoder.h"\r
 \r
-#include "../../video_format.h"\r
-#include "../../mixer/frame/draw_frame.h"\r
-#include "../../mixer/audio/audio_transform.h"\r
+#include <core/video_format.h>\r
+#include <mixer/frame/draw_frame.h>\r
+#include <mixer/audio/audio_transform.h>\r
 \r
 #include <common/env.h>\r
 \r
index 03b7beaefad1ff1b716d84a709d40f9267562de4..84215eb1d9f7f25b022444e9e0519fb127cbdeb0 100644 (file)
@@ -2,12 +2,13 @@
 \r
 #include "video_decoder.h"\r
 \r
-#include "../../../video_format.h"\r
-#include "../../../mixer/frame/draw_frame.h"\r
-#include "../../../mixer/image/image_transform.h"\r
-\r
 #include <common/memory/safe_ptr.h>\r
 \r
+#include <core/video_format.h>\r
+\r
+#include <mixer/frame/draw_frame.h>\r
+#include <mixer/image/image_transform.h>\r
+\r
 #include <tbb/parallel_for.h>\r
 \r
 #include <algorithm>\r
index 6e3c7a3734db08600088d24a4fb41762577cfa74..9bf5a2e5ad907c9c05cc88a0f7d3301cfdf5bedd 100644 (file)
@@ -1,8 +1,8 @@
 #pragma once\r
 \r
-#include "../../../mixer/frame_mixer_device.h"\r
+#include <common/memory/safe_ptr.h>\r
 \r
-#include <memory>\r
+#include <mixer/frame_mixer_device.h>\r
 \r
 struct AVCodecContext;\r
 \r
@@ -18,7 +18,7 @@ public:
        void initialize(const safe_ptr<frame_factory>& frame_factory);\r
 private:\r
        struct implementation;\r
-       std::shared_ptr<implementation> impl_;\r
+       safe_ptr<implementation> impl_;\r
 };\r
 \r
 }}}
\ No newline at end of file
index ded6794f4eec347e2fa15eead9964780a8ece887..08610b653266e406002a8c862f4607dda54196cc 100644 (file)
 #include "flash_producer.h"\r
 #include "FlashAxContainer.h"\r
 \r
-#include "../../video_format.h"\r
+#include <core/video_format.h>\r
 \r
-#include "../../mixer/frame/draw_frame.h"\r
-#include "../../mixer/frame_mixer_device.h"\r
+#include <mixer/frame/draw_frame.h>\r
+#include <mixer/frame_mixer_device.h>\r
 \r
 #include <common/concurrency/executor.h>\r
 #include <common/utility/timer.h>\r
index a440afc731514788b699dc57613740c7357188c7..06c172516c4394dc42953213892db29cc0327a75 100644 (file)
@@ -3,9 +3,10 @@
 #include "image_producer.h"\r
 #include "image_loader.h"\r
 \r
-#include "../../mixer/frame_mixer_device.h"\r
-#include "../../mixer/frame/draw_frame.h"\r
-#include "../../video_format.h"\r
+#include <core/video_format.h>\r
+\r
+#include <mixer/frame_mixer_device.h>\r
+#include <mixer/frame/draw_frame.h>\r
 \r
 #include <common/env.h>\r
 \r
index 03b599ba8a71d328d155f7e9fa5a218f91b1870e..1b2a00e3214ac2580eec58efd7d3edf890c29049 100644 (file)
 \r
 #include "transition_producer.h"\r
 \r
-#include "../../video_format.h"\r
-#include "../../mixer/frame/draw_frame.h"\r
-#include "../../mixer/frame_mixer_device.h"\r
-#include "../../mixer/image/image_transform.h"\r
-#include "../../mixer/audio/audio_mixer.h"\r
-#include "../../mixer/audio/audio_transform.h"\r
+#include <core/video_format.h>\r
+\r
+#include <mixer/frame/draw_frame.h>\r
+#include <mixer/frame_mixer_device.h>\r
+#include <mixer/image/image_transform.h>\r
+#include <mixer/audio/audio_mixer.h>\r
+#include <mixer/audio/audio_transform.h>\r
 \r
 #include <boost/range/algorithm/copy.hpp>\r
 \r
diff --git a/mixer/audio/audio_transform.cpp b/mixer/audio/audio_transform.cpp
new file mode 100644 (file)
index 0000000..5965541
--- /dev/null
@@ -0,0 +1,31 @@
+#include "../../stdafx.h"\r
+\r
+#include "audio_transform.h"\r
+\r
+namespace caspar { namespace core {\r
+       \r
+audio_transform::audio_transform()\r
+       : gain_(1.0){}\r
+\r
+void audio_transform::set_gain(double value)\r
+{\r
+       gain_ = value;\r
+}\r
+\r
+double audio_transform::get_gain() const\r
+{\r
+       return gain_;\r
+}\r
+\r
+audio_transform& audio_transform::operator*=(const audio_transform &other) \r
+{\r
+       gain_ *= other.gain_;\r
+       return *this;\r
+}\r
+\r
+const audio_transform audio_transform::operator*(const audio_transform &other) const\r
+{\r
+       return audio_transform(*this) *= other;\r
+}\r
+\r
+}}
\ No newline at end of file
diff --git a/mixer/audio/audio_transform.h b/mixer/audio/audio_transform.h
new file mode 100644 (file)
index 0000000..772167f
--- /dev/null
@@ -0,0 +1,19 @@
+#pragma once\r
+\r
+namespace caspar { namespace core {\r
+\r
+class audio_transform\r
+{\r
+public:\r
+       audio_transform();\r
+\r
+       void set_gain(double value);\r
+       double get_gain() const;\r
+\r
+       audio_transform& operator*=(const audio_transform &other);\r
+       const audio_transform operator*(const audio_transform &other) const;\r
+private:\r
+       double gain_;\r
+};\r
+\r
+}}
\ No newline at end of file
similarity index 96%
rename from core/mixer/frame/draw_frame.cpp
rename to mixer/frame/draw_frame.cpp
index 49b738d9e4035173a87234f4f646f42cb296b9b8..48e3e278416e4bf202ae44858626df0218d93e2b 100644 (file)
@@ -7,7 +7,8 @@
 #include "../audio/audio_mixer.h"\r
 #include "../audio/audio_transform.h"\r
 #include "pixel_format.h"\r
-#include "../../video_format.h"\r
+\r
+#include <core/video_format.h>\r
 \r
 #include <boost/range/algorithm.hpp>\r
 \r
similarity index 94%
rename from core/mixer/frame/draw_frame.h
rename to mixer/frame/draw_frame.h
index c68718884d95edd31d18baa1a910ced149c886ce..311300b9e7e0275b25ea72211c68b131aee91afc 100644 (file)
@@ -4,7 +4,7 @@
 \r
 #include "draw_frame.h"\r
 \r
-#include "../../video_format.h"\r
+#include "../../core/video_format.h"\r
 \r
 #include <boost/noncopyable.hpp>\r
 #include <boost/range/iterator_range.hpp>\r
similarity index 92%
rename from core/mixer/frame/write_frame.h
rename to mixer/frame/write_frame.h
index f6a8605e19d173652280781099f053b1194c82b3..82671bf878d9d5802a29a3a5a2c59829ba2a130c 100644 (file)
@@ -6,7 +6,7 @@
 \r
 #include "../gpu/host_buffer.h"\r
 \r
-#include "../../video_format.h"\r
+#include <core/video_format.h>\r
 \r
 #include <boost/noncopyable.hpp>\r
 #include <boost/range/iterator_range.hpp>\r
similarity index 96%
rename from core/mixer/frame_mixer_device.cpp
rename to mixer/frame_mixer_device.cpp
index 8b3c016397ca468ae1551a87106e780db9f5e50c..acce449e9a2e11a20301d9f3aea2ab89e00050e5 100644 (file)
@@ -4,18 +4,17 @@
 \r
 #include "audio/audio_mixer.h"\r
 #include "audio/audio_transform.h"\r
-#include "image/image_mixer.h"\r
-#include "image/image_transform.h"\r
-\r
 #include "frame/write_frame.h"\r
 #include "frame/read_frame.h"\r
-\r
-#include "../video_format.h"\r
+#include "image/image_mixer.h"\r
+#include "image/image_transform.h"\r
 \r
 #include <common/exception/exceptions.h>\r
 #include <common/concurrency/executor.h>\r
 #include <common/gl/gl_check.h>\r
 \r
+#include <core/video_format.h>\r
+\r
 #include <tbb/concurrent_queue.h>\r
 #include <tbb/concurrent_unordered_map.h>\r
 \r
similarity index 100%
rename from core/mixer/fwd.h
rename to mixer/fwd.h
similarity index 85%
rename from core/mixer/image/image_kernel.h
rename to mixer/image/image_kernel.h
index fd8b5665f32db4894d08474b8d67ad146c322b92..657369303fd5d33a57a619a204cc2d9ec40e52ff 100644 (file)
@@ -1,6 +1,7 @@
 #pragma once\r
 \r
-#include "../../video_format.h"\r
+#include <core/video_format.h>\r
+\r
 #include "../frame/pixel_format.h"\r
 \r
 #include <memory>\r
similarity index 91%
rename from core/mixer/image/image_mixer.h
rename to mixer/image/image_mixer.h
index 88b7ebfbe2c154e22dde2e0c31caace94275672c..21fa3cf46abed0baeacdda234399d127c9b19b4c 100644 (file)
@@ -2,7 +2,7 @@
 \r
 #include "../gpu/host_buffer.h"\r
 \r
-#include "../../video_format.h"\r
+#include <core/video_format.h>\r
 \r
 #include <boost/tuple/tuple.hpp>\r
 #include <boost/thread/future.hpp>\r
diff --git a/mixer/image/image_transform.cpp b/mixer/image/image_transform.cpp
new file mode 100644 (file)
index 0000000..bfa73e5
--- /dev/null
@@ -0,0 +1,113 @@
+#include "../../StdAfx.h"\r
+\r
+#include "image_transform.h"\r
+\r
+namespace caspar { namespace core {\r
+               \r
+image_transform::image_transform() \r
+       : opacity_(1.0)\r
+       , gain_(1.0)\r
+       , mode_(video_mode::invalid)\r
+{\r
+       std::fill(fill_translation_.begin(), fill_translation_.end(), 0.0);\r
+       std::fill(fill_scale_.begin(), fill_scale_.end(), 1.0);\r
+       std::fill(key_translation_.begin(), key_translation_.end(), 0.0);\r
+       std::fill(key_scale_.begin(), key_scale_.end(), 1.0);\r
+}\r
+\r
+void image_transform::set_opacity(double value)\r
+{\r
+       opacity_ = value;\r
+}\r
+\r
+double image_transform::get_opacity() const\r
+{\r
+       return opacity_;\r
+}\r
+\r
+void image_transform::set_gain(double value)\r
+{\r
+       gain_ = value;\r
+}\r
+\r
+double image_transform::get_gain() const\r
+{\r
+       return gain_;\r
+}\r
+\r
+void image_transform::set_image_translation(double x, double y)\r
+{\r
+       fill_translation_[0] = x;\r
+       fill_translation_[1] = y;\r
+}\r
+\r
+void image_transform::set_image_scale(double x, double y)\r
+{\r
+       fill_scale_[0] = x;\r
+       fill_scale_[1] = y;     \r
+}\r
+\r
+std::array<double, 2> image_transform::get_image_translation() const\r
+{\r
+       return fill_translation_;\r
+}\r
+\r
+std::array<double, 2> image_transform::get_image_scale() const\r
+{\r
+       return fill_scale_;\r
+}\r
+\r
+void image_transform::set_mask_translation(double x, double y)\r
+{\r
+       key_translation_[0] = x;\r
+       key_translation_[1] = y;\r
+}\r
+\r
+void image_transform::set_mask_scale(double x, double y)\r
+{\r
+       key_scale_[0] = x;\r
+       key_scale_[1] = y;      \r
+}\r
+\r
+std::array<double, 2> image_transform::get_mask_translation() const\r
+{\r
+       return key_translation_;\r
+}\r
+\r
+std::array<double, 2> image_transform::get_mask_scale() const\r
+{\r
+       return key_scale_;\r
+}\r
+\r
+void image_transform::set_mode(video_mode::type mode)\r
+{\r
+       mode_ = mode;\r
+}\r
+\r
+video_mode::type image_transform::get_mode() const\r
+{\r
+       return mode_;\r
+}\r
+\r
+image_transform& image_transform::operator*=(const image_transform &other)\r
+{\r
+       opacity_ *= other.opacity_;\r
+       mode_ = other.mode_;\r
+       gain_ *= other.gain_;\r
+       fill_translation_[0] += other.fill_translation_[0]*fill_scale_[0];\r
+       fill_translation_[1] += other.fill_translation_[1]*fill_scale_[1];\r
+       fill_scale_[0] *= other.fill_scale_[0];\r
+       fill_scale_[1] *= other.fill_scale_[1];\r
+       key_translation_[0] += other.key_translation_[0]*key_scale_[0];\r
+       key_translation_[1] += other.key_translation_[1]*key_scale_[1];\r
+       key_scale_[0] *= other.key_scale_[0];\r
+       key_scale_[1] *= other.key_scale_[1];\r
+       return *this;\r
+}\r
+\r
+const image_transform image_transform::operator*(const image_transform &other) const\r
+{\r
+       return image_transform(*this) *= other;\r
+}\r
+\r
+}}
\ No newline at end of file
diff --git a/mixer/image/image_transform.h b/mixer/image/image_transform.h
new file mode 100644 (file)
index 0000000..bd9f116
--- /dev/null
@@ -0,0 +1,57 @@
+#pragma once\r
+\r
+#include "../gpu/host_buffer.h"\r
+\r
+#include <core/video_format.h>\r
+\r
+#include <boost/tuple/tuple.hpp>\r
+#include <boost/thread/future.hpp>\r
+#include <boost/noncopyable.hpp>\r
+\r
+#include <memory>\r
+#include <array>\r
+\r
+namespace caspar { namespace core {\r
+\r
+struct pixel_format_desc;\r
+       \r
+class image_transform \r
+{\r
+public:\r
+\r
+       image_transform();\r
+\r
+       void set_opacity(double value);\r
+       double get_opacity() const;\r
+\r
+       void set_gain(double value);\r
+       double get_gain() const;\r
+       \r
+       void set_image_translation(double x, double y);\r
+       std::array<double, 2> get_image_translation() const;\r
+\r
+       void set_image_scale(double x, double y);\r
+       std::array<double, 2> get_image_scale() const;\r
+       \r
+       void set_mask_translation(double x, double y);\r
+       std::array<double, 2> get_mask_translation() const;\r
+\r
+       void set_mask_scale(double x, double y);\r
+       std::array<double, 2> get_mask_scale() const;\r
+\r
+       void set_mode(video_mode::type mode);\r
+       video_mode::type get_mode() const;\r
+\r
+       image_transform& operator*=(const image_transform &other);\r
+       const image_transform operator*(const image_transform &other) const;\r
+private:\r
+       double opacity_;\r
+       double gain_;\r
+       std::array<double, 2> fill_translation_; \r
+       std::array<double, 2> fill_scale_; \r
+       std::array<double, 2> key_translation_; \r
+       std::array<double, 2> key_scale_; \r
+       video_mode::type mode_;\r
+};\r
+\r
+}}
\ No newline at end of file
index 3565e17e990b485511800608cd264376e3e66587..a412e806f6374eeb44a71ebc2a5688502b9f0120 100644 (file)
 \r
 #include "AMCPCommandsImpl.h"\r
 #include "AMCPProtocolStrategy.h"\r
+\r
 #include "../media.h"\r
 \r
-#include <core/mixer/image/image_transform.h>\r
-#include <core/mixer/audio/audio_transform.h>\r
+#include <common/env.h>\r
 \r
 #include <core/producer/frame_producer.h>\r
 #include <core/video_format.h>\r
@@ -33,7 +33,8 @@
 #include <core/producer/transition/transition_producer.h>\r
 #include <core/producer/flash/cg_producer.h>\r
 \r
-#include <common/env.h>\r
+#include <mixer/image/image_transform.h>\r
+#include <mixer/audio/audio_transform.h>\r
 \r
 #include <algorithm>\r
 #include <locale>\r
@@ -178,14 +179,14 @@ bool MixerCommand::DoExecute()
                {\r
                        if(_parameters[1] == L"OPACITY")\r
                        {\r
-                               double value = boost::lexical_cast<double>(_parameters[2]);\r
+                               double value = boost::lexical_cast<double>(_parameters.at(2));\r
                                auto transform = GetChannel()->mixer().get_image_transform(GetLayerIndex());\r
                                transform.set_opacity(value);\r
                                GetChannel()->mixer().set_image_transform(GetLayerIndex(), std::move(transform));\r
                        }\r
                        else if(_parameters[1] == L"GAIN")\r
                        {\r
-                               double value = boost::lexical_cast<double>(_parameters[2]);\r
+                               double value = boost::lexical_cast<double>(_parameters.at(2));\r
                                auto transform = GetChannel()->mixer().get_image_transform(GetLayerIndex());\r
                                transform.set_gain(value);\r
                                GetChannel()->mixer().set_image_transform(GetLayerIndex(), std::move(transform));\r
@@ -199,6 +200,8 @@ bool MixerCommand::DoExecute()
                                auto transform = GetChannel()->mixer().get_image_transform(GetLayerIndex());\r
                                transform.set_image_translation(x, y);\r
                                transform.set_image_scale(x_s, y_s);\r
+                               transform.set_mask_translation(0.0, 0.0);\r
+                               transform.set_mask_scale(1.0, 1.0);\r
                                GetChannel()->mixer().set_image_transform(GetLayerIndex(), std::move(transform));\r
                        }\r
                        else if(_parameters[1] == L"CLIP_RECT")\r
@@ -208,6 +211,8 @@ bool MixerCommand::DoExecute()
                                double x_s      = boost::lexical_cast<double>(_parameters.at(4));\r
                                double y_s      = boost::lexical_cast<double>(_parameters.at(5));\r
                                auto transform = GetChannel()->mixer().get_image_transform(GetLayerIndex());\r
+                               transform.set_image_translation(0.0, 0.0);\r
+                               transform.set_image_scale(1.0, 1.0);\r
                                transform.set_mask_translation(x, y);\r
                                transform.set_mask_scale(x_s, y_s);\r
                                GetChannel()->mixer().set_image_transform(GetLayerIndex(), std::move(transform));\r