]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: Decoupled mixer project.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Wed, 9 Mar 2011 13:05:08 +0000 (13:05 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Wed, 9 Mar 2011 13:05:08 +0000 (13:05 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@543 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

59 files changed:
core/channel.cpp
core/consumer/frame/read_frame.h [new file with mode: 0644]
core/core.vcxproj
core/core.vcxproj.filters
core/format/video_format.cpp [deleted file]
core/format/video_format.h [deleted file]
core/producer/color/color_producer.cpp
core/producer/frame/audio_transform.cpp [moved from mixer/audio/audio_transform.cpp with 92% similarity]
core/producer/frame/audio_transform.h [moved from mixer/audio/audio_transform.h with 100% similarity]
core/producer/frame/basic_frame.cpp [moved from mixer/frame/basic_frame.cpp with 92% similarity]
core/producer/frame/basic_frame.h [moved from mixer/frame/basic_frame.h with 90% similarity]
core/producer/frame/frame_factory.h [moved from mixer/frame/frame_factory.h with 90% similarity]
core/producer/frame/frame_visitor.h [moved from mixer/frame/frame_visitor.h with 100% similarity]
core/producer/frame/image_transform.cpp [moved from mixer/image/image_transform.cpp with 95% similarity]
core/producer/frame/image_transform.h [moved from mixer/image/image_transform.h with 93% similarity]
core/producer/frame/pixel_format.h [moved from mixer/frame/pixel_format.h with 100% similarity]
core/producer/frame/write_frame.h [new file with mode: 0644]
core/producer/frame_producer.h
core/producer/frame_producer_device.cpp
core/producer/layer.cpp
core/producer/transition/transition_producer.cpp
core/video_format.cpp [deleted file]
core/video_format.h [deleted file]
mixer/audio/audio_mixer.cpp
mixer/audio/audio_mixer.h
mixer/frame_mixer_device.cpp
mixer/frame_mixer_device.h
mixer/gpu/gpu_read_frame.cpp [moved from mixer/frame/read_frame.cpp with 57% similarity]
mixer/gpu/gpu_read_frame.h [moved from mixer/frame/read_frame.h with 68% similarity]
mixer/gpu/gpu_write_frame.cpp [moved from mixer/frame/write_frame.cpp with 52% similarity]
mixer/gpu/gpu_write_frame.h [moved from mixer/frame/write_frame.h with 65% similarity]
mixer/image/image_kernel.cpp
mixer/image/image_kernel.h
mixer/image/image_mixer.cpp
mixer/image/image_mixer.h
mixer/mixer.vcxproj
mixer/mixer.vcxproj.filters
modules/bluefish/bluefish.vcxproj
modules/bluefish/consumer/bluefish_consumer.cpp
modules/decklink/consumer/decklink_consumer.cpp
modules/decklink/decklink.vcxproj
modules/decklink/interop/DeckLinkAPI_h.h
modules/decklink/interop/DeckLinkAPI_i.c
modules/decklink/producer/decklink_producer.cpp
modules/ffmpeg/consumer/ffmpeg_consumer.cpp
modules/ffmpeg/ffmpeg.vcxproj
modules/ffmpeg/producer/ffmpeg_producer.cpp
modules/ffmpeg/producer/video/video_decoder.cpp
modules/flash/flash.vcxproj
modules/flash/producer/flash_producer.cpp
modules/image/image.vcxproj
modules/image/producer/image_producer.cpp
modules/oal/consumer/oal_consumer.cpp
modules/oal/oal.vcxproj
modules/ogl/consumer/ogl_consumer.cpp
modules/ogl/ogl.vcxproj
modules/silverlight/producer/silverlight_producer.cpp
modules/silverlight/silverlight.vcxproj
protocol/amcp/AMCPCommandsImpl.cpp

index 4323156057919687b24228f89e322be33957509c..8df4c01e8633930869f2324b25a6a2046c36c4ef 100644 (file)
@@ -5,10 +5,6 @@
 #include "consumer/frame_consumer_device.h"\r
 #include "mixer/frame_mixer_device.h"\r
 #include "producer/frame_producer_device.h"\r
-\r
-#include "mixer/frame/basic_frame.h"\r
-#include "mixer/frame_mixer_device.h"\r
-\r
 #include "producer/layer.h"\r
 \r
 #include <common/concurrency/executor.h>\r
diff --git a/core/consumer/frame/read_frame.h b/core/consumer/frame/read_frame.h
new file mode 100644 (file)
index 0000000..422f099
--- /dev/null
@@ -0,0 +1,25 @@
+#pragma once\r
+\r
+#include <boost/noncopyable.hpp>\r
+#include <boost/range/iterator_range.hpp>\r
+\r
+#include <memory>\r
+#include <vector>\r
+\r
+#include <common/memory/safe_ptr.h>\r
+\r
+namespace caspar { namespace core {\r
+       \r
+class read_frame\r
+{\r
+public:\r
+       virtual const boost::iterator_range<const unsigned char*> image_data() const {return boost::iterator_range<const unsigned char*>();}\r
+       virtual const boost::iterator_range<const short*> audio_data() const {return boost::iterator_range<const short*>();}\r
+\r
+       static safe_ptr<const read_frame> empty()\r
+       {\r
+               return safe_ptr<const read_frame>();\r
+       }\r
+};\r
+\r
+}}
\ No newline at end of file
index 0529ec7c103ad8413255d9df89725d594ec1453a..68caa84d9b48d0bdbd46496837f276cd126412ec 100644 (file)
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <ClInclude Include="channel.h" />\r
+    <ClInclude Include="consumer\frame\read_frame.h" />\r
     <ClInclude Include="consumer\frame_consumer_device.h" />\r
     <ClInclude Include="consumer\frame_consumer.h" />\r
     <ClInclude Include="producer\color\color_producer.h" />\r
+    <ClInclude Include="producer\frame\audio_transform.h" />\r
+    <ClInclude Include="producer\frame\basic_frame.h" />\r
+    <ClInclude Include="producer\frame\frame_factory.h" />\r
+    <ClInclude Include="producer\frame\frame_visitor.h" />\r
+    <ClInclude Include="producer\frame\image_transform.h" />\r
+    <ClInclude Include="producer\frame\pixel_format.h" />\r
+    <ClInclude Include="producer\frame\write_frame.h" />\r
     <ClInclude Include="producer\frame_producer.h" />\r
     <ClInclude Include="producer\frame_producer_device.h" />\r
     <ClInclude Include="producer\layer.h" />\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
+    <ClCompile Include="producer\frame\audio_transform.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\frame\basic_frame.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\frame\image_transform.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+    </ClCompile>\r
     <ClCompile Include="producer\frame_producer.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">Create</PrecompiledHeader>\r
     </ClCompile>\r
-    <ClCompile Include="video_format.cpp" />\r
+    <ClCompile Include="video_format.cpp">\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">StdAfx.h</PrecompiledHeaderFile>\r
+    </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ProjectReference Include="..\common\common.vcxproj">\r
       <Project>{02308602-7fe0-4253-b96e-22134919f56a}</Project>\r
     </ProjectReference>\r
-    <ProjectReference Include="..\mixer\mixer.vcxproj">\r
-      <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
-    </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
   <ImportGroup Label="ExtensionTargets">\r
index 50e064f9746863437cee2c5cbf1e9c54da15d514..94010115aee5bc7e3a7ecbc966cb016f31ec8c6d 100644 (file)
     <Filter Include="producer\color">\r
       <UniqueIdentifier>{78b16c14-bf29-4511-9122-684ff513dbf5}</UniqueIdentifier>\r
     </Filter>\r
+    <Filter Include="producer\frame">\r
+      <UniqueIdentifier>{b19721c1-8dd1-45fb-b9e3-212b548ebbb6}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="consumer\frame">\r
+      <UniqueIdentifier>{fc8d2ce0-e849-4f8e-83bf-494ab4455b80}</UniqueIdentifier>\r
+    </Filter>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="producer\transition\transition_producer.h">\r
       <Filter>producer\transition</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="video_format.h" />\r
-    <ClInclude Include="producer\layer.h" />\r
     <ClInclude Include="channel.h" />\r
     <ClInclude Include="StdAfx.h" />\r
     <ClInclude Include="consumer\frame_consumer_device.h">\r
     <ClInclude Include="producer\color\color_producer.h">\r
       <Filter>producer\color</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="producer\layer.h">\r
+      <Filter>producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\frame\audio_transform.h">\r
+      <Filter>producer\frame</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\frame\basic_frame.h">\r
+      <Filter>producer\frame</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\frame\frame_factory.h">\r
+      <Filter>producer\frame</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\frame\frame_visitor.h">\r
+      <Filter>producer\frame</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\frame\image_transform.h">\r
+      <Filter>producer\frame</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\frame\pixel_format.h">\r
+      <Filter>producer\frame</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\frame\write_frame.h">\r
+      <Filter>producer\frame</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="consumer\frame\read_frame.h">\r
+      <Filter>consumer\frame</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="video_format.h" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClCompile Include="producer\transition\transition_producer.cpp">\r
       <Filter>producer\transition</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="producer\layer.cpp" />\r
     <ClCompile Include="channel.cpp" />\r
     <ClCompile Include="StdAfx.cpp" />\r
-    <ClCompile Include="video_format.cpp" />\r
     <ClCompile Include="consumer\frame_consumer.cpp">\r
       <Filter>consumer</Filter>\r
     </ClCompile>\r
     <ClCompile Include="producer\color\color_producer.cpp">\r
       <Filter>producer\color</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="producer\layer.cpp">\r
+      <Filter>producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\frame\basic_frame.cpp">\r
+      <Filter>producer\frame</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\frame\image_transform.cpp">\r
+      <Filter>producer\frame</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\frame\audio_transform.cpp">\r
+      <Filter>producer\frame</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="video_format.cpp" />\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file
diff --git a/core/format/video_format.cpp b/core/format/video_format.cpp
deleted file mode 100644 (file)
index 8ff8bd0..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*\r
-* copyright (c) 2010 Sveriges Television AB <info@casparcg.com>\r
-*\r
-*  This file is part of CasparCG.\r
-*\r
-*    CasparCG is free software: you can redistribute it and/or modify\r
-*    it under the terms of the GNU General Public License as published by\r
-*    the Free Software Foundation, either version 3 of the License, or\r
-*    (at your option) any later version.\r
-*\r
-*    CasparCG is distributed in the hope that it will be useful,\r
-*    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-*    GNU General Public License for more details.\r
-\r
-*    You should have received a copy of the GNU General Public License\r
-*    along with CasparCG.  If not, see <http://www.gnu.org/licenses/>.\r
-*\r
-*/\r
\r
-#include "..\StdAfx.h"\r
-\r
-#include "video_format.h"\r
-\r
-#include <boost/algorithm/string.hpp>\r
-\r
-#include <array>\r
-\r
-#define DEFINE_VIDEOFORMATDESC(w, h, m, f, s, fmt) { (fmt), (w), (h), (m), (m == video_mode::progressive ? f : f/2.0), (1.0/(m == video_mode::progressive ? f : f/2.0)), ((w)*(h)*4), (s) }\r
-\r
-namespace caspar { namespace core {\r
-       \r
-const video_format_desc format_descs[video_format::invalid] =  \r
-{                                                                         \r
-       DEFINE_VIDEOFORMATDESC(720,  576,  video_mode::upper,                   50,                     TEXT("PAL"),            video_format::pal               ), \r
-       //DEFINE_VIDEOFORMATDESC(720,  486,  video_mode::lower,                 60/1.001,       TEXT("NTSC"),           video_format::ntsc              ), \r
-       //DEFINE_VIDEOFORMATDESC(720,  576,  video_mode::progressive,           25,                     TEXT("576p2500"),       video_format::x576p2500 ),\r
-       DEFINE_VIDEOFORMATDESC(1280, 720,  video_mode::progressive,             25,                     TEXT("720p2500"),       video_format::x720p2500 ), \r
-       DEFINE_VIDEOFORMATDESC(1280, 720,  video_mode::progressive,             50,                     TEXT("720p5000"),       video_format::x720p5000 ), \r
-       //DEFINE_VIDEOFORMATDESC(1280, 720,  video_mode::progressive,   60/1.001,       TEXT("720p5994"),       video_format::x720p5994 ),\r
-       //DEFINE_VIDEOFORMATDESC(1280, 720,  video_mode::progressive,   60,                     TEXT("720p6000"),       video_format::x720p6000 ),\r
-       //DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::progressive,   24/1.001,       TEXT("1080p2397"),      video_format::x1080p2397),\r
-       //DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::progressive,   24,                     TEXT("1080p2400"),      video_format::x1080p2400),\r
-       DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::upper,                   50,                     TEXT("1080i5000"),      video_format::x1080i5000),\r
-       //DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::upper,                 60/1.001,       TEXT("1080i5994"),      video_format::x1080i5994),\r
-       //DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::upper,                 60,                     TEXT("1080i6000"),      video_format::x1080i6000),\r
-       DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::progressive,             25,                     TEXT("1080p2500"),      video_format::x1080p2500),\r
-       //DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::progressive,   30/1.001,       TEXT("1080p2997"),      video_format::x1080p2997),\r
-       //DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::progressive,   30,                     TEXT("1080p3000"),      video_format::x1080p3000),\r
-       DEFINE_VIDEOFORMATDESC(0,               0, video_mode::invalid,                 -1,                     TEXT("invalid"),        video_format::invalid)\r
-};\r
-\r
-const video_format_desc& video_format_desc::get(video_format::type format)     \r
-{\r
-       return format_descs[format];\r
-}\r
-\r
-const video_format_desc& video_format_desc::get(const std::wstring& name)      \r
-{\r
-       for(int n = 0; n < video_format::invalid; ++n)\r
-       {\r
-               if(boost::iequals(format_descs[n].name, name))\r
-                       return format_descs[n];\r
-       }\r
-       return format_descs[video_format::invalid];\r
-}\r
-\r
-}}\r
-\r
diff --git a/core/format/video_format.h b/core/format/video_format.h
deleted file mode 100644 (file)
index 22189ff..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#pragma once\r
-\r
-#include <string>\r
-\r
-#include "../../common/compiler/vs/disable_silly_warnings.h"\r
-\r
-namespace caspar { namespace core {\r
-       \r
-struct video_format \r
-{ \r
-       enum type\r
-       {\r
-               pal = 0,\r
-               //ntsc,\r
-               //x576p2500,\r
-               x720p2500,\r
-               x720p5000,\r
-               //x720p5994,\r
-               //x720p6000,\r
-               //x1080p2397,\r
-               //x1080p2400,\r
-               x1080i5000,\r
-               //x1080i5994,\r
-               //x1080i6000,\r
-               x1080p2500,\r
-               //x1080p2997,\r
-               //x1080p3000,\r
-               count,\r
-               invalid\r
-       };\r
-};\r
-\r
-struct video_mode \r
-{ \r
-       enum type\r
-       {\r
-               progressive,\r
-               lower,\r
-               upper,\r
-               count,\r
-               invalid\r
-       };\r
-};\r
-\r
-struct video_format_desc\r
-{\r
-       video_format::type              format;         // video output format\r
-\r
-       size_t                                  width;          // output frame width\r
-       size_t                                  height;         // output frame height\r
-       video_mode::type                mode;           // progressive, interlaced upper field first, interlaced lower field first\r
-       double                                  fps;            // actual framerate, e.g. i50 = 25 fps, p50 = 50 fps\r
-       double                                  interval;       // time between frames\r
-       size_t                                  size;           // output frame size in bytes \r
-       std::wstring                    name;           // name of output format\r
-\r
-       static const video_format_desc& get(video_format::type format);\r
-       static const video_format_desc& get(const std::wstring& name);\r
-};\r
-\r
-inline bool operator==(const video_format_desc& rhs, const video_format_desc& lhs)\r
-{\r
-       return rhs.format == lhs.format;\r
-}\r
-\r
-inline bool operator!=(const video_format_desc& rhs, const video_format_desc& lhs)\r
-{\r
-       return !(rhs == lhs);\r
-}\r
-\r
-inline std::wostream& operator<<(std::wostream& out, const video_format_desc& format_desc)\r
-{\r
-       out << format_desc.name.c_str();\r
-       return out;\r
-}\r
-\r
-}}
\ No newline at end of file
index 83fed4a7071e3e8af7fc41597c40e581941ed345..27d85f0430a02a60806afeb34f60070414a0c94d 100644 (file)
@@ -22,7 +22,7 @@
 \r
 #include "color_producer.h"\r
 \r
-#include <mixer/frame/write_frame.h>\r
+#include <core/producer/frame/write_frame.h>\r
 \r
 #include <sstream>\r
 \r
similarity index 92%
rename from mixer/audio/audio_transform.cpp
rename to core/producer/frame/audio_transform.cpp
index bd4e1fd24af5748479111ec244b0fbf124db74b1..8ca5083a8f21921b14c6736143c1e92dee21a718 100644 (file)
@@ -1,4 +1,4 @@
-#include "../stdafx.h"\r
+#include "../../stdafx.h"\r
 \r
 #include "audio_transform.h"\r
 \r
similarity index 92%
rename from mixer/frame/basic_frame.cpp
rename to core/producer/frame/basic_frame.cpp
index 7bda1cdf7eacc8e05f810ce595f3d06dab6f9ccf..6aa7c4fca16900a6e1a1e1e7d54f2df43ae77048 100644 (file)
@@ -1,14 +1,11 @@
-#include "../stdafx.h"\r
+#include "../../stdafx.h"\r
 \r
 #include "basic_frame.h"\r
 \r
-#include "../image/image_transform.h"\r
-#include "../image/image_mixer.h"\r
-#include "../audio/audio_mixer.h"\r
-#include "../audio/audio_transform.h"\r
+#include "image_transform.h"\r
+#include "audio_transform.h"\r
 #include "pixel_format.h"\r
-\r
-#include <core/video_format.h>\r
+#include "../../video_format.h"\r
 \r
 #include <boost/range/algorithm.hpp>\r
 \r
similarity index 90%
rename from mixer/frame/basic_frame.h
rename to core/producer/frame/basic_frame.h
index e6d815705ef03fdd32956410386856cd971785c2..e12fce9caa666b382d0445de48a6c5004cb66645 100644 (file)
@@ -1,11 +1,9 @@
 #pragma once\r
 \r
-#include "../fwd.h"\r
-\r
 #include "frame_visitor.h"\r
+#include "../../video_format.h"\r
 \r
 #include <common/memory/safe_ptr.h>\r
-#include <core/video_format.h>\r
 \r
 #include <boost/noncopyable.hpp>\r
 #include <boost/range/iterator_range.hpp>\r
@@ -23,7 +21,6 @@ class basic_frame
 {\r
 public:\r
        basic_frame();  \r
-       basic_frame(safe_ptr<write_frame>&& image, std::vector<short>&& audio);\r
        basic_frame(const safe_ptr<basic_frame>& frame);\r
        basic_frame(safe_ptr<basic_frame>&& frame);\r
        basic_frame(const std::vector<safe_ptr<basic_frame>>& frames);\r
similarity index 90%
rename from mixer/frame/frame_factory.h
rename to core/producer/frame/frame_factory.h
index 31cb26624c76e3bc293878b23546359334fce721..53b5ddced3b0f3b0937a655bd86ade4e5a3c971b 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "../fwd.h"\r
+#include "write_frame.h"\r
 \r
 #include "pixel_format.h"\r
+#include "../../video_format.h"\r
 \r
 #include <common/memory/safe_ptr.h>\r
 \r
-#include <core/video_format.h>\r
+#include <boost/noncopyable.hpp>\r
 \r
 namespace caspar { namespace core {\r
                \r
similarity index 95%
rename from mixer/image/image_transform.cpp
rename to core/producer/frame/image_transform.cpp
index 8a9fe2385efa93ef90a659664c135a2d9beeb1c2..d07c5d05c39e0926bcafb58c40be9ddb3f8d8710 100644 (file)
@@ -1,4 +1,4 @@
-#include "../stdafx.h"\r
+#include "../../stdafx.h"\r
 \r
 #include "image_transform.h"\r
 \r
similarity index 93%
rename from mixer/image/image_transform.h
rename to core/producer/frame/image_transform.h
index 1c2f7bf5f13366cc1ac9232dc7d8d83a8cebead6..391473caddc6239a9556fe650f77d485e83f7d5e 100644 (file)
@@ -1,7 +1,5 @@
 #pragma once\r
 \r
-#include "../gpu/host_buffer.h"\r
-\r
 #include <core/video_format.h>\r
 \r
 #include <boost/tuple/tuple.hpp>\r
diff --git a/core/producer/frame/write_frame.h b/core/producer/frame/write_frame.h
new file mode 100644 (file)
index 0000000..7eeab25
--- /dev/null
@@ -0,0 +1,34 @@
+#pragma once\r
+\r
+#include "basic_frame.h"\r
+\r
+#include "../../video_format.h"\r
+\r
+#include <boost/noncopyable.hpp>\r
+#include <boost/range/iterator_range.hpp>\r
+\r
+#include <memory>\r
+#include <vector>\r
+\r
+namespace caspar { namespace core {\r
+       \r
+struct pixel_format_desc;\r
+\r
+class write_frame : public basic_frame, boost::noncopyable\r
+{\r
+public:                        \r
+       virtual boost::iterator_range<unsigned char*> image_data(size_t plane_index = 0) = 0;\r
+       virtual std::vector<short>& audio_data() = 0;\r
+       \r
+       virtual const boost::iterator_range<const unsigned char*> image_data(size_t plane_index = 0) const = 0;\r
+       virtual const boost::iterator_range<const short*> audio_data() const = 0;\r
+\r
+       virtual void accept(frame_visitor& visitor) = 0;\r
+\r
+       virtual void tag(int tag) = 0;\r
+       virtual int tag() const = 0;\r
+};\r
+typedef std::shared_ptr<write_frame> write_frame_impl_ptr;\r
+\r
+\r
+}}
\ No newline at end of file
index befe664c85be91d6ca0ed708788bdd49a6ccc86d..4942c6f96d20d09f0e4e62370ef3a55ff2f54ea4 100644 (file)
@@ -22,8 +22,8 @@
 #include <common/memory/safe_ptr.h>\r
 #include <common/utility/printer.h>\r
 \r
-#include <mixer/frame/basic_frame.h>\r
-#include <mixer/frame/frame_factory.h>\r
+#include "../producer/frame/basic_frame.h"\r
+#include "../producer/frame/frame_factory.h"\r
 \r
 #include <boost/noncopyable.hpp>\r
 \r
index ce239f45b35c2742d3ee236175fe528214a73104..eafb4686d2634cb3c417978d957a92dc0a83c344 100644 (file)
@@ -2,8 +2,8 @@
 \r
 #include "frame_producer_device.h"\r
 \r
-#include <mixer/frame/basic_frame.h>\r
-#include <mixer/frame/frame_factory.h>\r
+#include <core/producer/frame/basic_frame.h>\r
+#include <core/producer/frame/frame_factory.h>\r
 \r
 #include "layer.h"\r
 \r
index e072b13c3e5e141e5fbf6b270a7236b7e9307da0..e2b7f5929a46790bcc9377bf5deed94686e6cc9b 100644 (file)
@@ -9,10 +9,8 @@
 #include <common/utility/assert.h>\r
 #include <common/utility/printer.h>\r
 \r
-#include <mixer/frame/basic_frame.h>\r
-#include <mixer/image/image_mixer.h>\r
-#include <mixer/audio/audio_mixer.h>\r
-#include <mixer/audio/audio_transform.h>\r
+#include "../producer/frame/basic_frame.h"\r
+#include "../producer/frame/audio_transform.h"\r
 \r
 #include <tbb/spin_mutex.h>\r
 \r
index 855c0679748682daedbd5442a56f67b85a6ff7e3..1569019fa32289ea416e5a4b28b4cfb59387b028 100644 (file)
 \r
 #include <core/video_format.h>\r
 \r
-#include <mixer/frame/basic_frame.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/producer/frame/basic_frame.h>\r
+#include <core/producer/frame/image_transform.h>\r
+#include <core/producer/frame/audio_transform.h>\r
 \r
 namespace caspar { namespace core {    \r
 \r
diff --git a/core/video_format.cpp b/core/video_format.cpp
deleted file mode 100644 (file)
index 09217a8..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*\r
-* copyright (c) 2010 Sveriges Television AB <info@casparcg.com>\r
-*\r
-*  This file is part of CasparCG.\r
-*\r
-*    CasparCG is free software: you can redistribute it and/or modify\r
-*    it under the terms of the GNU General Public License as published by\r
-*    the Free Software Foundation, either version 3 of the License, or\r
-*    (at your option) any later version.\r
-*\r
-*    CasparCG is distributed in the hope that it will be useful,\r
-*    but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-*    GNU General Public License for more details.\r
-\r
-*    You should have received a copy of the GNU General Public License\r
-*    along with CasparCG.  If not, see <http://www.gnu.org/licenses/>.\r
-*\r
-*/\r
\r
-#include "StdAfx.h"\r
-\r
-#include "video_format.h"\r
-\r
-#include <boost/algorithm/string.hpp>\r
-\r
-#include <array>\r
-\r
-#define DEFINE_VIDEOFORMATDESC(w, h, m, f, s, fmt) { (fmt), (w), (h), (m), (m == video_mode::progressive ? f : f/2.0), (1.0/(m == video_mode::progressive ? f : f/2.0)), ((w)*(h)*4), (s)}\r
-\r
-namespace caspar { namespace core {\r
-       \r
-const video_format_desc format_descs[video_format::count] =  \r
-{                                                                         \r
-       DEFINE_VIDEOFORMATDESC(720,  576,  video_mode::upper,                   50,                     TEXT("pal"),            video_format::pal               ), \r
-       DEFINE_VIDEOFORMATDESC(720,  486,  video_mode::lower,                   60/1.001,       TEXT("ntsc"),           video_format::ntsc              ), \r
-       DEFINE_VIDEOFORMATDESC(720,  576,  video_mode::progressive,             25,                     TEXT("576p2500"),       video_format::x576p2500 ),\r
-       DEFINE_VIDEOFORMATDESC(1280, 720,  video_mode::progressive,             25,                     TEXT("720p2500"),       video_format::x720p2500 ), \r
-       DEFINE_VIDEOFORMATDESC(1280, 720,  video_mode::progressive,             50,                     TEXT("720p5000"),       video_format::x720p5000 ), \r
-       DEFINE_VIDEOFORMATDESC(1280, 720,  video_mode::progressive,             60/1.001,       TEXT("720p5994"),       video_format::x720p5994 ),\r
-       DEFINE_VIDEOFORMATDESC(1280, 720,  video_mode::progressive,             60,                     TEXT("720p6000"),       video_format::x720p6000 ),\r
-       DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::progressive,             24/1.001,       TEXT("1080p2397"),      video_format::x1080p2397),\r
-       DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::progressive,             24,                     TEXT("1080p2400"),      video_format::x1080p2400),\r
-       DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::upper,                   50,                     TEXT("1080i5000"),      video_format::x1080i5000),\r
-       DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::upper,                   60/1.001,       TEXT("1080i5994"),      video_format::x1080i5994),\r
-       DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::upper,                   60,                     TEXT("1080i6000"),      video_format::x1080i6000),\r
-       DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::progressive,             25,                     TEXT("1080p2500"),      video_format::x1080p2500),\r
-       DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::progressive,             30/1.001,       TEXT("1080p2997"),      video_format::x1080p2997),\r
-       DEFINE_VIDEOFORMATDESC(1920, 1080, video_mode::progressive,             30,                     TEXT("1080p3000"),      video_format::x1080p3000),\r
-       DEFINE_VIDEOFORMATDESC(0,               0, video_mode::invalid,                 -1,                     TEXT("invalid"),        video_format::invalid   )\r
-};\r
-\r
-const video_format_desc& video_format_desc::get(video_format::type format)     \r
-{\r
-       return format_descs[format];\r
-}\r
-\r
-const video_format_desc& video_format_desc::get(const std::wstring& name)      \r
-{\r
-       for(int n = 0; n < video_format::invalid; ++n)\r
-       {\r
-               if(boost::iequals(format_descs[n].name, name))\r
-                       return format_descs[n];\r
-       }\r
-       return format_descs[video_format::invalid];\r
-}\r
-\r
-}}\r
-\r
diff --git a/core/video_format.h b/core/video_format.h
deleted file mode 100644 (file)
index 672e18f..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#pragma once\r
-\r
-#include <string>\r
-\r
-#include <common/compiler/vs/disable_silly_warnings.h>\r
-\r
-namespace caspar { namespace core {\r
-       \r
-struct video_format \r
-{ \r
-       enum type\r
-       {\r
-               pal = 0,\r
-               ntsc,\r
-               x576p2500,\r
-               x720p2500,\r
-               x720p5000,\r
-               x720p5994,\r
-               x720p6000,\r
-               x1080p2397,\r
-               x1080p2400,\r
-               x1080i5000,\r
-               x1080i5994,\r
-               x1080i6000,\r
-               x1080p2500,\r
-               x1080p2997,\r
-               x1080p3000,\r
-               invalid,\r
-               count\r
-       };\r
-};\r
-\r
-struct video_mode \r
-{ \r
-       enum type\r
-       {\r
-               progressive,\r
-               lower,\r
-               upper,\r
-               count,\r
-               invalid\r
-       };\r
-};\r
-\r
-struct video_format_desc\r
-{\r
-       video_format::type              format;         // video output format\r
-\r
-       size_t                                  width;          // output frame width\r
-       size_t                                  height;         // output frame height\r
-       video_mode::type                mode;           // progressive, interlaced upper field first, interlaced lower field first\r
-       double                                  fps;            // actual framerate, e.g. i50 = 25 fps, p50 = 50 fps\r
-       double                                  interval;       // time between frames\r
-       size_t                                  size;           // output frame size in bytes \r
-       std::wstring                    name;           // name of output format\r
-\r
-       static const video_format_desc& get(video_format::type format);\r
-       static const video_format_desc& get(const std::wstring& name);\r
-};\r
-\r
-inline bool operator==(const video_format_desc& rhs, const video_format_desc& lhs)\r
-{\r
-       return rhs.format == lhs.format;\r
-}\r
-\r
-inline bool operator!=(const video_format_desc& rhs, const video_format_desc& lhs)\r
-{\r
-       return !(rhs == lhs);\r
-}\r
-\r
-inline std::wostream& operator<<(std::wostream& out, const video_format_desc& format_desc)\r
-{\r
-       out << format_desc.name.c_str();\r
-       return out;\r
-}\r
-\r
-}}
\ No newline at end of file
index 0c76b18c58038d6b0fb3368a7cea2305b2d7340c..d6a4e0123b6899f76eecd36ff64f66b9ae2afee6 100644 (file)
@@ -1,10 +1,10 @@
 #include "../stdafx.h"\r
 \r
 #include "audio_mixer.h"\r
-#include "audio_transform.h"\r
 \r
-#include "../frame/basic_frame.h"\r
-#include "../frame/write_frame.h"\r
+#include "../gpu/gpu_write_frame.h"\r
+\r
+#include <core/producer/frame/audio_transform.h>\r
 \r
 namespace caspar { namespace core {\r
        \r
index d8b49ede4092c4ecc6ddd9dbebdb249fef712b41..83fc5d0135e76d26276064fed1293c727198e4bb 100644 (file)
@@ -1,12 +1,14 @@
 #pragma once\r
 \r
-#include "../frame/frame_visitor.h"\r
+#include <core/producer/frame/frame_visitor.h>\r
+\r
+#include <boost/noncopyable.hpp>\r
 \r
 namespace caspar { namespace core {\r
 \r
 class audio_transform;\r
 \r
-class audio_mixer : public frame_visitor\r
+class audio_mixer : public core::frame_visitor, boost::noncopyable\r
 {\r
 public:\r
        audio_mixer();\r
index 191936b0d1f36e9c80def46e749159b50ebe200f..e5995be7a9d3bc24e4651f09bed6e6c628947be6 100644 (file)
@@ -2,12 +2,14 @@
 \r
 #include "frame_mixer_device.h"\r
 \r
+#include "gpu/gpu_read_frame.h"\r
+#include "gpu/gpu_write_frame.h"\r
+\r
+#include <core/producer/frame/audio_transform.h>\r
+#include <core/producer/frame/image_transform.h>\r
+\r
 #include "audio/audio_mixer.h"\r
-#include "audio/audio_transform.h"\r
-#include "frame/write_frame.h"\r
-#include "frame/read_frame.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
@@ -151,7 +153,7 @@ public:
 \r
                        auto image = mix_image(frames);\r
                        auto audio = mix_audio(frames);\r
-                       output_(make_safe<const read_frame>(std::move(image.get()), std::move(audio)));\r
+                       output_(make_safe<const gpu_read_frame>(std::move(image.get()), std::move(audio)));\r
 \r
                        diag_->update_value("tick-time", static_cast<float>(wait_perf_timer_.elapsed()/format_desc_.interval*0.5));\r
                        wait_perf_timer_.reset();\r
@@ -163,7 +165,7 @@ public:
                \r
        safe_ptr<write_frame> create_frame(const pixel_format_desc& desc)\r
        {\r
-               return make_safe<write_frame>(desc, image_mixer_.create_buffers(desc));\r
+               return make_safe<gpu_write_frame>(desc, image_mixer_.create_buffers(desc));\r
        }\r
                                \r
        void set_image_transform(const image_transform& transform, int mix_duration)\r
index b618d2ee8af1b4371c9d4145fbddffa56502d932..131cc703eac3ed01a9657f45d9c0aae241baf77d 100644 (file)
 \r
 #include "fwd.h"\r
 \r
-#include "frame/frame_factory.h"\r
+#include <core/video_format.h>\r
+#include <core/producer/frame/pixel_format.h>\r
+#include <core/producer/frame/frame_factory.h>\r
 \r
 #include "image/image_mixer.h"\r
 #include "audio/audio_mixer.h"\r
 \r
-#include "frame/write_frame.h"\r
-#include "frame/pixel_format.h"\r
+#include "gpu/gpu_write_frame.h"\r
 \r
 #include <common/memory/safe_ptr.h>\r
 #include <common/utility/printer.h>\r
similarity index 57%
rename from mixer/frame/read_frame.cpp
rename to mixer/gpu/gpu_read_frame.cpp
index a6bc13bc056ff5787e3a26df70cd114abc919316..a621d8f229f39a8c8a33e17f358f63a90695cbb6 100644 (file)
@@ -1,6 +1,6 @@
 #include "../stdafx.h"\r
 \r
-#include "read_frame.h"\r
+#include "gpu_read_frame.h"\r
 \r
 #include "../gpu/host_buffer.h"\r
 \r
@@ -8,7 +8,7 @@
 \r
 namespace caspar { namespace core {\r
                                                                                                                                                                                                                                                                                                                        \r
-struct read_frame::implementation : boost::noncopyable\r
+struct gpu_read_frame::implementation : boost::noncopyable\r
 {\r
        safe_ptr<const host_buffer> image_data_;\r
        std::vector<short> audio_data_;\r
@@ -19,20 +19,17 @@ public:
                , audio_data_(std::move(audio_data)){}  \r
 };\r
 \r
-read_frame::read_frame(){}\r
-read_frame::read_frame(safe_ptr<const host_buffer>&& image_data, std::vector<short>&& audio_data) : impl_(new implementation(std::move(image_data), std::move(audio_data))){}\r
+gpu_read_frame::gpu_read_frame(safe_ptr<const host_buffer>&& image_data, std::vector<short>&& audio_data) : impl_(new implementation(std::move(image_data), std::move(audio_data))){}\r
 \r
-const boost::iterator_range<const unsigned char*> read_frame::image_data() const\r
+const boost::iterator_range<const unsigned char*> gpu_read_frame::image_data() const\r
 {\r
-       if(!impl_ || !impl_->image_data_->data())\r
+       if(!impl_->image_data_->data())\r
                return boost::iterator_range<const unsigned char*>();\r
        auto ptr = static_cast<const unsigned char*>(impl_->image_data_->data());\r
        return boost::iterator_range<const unsigned char*>(ptr, ptr + impl_->image_data_->size());\r
 }\r
-const boost::iterator_range<const short*> read_frame::audio_data() const\r
+const boost::iterator_range<const short*> gpu_read_frame::audio_data() const\r
 {\r
-       if(!impl_)\r
-               return boost::iterator_range<const short*>();\r
        return boost::iterator_range<const short*>(impl_->audio_data_.data(), impl_->audio_data_.data() + impl_->audio_data_.size());\r
 }\r
 \r
similarity index 68%
rename from mixer/frame/read_frame.h
rename to mixer/gpu/gpu_read_frame.h
index 6e34431d1d0079c41f0f96d8b197c2ea3b94ecf7..5fb4c0b484512c501f700674dac37685bb362feb 100644 (file)
@@ -2,6 +2,8 @@
 \r
 #include "../gpu/host_buffer.h"        \r
 \r
+#include <core/consumer/frame/read_frame.h>\r
+\r
 #include <boost/noncopyable.hpp>\r
 #include <boost/range/iterator_range.hpp>\r
 \r
 \r
 namespace caspar { namespace core {\r
        \r
-class read_frame\r
+class gpu_read_frame : public core::read_frame\r
 {\r
 public:\r
-       read_frame();\r
-       read_frame(safe_ptr<const host_buffer>&& image_data, std::vector<short>&& audio_data);\r
+       gpu_read_frame(safe_ptr<const host_buffer>&& image_data, std::vector<short>&& audio_data);\r
 \r
        const boost::iterator_range<const unsigned char*> image_data() const;\r
        const boost::iterator_range<const short*> audio_data() const;\r
similarity index 52%
rename from mixer/frame/write_frame.cpp
rename to mixer/gpu/gpu_write_frame.cpp
index 8422052dfb1b906b8d855288b20bfd6a7ba3b36b..23494482bd2d41facf28eddec3029c522d22591d 100644 (file)
@@ -1,9 +1,8 @@
 #include "../stdafx.h"\r
 \r
-#include "write_frame.h"\r
+#include "gpu_write_frame.h"\r
 \r
-#include "basic_frame.h"\r
-#include "pixel_format.h"\r
+#include <core/producer/frame/pixel_format.h>\r
 \r
 #include "../image/image_mixer.h"\r
 #include "../audio/audio_mixer.h"\r
 \r
 namespace caspar { namespace core {\r
                                                                                                                                                                                                                                                                                                                        \r
-struct write_frame::implementation : boost::noncopyable\r
+struct gpu_write_frame::implementation : boost::noncopyable\r
 {                              \r
        std::vector<safe_ptr<host_buffer>> buffers_;\r
        std::vector<short> audio_data_;\r
        const pixel_format_desc desc_;\r
-       const int tag_;\r
+       int tag_;\r
 \r
 public:\r
        implementation(const pixel_format_desc& desc, const std::vector<safe_ptr<host_buffer>>& buffers) \r
@@ -29,7 +28,7 @@ public:
                , buffers_(buffers)\r
                , tag_(std::numeric_limits<int>::min()){}\r
        \r
-       void accept(write_frame& self, frame_visitor& visitor)\r
+       void accept(gpu_write_frame& self, frame_visitor& visitor)\r
        {\r
                visitor.begin(self);\r
                visitor.visit(self);\r
@@ -53,28 +52,28 @@ public:
        }\r
 };\r
        \r
-write_frame::write_frame(const pixel_format_desc& desc, const std::vector<safe_ptr<host_buffer>>& buffers) : impl_(new implementation(desc, buffers)){}\r
-write_frame::write_frame(write_frame&& other) : impl_(std::move(other.impl_)){}\r
-void write_frame::swap(write_frame& other){impl_.swap(other.impl_);}\r
-write_frame& write_frame::operator=(write_frame&& other)\r
+gpu_write_frame::gpu_write_frame(const pixel_format_desc& desc, const std::vector<safe_ptr<host_buffer>>& buffers) : impl_(new implementation(desc, buffers)){}\r
+gpu_write_frame::gpu_write_frame(gpu_write_frame&& other) : impl_(std::move(other.impl_)){}\r
+void gpu_write_frame::swap(gpu_write_frame& other){impl_.swap(other.impl_);}\r
+gpu_write_frame& gpu_write_frame::operator=(gpu_write_frame&& other)\r
 {\r
-       write_frame temp(std::move(other));\r
+       gpu_write_frame temp(std::move(other));\r
        temp.swap(*this);\r
        return *this;\r
 }\r
-void write_frame::accept(frame_visitor& visitor){impl_->accept(*this, visitor);}\r
-boost::iterator_range<unsigned char*> write_frame::image_data(size_t index){return impl_->image_data(index);}\r
-std::vector<short>& write_frame::audio_data() { return impl_->audio_data_; }\r
-const boost::iterator_range<const unsigned char*> write_frame::image_data(size_t index) const\r
+void gpu_write_frame::accept(frame_visitor& visitor){impl_->accept(*this, visitor);}\r
+boost::iterator_range<unsigned char*> gpu_write_frame::image_data(size_t index){return impl_->image_data(index);}\r
+std::vector<short>& gpu_write_frame::audio_data() { return impl_->audio_data_; }\r
+const boost::iterator_range<const unsigned char*> gpu_write_frame::image_data(size_t index) const\r
 {\r
        return boost::iterator_range<const unsigned char*>(impl_->image_data(index).begin(), impl_->image_data(index).end());\r
 }\r
-const boost::iterator_range<const short*> write_frame::audio_data() const\r
+const boost::iterator_range<const short*> gpu_write_frame::audio_data() const\r
 {\r
        return boost::iterator_range<const short*>(impl_->audio_data_.data(), impl_->audio_data_.data() + impl_->audio_data_.size());\r
 }\r
-void write_frame::tag(int tag) { impl_->tag_ = tag;}\r
-int write_frame::tag() const {return impl_->tag_;}\r
-const pixel_format_desc& write_frame::get_pixel_format_desc() const{return impl_->desc_;}\r
-std::vector<safe_ptr<host_buffer>>& write_frame::get_plane_buffers(){return impl_->buffers_;}\r
+void gpu_write_frame::tag(int tag) { impl_->tag_ = tag;}\r
+int gpu_write_frame::tag() const {return impl_->tag_;}\r
+const pixel_format_desc& gpu_write_frame::get_pixel_format_desc() const{return impl_->desc_;}\r
+std::vector<safe_ptr<host_buffer>>& gpu_write_frame::get_plane_buffers(){return impl_->buffers_;}\r
 }}
\ No newline at end of file
similarity index 65%
rename from mixer/frame/write_frame.h
rename to mixer/gpu/gpu_write_frame.h
index 914f195ac3397b0da3804dae2d18431236754624..93971ee4c7468232a0d7aaf4fb06494264c4e6b4 100644 (file)
@@ -2,12 +2,11 @@
 \r
 #include "../fwd.h"\r
 \r
-#include "basic_frame.h"\r
+#include <core/producer/frame/write_frame.h>\r
+#include <core/video_format.h>\r
 \r
 #include "../gpu/host_buffer.h"\r
 \r
-#include <core/video_format.h>\r
-\r
 #include <boost/noncopyable.hpp>\r
 #include <boost/range/iterator_range.hpp>\r
 \r
@@ -18,14 +17,14 @@ namespace caspar { namespace core {
        \r
 struct pixel_format_desc;\r
 \r
-class write_frame : public basic_frame, boost::noncopyable\r
+class gpu_write_frame : public core::write_frame\r
 {\r
 public:        \r
-       explicit write_frame(const pixel_format_desc& desc, const std::vector<safe_ptr<host_buffer>>& buffers);\r
-       write_frame(write_frame&& other);\r
-       write_frame& operator=(write_frame&& other);\r
+       explicit gpu_write_frame(const pixel_format_desc& desc, const std::vector<safe_ptr<host_buffer>>& buffers);\r
+       gpu_write_frame(gpu_write_frame&& other);\r
+       gpu_write_frame& operator=(gpu_write_frame&& other);\r
        \r
-       void swap(write_frame& other);\r
+       void swap(gpu_write_frame& other);\r
                \r
        boost::iterator_range<unsigned char*> image_data(size_t plane_index = 0);       \r
        std::vector<short>& audio_data();\r
@@ -45,7 +44,7 @@ private:
        struct implementation;\r
        std::shared_ptr<implementation> impl_;\r
 };\r
-typedef std::shared_ptr<write_frame> write_frame_impl_ptr;\r
+typedef std::shared_ptr<gpu_write_frame> gpu_write_frame_impl_ptr;\r
 \r
 \r
 }}
\ No newline at end of file
index 6253a90df206d24c6be8afb1a4964fdaa2a0f36d..4f2dc6e71141b910fa4a7913022b0cfae660d993 100644 (file)
@@ -2,11 +2,11 @@
 \r
 #include "image_kernel.h"\r
 \r
-#include "image_transform.h"\r
-\r
 #include <common/exception/exceptions.h>\r
 #include <common/gl/gl_check.h>\r
 \r
+#include <core/producer/frame/image_transform.h>\r
+\r
 #include <Glee.h>\r
 \r
 #include <boost/noncopyable.hpp>\r
index 0fc3db7f09f817e784b1ee088d5d38eef91aab44..6a8ba62cb81e785fa68a77bfb7c4624ffc39715d 100644 (file)
@@ -1,8 +1,7 @@
 #pragma once\r
 \r
 #include <core/video_format.h>\r
-\r
-#include "../frame/pixel_format.h"\r
+#include <core/producer/frame/pixel_format.h>\r
 \r
 #include <memory>\r
 \r
index 1142f35f079640949e0b29844ef620c74cc5a22c..6c67618f971602359a70fc4f3f00521aa5933c31 100644 (file)
@@ -2,19 +2,18 @@
 \r
 #include "image_mixer.h"\r
 #include "image_kernel.h"\r
-#include "image_transform.h"\r
-\r
-#include "../frame/basic_frame.h"\r
-#include "../frame/write_frame.h"\r
 \r
 #include "../gpu/ogl_device.h"\r
 #include "../gpu/host_buffer.h"\r
 #include "../gpu/device_buffer.h"\r
+#include "../gpu/gpu_write_frame.h"\r
 \r
 #include <common/exception/exceptions.h>\r
 #include <common/gl/gl_check.h>\r
 #include <common/concurrency/executor.h>\r
 \r
+#include <core/producer/frame/image_transform.h>\r
+\r
 #include <Glee.h>\r
 #include <SFML/Window/Context.hpp>\r
 #include <unordered_map>\r
@@ -78,8 +77,9 @@ public:
                \r
        void visit(write_frame& frame)\r
        {\r
-               auto& desc = frame.get_pixel_format_desc();\r
-               auto& buffers = frame.get_plane_buffers();\r
+               auto gpu_frame = static_cast<gpu_write_frame*>(&frame);\r
+               auto& desc = gpu_frame->get_pixel_format_desc();\r
+               auto& buffers = gpu_frame->get_plane_buffers();\r
 \r
                auto transform = transform_stack_.top();\r
                context_->begin_invoke([=]\r
index ebaff9fef88b2e1bd866ebc0c88b366027f0d1b3..d52d063252fb1a7b00ff0b7584c48ab62410dbfe 100644 (file)
@@ -1,6 +1,6 @@
 #pragma once\r
 \r
-#include "../frame/frame_visitor.h"\r
+#include <core/producer/frame/frame_visitor.h>\r
 \r
 #include "../gpu/host_buffer.h"\r
 \r
@@ -17,7 +17,7 @@ namespace caspar { namespace core {
 struct pixel_format_desc;      \r
 class image_transform;\r
 \r
-class image_mixer : public frame_visitor, boost::noncopyable\r
+class image_mixer : public core::frame_visitor, boost::noncopyable\r
 {\r
 public:\r
        image_mixer(const video_format_desc& format_desc);\r
index 5e521b70cca5c9a52b22351e8524d226256a34e6..b042b8f24e2140f73f7aaa03c0a42037bf003981 100644 (file)
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="audio\audio_transform.cpp">\r
+    <ClCompile Include="frame_mixer_device.cpp" />\r
+    <ClCompile Include="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
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="frame\basic_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="gpu\gpu_read_frame.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="frame_mixer_device.cpp" />\r
-    <ClCompile Include="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 Include="gpu\gpu_write_frame.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
     <ClCompile Include="gpu\host_buffer.cpp">\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
       <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
-    <ClCompile Include="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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
     <ClCompile Include="StdAfx.cpp">\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="audio\audio_mixer.h" />\r
-    <ClInclude Include="audio\audio_transform.h" />\r
-    <ClInclude Include="frame\basic_frame.h" />\r
-    <ClInclude Include="frame\frame_factory.h" />\r
-    <ClInclude Include="frame\frame_visitor.h" />\r
-    <ClInclude Include="frame\pixel_format.h" />\r
-    <ClInclude Include="frame\read_frame.h" />\r
-    <ClInclude Include="frame\write_frame.h" />\r
     <ClInclude Include="frame_mixer_device.h" />\r
     <ClInclude Include="fwd.h" />\r
     <ClInclude Include="gpu\device_buffer.h" />\r
+    <ClInclude Include="gpu\gpu_read_frame.h" />\r
+    <ClInclude Include="gpu\gpu_write_frame.h" />\r
     <ClInclude Include="gpu\host_buffer.h" />\r
     <ClInclude Include="gpu\ogl_device.h" />\r
     <ClInclude Include="image\image_kernel.h" />\r
     <ClInclude Include="image\image_mixer.h" />\r
-    <ClInclude Include="image\image_transform.h" />\r
     <ClInclude Include="StdAfx.h" />\r
   </ItemGroup>\r
   <ItemGroup>\r
index d7c37f15115a12f4af308007e39dab0b59114b42..fe292c8d7eb6fa8624b43e66bfd1d11c78f20974 100644 (file)
@@ -4,9 +4,6 @@
     <Filter Include="audio">\r
       <UniqueIdentifier>{ad4b4d9e-2c3d-48fb-977f-edce86b653e1}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="frame">\r
-      <UniqueIdentifier>{d42d9881-e19e-4128-91dd-5b7279c2b5e5}</UniqueIdentifier>\r
-    </Filter>\r
     <Filter Include="gpu">\r
       <UniqueIdentifier>{3c5b1ceb-6788-4278-98cc-0c5865cda30a}</UniqueIdentifier>\r
     </Filter>\r
     <ClCompile Include="gpu\device_buffer.cpp">\r
       <Filter>gpu</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="frame\read_frame.cpp">\r
-      <Filter>frame</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="frame\write_frame.cpp">\r
-      <Filter>frame</Filter>\r
-    </ClCompile>\r
     <ClCompile Include="frame_mixer_device.cpp" />\r
     <ClCompile Include="StdAfx.cpp" />\r
     <ClCompile Include="image\image_kernel.cpp">\r
     <ClCompile Include="image\image_mixer.cpp">\r
       <Filter>image</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="frame\basic_frame.cpp">\r
-      <Filter>frame</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="image\image_transform.cpp">\r
-      <Filter>image</Filter>\r
+    <ClCompile Include="gpu\gpu_read_frame.cpp">\r
+      <Filter>gpu</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="audio\audio_transform.cpp">\r
-      <Filter>audio</Filter>\r
+    <ClCompile Include="gpu\gpu_write_frame.cpp">\r
+      <Filter>gpu</Filter>\r
     </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="gpu\ogl_device.h">\r
       <Filter>gpu</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="frame\pixel_format.h">\r
-      <Filter>frame</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="frame\read_frame.h">\r
-      <Filter>frame</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="frame\write_frame.h">\r
-      <Filter>frame</Filter>\r
-    </ClInclude>\r
     <ClInclude Include="StdAfx.h" />\r
     <ClInclude Include="frame_mixer_device.h" />\r
     <ClInclude Include="fwd.h" />\r
     <ClInclude Include="image\image_mixer.h">\r
       <Filter>image</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="frame\frame_visitor.h">\r
-      <Filter>frame</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="frame\frame_factory.h">\r
-      <Filter>frame</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="frame\basic_frame.h">\r
-      <Filter>frame</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="image\image_transform.h">\r
-      <Filter>image</Filter>\r
+    <ClInclude Include="gpu\gpu_write_frame.h">\r
+      <Filter>gpu</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="audio\audio_transform.h">\r
-      <Filter>audio</Filter>\r
+    <ClInclude Include="gpu\gpu_read_frame.h">\r
+      <Filter>gpu</Filter>\r
     </ClInclude>\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file
index d580d7499c69fd785e52953736523abc5398dd06..9e6fe8d9ca15bc25aece0b10b737a7cf9de77d84 100644 (file)
     <ProjectReference Include="..\..\core\core.vcxproj">\r
       <Project>{79388c20-6499-4bf6-b8b9-d8c33d7d4ddd}</Project>\r
     </ProjectReference>\r
-    <ProjectReference Include="..\..\mixer\mixer.vcxproj">\r
-      <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
-    </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
   <ImportGroup Label="ExtensionTargets">\r
index 476505ac50f1c75057088924cb7e7b1fbe558717..14f0ac3532c4e12fcaa50e68f22395d237fe1310 100644 (file)
@@ -24,7 +24,7 @@
 #include "../util/util.h"\r
 #include "../util/memory.h"\r
 \r
-#include <mixer/frame/read_frame.h>\r
+#include <core/consumer/frame/read_frame.h>\r
 \r
 #include <common/concurrency/executor.h>\r
 #include <common/diagnostics/graph.h>\r
index f97ea04f55a0e47a10d1f4b7114728061395fc93..c02721bfa527dd0cf056df85b04ca8206cea3acd 100644 (file)
@@ -28,7 +28,7 @@
 \r
 #include <core/video_format.h>\r
 \r
-#include <mixer/frame/read_frame.h>\r
+#include <core/consumer/frame/read_frame.h>\r
 \r
 #include <common/concurrency/executor.h>\r
 #include <common/diagnostics/graph.h>\r
@@ -177,7 +177,7 @@ public:
                                        \r
                auto buffer_size = static_cast<size_t>(frame_time_scale_/frame_duration_)/4;\r
                for(size_t n = 0; n < buffer_size; ++n)\r
-                       schedule_next_video(safe_ptr<const core::read_frame>());\r
+                       schedule_next_video(core::read_frame::empty());\r
 \r
                video_frame_buffer_.set_capacity(buffer_size);\r
                audio_frame_buffer_.set_capacity(buffer_size);\r
index 2ebf81a111ece85fd16ed0ae3224dd33de9c8d60..e2d148f659e6208dd23ab4ad36acd242eb4cd080 100644 (file)
   </ItemGroup>\r
   <ItemGroup>\r
     <Midl Include="interop\DeckLinkAPI.idl">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
       <OutputDirectory Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">interop\</OutputDirectory>\r
       <OutputDirectory Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">interop\</OutputDirectory>\r
       <OutputDirectory Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">interop\</OutputDirectory>\r
       <OutputDirectory Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">interop\</OutputDirectory>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
     </Midl>\r
     <Midl Include="interop\DeckLinkAPI_v7_1.idl">\r
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">true</ExcludedFromBuild>\r
     <ProjectReference Include="..\..\core\core.vcxproj">\r
       <Project>{79388c20-6499-4bf6-b8b9-d8c33d7d4ddd}</Project>\r
     </ProjectReference>\r
-    <ProjectReference Include="..\..\mixer\mixer.vcxproj">\r
-      <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
-    </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
   <ImportGroup Label="ExtensionTargets">\r
index 9db02fdd58c3eb0dac35bb8ca555e4ecddf58736..c3f22b3110ba95e09270bcfd93bf18165fb1e253 100644 (file)
@@ -4,7 +4,7 @@
 \r
 \r
  /* File created by MIDL compiler version 7.00.0555 */\r
-/* at Wed Mar 09 11:25:59 2011\r
+/* at Wed Mar 09 13:57:51 2011\r
  */\r
 /* Compiler settings for interop\DeckLinkAPI.idl:\r
     Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 \r
@@ -476,6 +476,8 @@ enum _BMDDisplayMode
     {  bmdModeNTSC     = 0x6e747363,\r
        bmdModeNTSC2398 = 0x6e743233,\r
        bmdModePAL      = 0x70616c20,\r
+       bmdModeNTSCp    = 0x6e747370,\r
+       bmdModePALp     = 0x70616c70,\r
        bmdModeHD1080p2398      = 0x32337073,\r
        bmdModeHD1080p24        = 0x32347073,\r
        bmdModeHD1080p25        = 0x48703235,\r
@@ -664,6 +666,7 @@ enum _BMDVideo3DPackingFormat
     {  bmdVideo3DPackingSidebySideHalf = 0x73627368,\r
        bmdVideo3DPackingLinebyLine     = 0x6c62796c,\r
        bmdVideo3DPackingTopAndBottom   = 0x7461626f,\r
+       bmdVideo3DPackingFramePacking   = 0x6672706b,\r
        bmdVideo3DPackingLeftOnly       = 0x6c656674,\r
        bmdVideo3DPackingRightOnly      = 0x72696768\r
     }  BMDVideo3DPackingFormat;\r
@@ -2809,7 +2812,7 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;
         virtual BMDVideo3DPackingFormat STDMETHODCALLTYPE Get3DPackingFormat( void) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye( \r
-            /* [in] */ IDeckLinkVideoFrame **rightEyeFrame) = 0;\r
+            /* [out] */ IDeckLinkVideoFrame **rightEyeFrame) = 0;\r
         \r
     };\r
     \r
@@ -2836,7 +2839,7 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetFrameForRightEye )( \r
             IDeckLinkVideoFrame3DExtensions * This,\r
-            /* [in] */ IDeckLinkVideoFrame **rightEyeFrame);\r
+            /* [out] */ IDeckLinkVideoFrame **rightEyeFrame);\r
         \r
         END_INTERFACE\r
     } IDeckLinkVideoFrame3DExtensionsVtbl;\r
index f4dde50b38868dcd37141e357d5589201ff98fd2..593305ff989d408e6af05dfc29356abd3f3466b2 100644 (file)
@@ -6,7 +6,7 @@
 \r
 \r
  /* File created by MIDL compiler version 7.00.0555 */\r
-/* at Wed Mar 09 11:25:59 2011\r
+/* at Wed Mar 09 13:57:51 2011\r
  */\r
 /* Compiler settings for interop\DeckLinkAPI.idl:\r
     Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 \r
index 9f38d044acc0f37a4837349e7f4c67dd02504e08..5d13a07036c9bd5a2a1deac62dc485aa7af2ce7a 100644 (file)
@@ -30,7 +30,7 @@
 #include <common/exception/exceptions.h>\r
 #include <common/utility/timer.h>\r
 \r
-#include <mixer/frame/write_frame.h>\r
+#include <core/producer/frame/write_frame.h>\r
 \r
 #include <tbb/concurrent_queue.h>\r
 #include <tbb/atomic.h>\r
index 45b4f5e523f38e85f7efb3f28af7e940c995a328..755cb5725f5940a97487a109cb0afff734c76c04 100644 (file)
@@ -22,7 +22,7 @@
 \r
 #include "ffmpeg_consumer.h"\r
 \r
-#include <mixer/frame/read_frame.h>\r
+#include <core/consumer/frame/read_frame.h>\r
 \r
 #include <common/concurrency/executor.h>\r
 #include <common/utility/string.h>\r
index 39f909854ce392866e4c8705f21da6cc93fafa13..4be2feb94a3846f3ed58a5ebb46fd7491ae299cb 100644 (file)
     <ProjectReference Include="..\..\core\core.vcxproj">\r
       <Project>{79388c20-6499-4bf6-b8b9-d8c33d7d4ddd}</Project>\r
     </ProjectReference>\r
-    <ProjectReference Include="..\..\mixer\mixer.vcxproj">\r
-      <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
-    </ProjectReference>\r
   </ItemGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
   <ImportGroup Label="ExtensionTargets">\r
index 2f3500818639631bb0c41596853c9b8ed2cc2689..ddfcc8ac19a300bcf1b3136176f901b4b7be1b22 100644 (file)
@@ -6,11 +6,12 @@
 #include "audio/audio_decoder.h"\r
 #include "video/video_decoder.h"\r
 \r
-#include <core/video_format.h>\r
 #include <common/utility/timer.h>\r
 #include <common/diagnostics/graph.h>\r
-#include <mixer/frame/basic_frame.h>\r
-#include <mixer/audio/audio_transform.h>\r
+\r
+#include <core/producer/frame/basic_frame.h>\r
+#include <core/producer/frame/audio_transform.h>\r
+#include <core/video_format.h>\r
 \r
 #include <common/env.h>\r
 #include <common/utility/timer.h>\r
index d32c7f5493e8aa8ffa92748ec08ada045b9ffe49..68c8d11d98b39db9c786c7df980f212cc8f9d978 100644 (file)
@@ -6,8 +6,8 @@
 \r
 #include <core/video_format.h>\r
 \r
-#include <mixer/frame/basic_frame.h>\r
-#include <mixer/image/image_transform.h>\r
+#include <core/producer/frame/basic_frame.h>\r
+#include <core/producer/frame/image_transform.h>\r
 \r
 #include <tbb/parallel_for.h>\r
 \r
index e5584d81ce9a755620e6b57af810e8351e93200b..fb0dfe28ef1e11420848ae4e90feda1884bb1355 100644 (file)
     <ProjectReference Include="..\..\core\core.vcxproj">\r
       <Project>{79388c20-6499-4bf6-b8b9-d8c33d7d4ddd}</Project>\r
     </ProjectReference>\r
-    <ProjectReference Include="..\..\mixer\mixer.vcxproj">\r
-      <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
-    </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Midl Include="interop\Flash9e.IDL">\r
index 679375ff3f586ef1fcfef92b4a310e95b58862d2..564d9ce58779d34ba2ba574a2806452717bc5996 100644 (file)
@@ -29,7 +29,7 @@
 \r
 #include <core/video_format.h>\r
 \r
-#include <mixer/frame/basic_frame.h>\r
+#include <core/producer/frame/basic_frame.h>\r
 #include <mixer/frame_mixer_device.h>\r
 \r
 #include <common/concurrency/executor.h>\r
index fe74721fe1f0f315d3d68c7d7766313eba9e80e7..6144132af5866f4cb1034884610501b1c62e39fe 100644 (file)
     <ProjectReference Include="..\..\core\core.vcxproj">\r
       <Project>{79388c20-6499-4bf6-b8b9-d8c33d7d4ddd}</Project>\r
     </ProjectReference>\r
-    <ProjectReference Include="..\..\mixer\mixer.vcxproj">\r
-      <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
-    </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClCompile Include="image.cpp" />\r
index 4fa001ee1b7330601dfdd6a2c2b83724c7cff1c7..d315e88df74cfd643d4612c1ef011f84a90605c8 100644 (file)
@@ -5,7 +5,7 @@
 #include <core/video_format.h>\r
 \r
 #include <mixer/frame_mixer_device.h>\r
-#include <mixer/frame/basic_frame.h>\r
+#include <core/producer/frame/basic_frame.h>\r
 \r
 #include <common/env.h>\r
 \r
index 03fa4c71a13f8bbc1c400399ee59adff90a13ce3..d32673dfa99594ec4da380a3dec413565d504f09 100644 (file)
@@ -26,7 +26,7 @@
 \r
 #include <core/video_format.h>\r
 \r
-#include <mixer/frame/read_frame.h>\r
+#include <core/consumer/frame/read_frame.h>\r
 \r
 #include <SFML/Audio.hpp>\r
 \r
index 54a045e25244496e0c1ae33b5bd6046f608cf259..e77a145a4c934ea81f7fffa90a4f693b3cdb12d7 100644 (file)
     <ProjectReference Include="..\..\core\core.vcxproj">\r
       <Project>{79388c20-6499-4bf6-b8b9-d8c33d7d4ddd}</Project>\r
     </ProjectReference>\r
-    <ProjectReference Include="..\..\mixer\mixer.vcxproj">\r
-      <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
-    </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClCompile Include="consumer\oal_consumer.cpp">\r
index 4c8b8caf89b577244ac1f0030e47bf77a7ee16f2..a36e49acd73691238a148f9ada18976281a238c9 100644 (file)
@@ -27,7 +27,7 @@
 #include "ogl_consumer.h"\r
 \r
 #include <core/video_format.h>\r
-#include <mixer/frame/read_frame.h>\r
+#include <core/consumer/frame/read_frame.h>\r
 \r
 #include <common/gl/gl_check.h>\r
 #include <common/concurrency/executor.h>\r
index f8de4ac1fa0c1d70bc924fd5fb69e3293d35d7bf..ba60b5c59e917c875c59270d7a3240153f6e3b22 100644 (file)
     <ProjectReference Include="..\..\core\core.vcxproj">\r
       <Project>{79388c20-6499-4bf6-b8b9-d8c33d7d4ddd}</Project>\r
     </ProjectReference>\r
-    <ProjectReference Include="..\..\mixer\mixer.vcxproj">\r
-      <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
-    </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClCompile Include="consumer\ogl_consumer.cpp">\r
index 253f11957ce2489ef3e00296a9e9572160717d63..ad212e8f62aa58391ebe016759aafb9a543a7386 100644 (file)
@@ -31,8 +31,8 @@
 \r
 #include <core/video_format.h>\r
 \r
-#include <mixer/frame/write_frame.h>\r
-#include <mixer/frame/frame_factory.h>\r
+#include <core/producer/frame/write_frame.h>\r
+#include <core/producer/frame/frame_factory.h>\r
 \r
 #include <common/concurrency/executor.h>\r
 #include <common/env.h>\r
index 48988e6239e369085a01fe1a82508ef5ee9fc763..e799b8011e472fbebceed500d42ece719e9e88a9 100644 (file)
     <ProjectReference Include="..\..\core\core.vcxproj">\r
       <Project>{79388c20-6499-4bf6-b8b9-d8c33d7d4ddd}</Project>\r
     </ProjectReference>\r
-    <ProjectReference Include="..\..\mixer\mixer.vcxproj">\r
-      <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
-    </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClCompile Include="interop\XcpControlHost.cpp">\r
index 01477c88c6d66b917189ce1f95c77f1071bb71e7..d2de761d6d54b6b11d710a973286848c5532fb42 100644 (file)
@@ -32,8 +32,8 @@
 #include <modules/flash/producer/cg_producer.h>\r
 #include <core/producer/transition/transition_producer.h>\r
 \r
-#include <mixer/image/image_transform.h>\r
-#include <mixer/audio/audio_transform.h>\r
+#include <core/producer/frame/image_transform.h>\r
+#include <core/producer/frame/audio_transform.h>\r
 \r
 #include <algorithm>\r
 #include <locale>\r