]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: Mayor solution reconfiguration.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 7 Mar 2011 08:41:52 +0000 (08:41 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 7 Mar 2011 08:41:52 +0000 (08:41 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@536 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

138 files changed:
casparcg.sln
common/common.vcxproj
common/common.vcxproj.filters
common/concurrency/executor.h
core/StdAfx.h
core/consumer/decklink/util.h [deleted file]
core/consumer/frame_consumer.cpp [new file with mode: 0644]
core/consumer/frame_consumer.h
core/consumer/frame_consumer_device.cpp
core/consumer/frame_consumer_device.h
core/core.vcxproj
core/core.vcxproj.filters
core/producer/color/color_producer.cpp
core/producer/ffmpeg/audio/audio_decoder.cpp [deleted file]
core/producer/ffmpeg/audio/audio_decoder.h [deleted file]
core/producer/ffmpeg/ffmpeg_producer.h [deleted file]
core/producer/ffmpeg/video/video_decoder.cpp [deleted file]
core/producer/ffmpeg/video/video_decoder.h [deleted file]
core/producer/frame_producer.cpp [new file with mode: 0644]
core/producer/frame_producer.h
core/producer/frame_producer_device.cpp
core/producer/image/image_producer.h [deleted file]
core/producer/transition/transition_producer.cpp
mixer/StdAfx.h
mixer/audio/audio_mixer.cpp
mixer/audio/audio_transform.cpp
mixer/audio/audio_transform.h
mixer/frame/draw_frame.h
mixer/mixer.vcxproj
mixer/mixer.vcxproj.filters
modules/bluefish/StdAfx.cpp [new file with mode: 0644]
modules/bluefish/StdAfx.h [new file with mode: 0644]
modules/bluefish/bluefish.cpp [new file with mode: 0644]
modules/bluefish/bluefish.h [new file with mode: 0644]
modules/bluefish/bluefish.vcxproj [new file with mode: 0644]
modules/bluefish/bluefish.vcxproj.filters [new file with mode: 0644]
modules/bluefish/consumer/bluefish_consumer.cpp [moved from core/consumer/bluefish/bluefish_consumer.cpp with 90% similarity]
modules/bluefish/consumer/bluefish_consumer.h [moved from core/consumer/bluefish/bluefish_consumer.h with 70% similarity]
modules/bluefish/util/memory.h [moved from core/consumer/bluefish/memory.h with 89% similarity]
modules/bluefish/util/util.h [moved from core/consumer/bluefish/util.h with 70% similarity]
modules/decklink/StdAfx.cpp [new file with mode: 0644]
modules/decklink/StdAfx.h [new file with mode: 0644]
modules/decklink/consumer/decklink_consumer.cpp [moved from core/consumer/decklink/decklink_consumer.cpp with 79% similarity]
modules/decklink/consumer/decklink_consumer.h [moved from core/consumer/decklink/decklink_consumer.h with 67% similarity]
modules/decklink/decklink.cpp [new file with mode: 0644]
modules/decklink/decklink.h [new file with mode: 0644]
modules/decklink/decklink.vcxproj [new file with mode: 0644]
modules/decklink/decklink.vcxproj.filters [new file with mode: 0644]
modules/decklink/interop/DeckLinkAPI.idl [moved from core/consumer/decklink/DeckLinkAPI.idl with 100% similarity]
modules/decklink/interop/DeckLinkAPI_h.h [moved from core/consumer/decklink/DeckLinkAPI_h.h with 100% similarity]
modules/decklink/interop/DeckLinkAPI_i.c [moved from core/consumer/decklink/DeckLinkAPI_i.c with 100% similarity]
modules/decklink/interop/DeckLinkAPI_v7_1.idl [moved from core/consumer/decklink/DeckLinkAPI_v7_1.idl with 100% similarity]
modules/decklink/interop/DeckLinkAPI_v7_3.idl [moved from core/consumer/decklink/DeckLinkAPI_v7_3.idl with 100% similarity]
modules/decklink/interop/DeckLinkAPI_v7_6.idl [moved from core/consumer/decklink/DeckLinkAPI_v7_6.idl with 100% similarity]
modules/decklink/producer/decklink_producer.cpp [moved from core/producer/decklink/decklink_producer.cpp with 80% similarity]
modules/decklink/producer/decklink_producer.h [moved from core/producer/decklink/decklink_producer.h with 80% similarity]
modules/decklink/util/util.h [new file with mode: 0644]
modules/ffmpeg/StdAfx.cpp [new file with mode: 0644]
modules/ffmpeg/StdAfx.h [new file with mode: 0644]
modules/ffmpeg/consumer/ffmpeg_consumer.cpp [moved from core/consumer/ffmpeg/ffmpeg_consumer.cpp with 91% similarity]
modules/ffmpeg/consumer/ffmpeg_consumer.h [moved from core/consumer/ffmpeg/ffmpeg_consumer.h with 70% similarity]
modules/ffmpeg/ffmpeg.cpp [new file with mode: 0644]
modules/ffmpeg/ffmpeg.h [new file with mode: 0644]
modules/ffmpeg/ffmpeg.vcxproj [new file with mode: 0644]
modules/ffmpeg/ffmpeg.vcxproj.filters [new file with mode: 0644]
modules/ffmpeg/producer/ffmpeg_producer.cpp [moved from core/producer/ffmpeg/ffmpeg_producer.cpp with 81% similarity]
modules/ffmpeg/producer/ffmpeg_producer.h [new file with mode: 0644]
modules/ffmpeg/producer/input.cpp [moved from core/producer/ffmpeg/input.cpp with 95% similarity]
modules/ffmpeg/producer/input.h [moved from core/producer/ffmpeg/input.h with 89% similarity]
modules/flash/StdAfx.cpp [new file with mode: 0644]
modules/flash/StdAfx.h [new file with mode: 0644]
modules/flash/flash.cpp [new file with mode: 0644]
modules/flash/flash.h [new file with mode: 0644]
modules/flash/flash.vcxproj [new file with mode: 0644]
modules/flash/flash.vcxproj.filters [new file with mode: 0644]
modules/flash/interop/Flash9e.IDL [moved from core/producer/flash/Flash9e.IDL with 100% similarity]
modules/flash/interop/Flash9e_i.c [moved from core/producer/flash/Flash9e_i.c with 100% similarity]
modules/flash/interop/TimerHelper.h [moved from core/producer/flash/TimerHelper.h with 100% similarity]
modules/flash/interop/axflash.h [moved from core/producer/flash/axflash.h with 100% similarity]
modules/flash/producer/FlashAxContainer.cpp [moved from core/producer/flash/FlashAxContainer.cpp with 96% similarity]
modules/flash/producer/FlashAxContainer.h [moved from core/producer/flash/FlashAxContainer.h with 95% similarity]
modules/flash/producer/cg_producer.cpp [moved from core/producer/flash/cg_producer.cpp with 84% similarity]
modules/flash/producer/cg_producer.h [moved from core/producer/flash/cg_producer.h with 54% similarity]
modules/flash/producer/flash_producer.cpp [moved from core/producer/flash/flash_producer.cpp with 78% similarity]
modules/flash/producer/flash_producer.h [moved from core/producer/flash/flash_producer.h with 78% similarity]
modules/image/image.cpp [new file with mode: 0644]
modules/image/image.h [new file with mode: 0644]
modules/image/image.vcxproj [new file with mode: 0644]
modules/image/image.vcxproj.filters [new file with mode: 0644]
modules/image/producer/image_producer.cpp [moved from core/producer/image/image_producer.cpp with 67% similarity]
modules/image/producer/image_producer.h [new file with mode: 0644]
modules/image/producer/image_scroll_producer.cpp [moved from core/producer/image/image_scroll_producer.cpp with 96% similarity]
modules/image/producer/image_scroll_producer.h [moved from core/producer/image/image_scroll_producer.h with 72% similarity]
modules/image/util/image_loader.cpp [moved from core/producer/image/image_loader.cpp with 91% similarity]
modules/image/util/image_loader.h [moved from core/producer/image/image_loader.h with 75% similarity]
modules/oal/consumer/oal_consumer.cpp [moved from core/consumer/oal/oal_consumer.cpp with 80% similarity]
modules/oal/consumer/oal_consumer.h [moved from core/consumer/oal/oal_consumer.h with 68% similarity]
modules/oal/oal.cpp [new file with mode: 0644]
modules/oal/oal.h [new file with mode: 0644]
modules/oal/oal.vcxproj [new file with mode: 0644]
modules/oal/oal.vcxproj.filters [new file with mode: 0644]
modules/ogl/consumer/ogl_consumer.cpp [moved from core/consumer/ogl/ogl_consumer.cpp with 89% similarity]
modules/ogl/consumer/ogl_consumer.h [moved from core/consumer/ogl/ogl_consumer.h with 69% similarity]
modules/ogl/ogl.cpp [new file with mode: 0644]
modules/ogl/ogl.h [new file with mode: 0644]
modules/ogl/ogl.vcxproj [new file with mode: 0644]
modules/ogl/ogl.vcxproj.filters [new file with mode: 0644]
modules/silverlight/StdAfx.cpp [new file with mode: 0644]
modules/silverlight/StdAfx.h [new file with mode: 0644]
modules/silverlight/interop/XcpControlHost.cpp [moved from core/producer/silverlight/XcpControlHost.cpp with 95% similarity]
modules/silverlight/interop/XcpControlHost.h [moved from core/producer/silverlight/XcpControlHost.h with 100% similarity]
modules/silverlight/interop/XcpPropertyBag.cpp [moved from core/producer/silverlight/XcpPropertyBag.cpp with 93% similarity]
modules/silverlight/interop/XcpPropertyBag.h [moved from core/producer/silverlight/XcpPropertyBag.h with 100% similarity]
modules/silverlight/interop/xcpctrl.h [moved from core/producer/silverlight/xcpctrl.h with 100% similarity]
modules/silverlight/interop/xcpctrl.idl [moved from core/producer/silverlight/xcpctrl.idl with 100% similarity]
modules/silverlight/interop/xcpctrl_h.h [moved from core/producer/silverlight/xcpctrl_h.h with 100% similarity]
modules/silverlight/interop/xcpctrl_i.c [moved from core/producer/silverlight/xcpctrl_i.c with 100% similarity]
modules/silverlight/interop/xcpctrl_p.c [moved from core/producer/silverlight/xcpctrl_p.c with 100% similarity]
modules/silverlight/producer/silverlight_producer.cpp [moved from core/producer/silverlight/silverlight_producer.cpp with 80% similarity]
modules/silverlight/producer/silverlight_producer.h [moved from core/producer/silverlight/silverlight_producer.h with 80% similarity]
modules/silverlight/silverlight.cpp [new file with mode: 0644]
modules/silverlight/silverlight.h [new file with mode: 0644]
modules/silverlight/silverlight.vcxproj [new file with mode: 0644]
modules/silverlight/silverlight.vcxproj.filters [new file with mode: 0644]
protocol/amcp/AMCPCommandsImpl.cpp
protocol/cii/CIICommandsImpl.cpp
protocol/cii/CIIProtocolStrategy.cpp
protocol/clk/CLKProtocolStrategy.cpp
protocol/media.cpp [deleted file]
protocol/media.h [deleted file]
protocol/protocol.vcxproj
protocol/protocol.vcxproj.filters
protocol/util/AsyncEventServer.h
shell/boostrapper.cpp
shell/main.cpp
shell/shell.vcxproj
shell/shell.vcxproj.filters
version.tmpl

index 753e0c9890513738e8651efa7ca0aec53d2933c1..eac65b410bb6932b854eff12e059976778a78297 100644 (file)
@@ -11,11 +11,29 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "protocol", "protocol\protoc
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mixer", "mixer\mixer.vcxproj", "{477E12A4-1B28-4FF7-B46D-76606BDD1891}"\r
 EndProject\r
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{32079541-68ED-4319-91FB-0FF041642679}"\r
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "documentation", "documentation", "{32079541-68ED-4319-91FB-0FF041642679}"\r
        ProjectSection(SolutionItems) = preProject\r
                ..\CasparCG 2.0 Preliminary Change Log.txt = ..\CasparCG 2.0 Preliminary Change Log.txt\r
        EndProjectSection\r
 EndProject\r
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "modules", "modules", "{C54DA43E-4878-45DB-B76D-35970553672C}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bluefish", "modules\bluefish\bluefish.vcxproj", "{69313D25-9F54-4FC9-9872-628A4DD79464}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "decklink", "modules\decklink\decklink.vcxproj", "{D3611658-8F54-43CF-B9AF-A5CF8C1102EA}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ffmpeg", "modules\ffmpeg\ffmpeg.vcxproj", "{F6223AF3-BE0B-4B61-8406-98922CE521C2}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flash", "modules\flash\flash.vcxproj", "{816DEABA-3757-4306-AFE0-C27CF96C4DEA}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oal", "modules\oal\oal.vcxproj", "{82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ogl", "modules\ogl\ogl.vcxproj", "{88F974F0-D09F-4788-8CF8-F563209E60C1}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "silverlight", "modules\silverlight\silverlight.vcxproj", "{B964D953-8882-454C-A935-DB711D697E39}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "image", "modules\image\image.vcxproj", "{3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2}"\r
+EndProject\r
 Global\r
        GlobalSection(SubversionScc) = preSolution\r
                Svn-Managed = True\r
@@ -32,44 +50,118 @@ Global
                {02308602-7FE0-4253-B96E-22134919F56A}.Debug|Win32.Build.0 = Debug|Win32\r
                {02308602-7FE0-4253-B96E-22134919F56A}.Develop|Win32.ActiveCfg = Develop|Win32\r
                {02308602-7FE0-4253-B96E-22134919F56A}.Develop|Win32.Build.0 = Develop|Win32\r
-               {02308602-7FE0-4253-B96E-22134919F56A}.Profile|Win32.ActiveCfg = Amplify|Win32\r
-               {02308602-7FE0-4253-B96E-22134919F56A}.Profile|Win32.Build.0 = Amplify|Win32\r
+               {02308602-7FE0-4253-B96E-22134919F56A}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {02308602-7FE0-4253-B96E-22134919F56A}.Profile|Win32.Build.0 = Profile|Win32\r
                {02308602-7FE0-4253-B96E-22134919F56A}.Release|Win32.ActiveCfg = Release|Win32\r
                {02308602-7FE0-4253-B96E-22134919F56A}.Release|Win32.Build.0 = Release|Win32\r
                {79388C20-6499-4BF6-B8B9-D8C33D7D4DDD}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {79388C20-6499-4BF6-B8B9-D8C33D7D4DDD}.Debug|Win32.Build.0 = Debug|Win32\r
                {79388C20-6499-4BF6-B8B9-D8C33D7D4DDD}.Develop|Win32.ActiveCfg = Develop|Win32\r
                {79388C20-6499-4BF6-B8B9-D8C33D7D4DDD}.Develop|Win32.Build.0 = Develop|Win32\r
-               {79388C20-6499-4BF6-B8B9-D8C33D7D4DDD}.Profile|Win32.ActiveCfg = Amplify|Win32\r
-               {79388C20-6499-4BF6-B8B9-D8C33D7D4DDD}.Profile|Win32.Build.0 = Amplify|Win32\r
+               {79388C20-6499-4BF6-B8B9-D8C33D7D4DDD}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {79388C20-6499-4BF6-B8B9-D8C33D7D4DDD}.Profile|Win32.Build.0 = Profile|Win32\r
                {79388C20-6499-4BF6-B8B9-D8C33D7D4DDD}.Release|Win32.ActiveCfg = Release|Win32\r
                {79388C20-6499-4BF6-B8B9-D8C33D7D4DDD}.Release|Win32.Build.0 = Release|Win32\r
                {8C26C94F-8092-4769-8D84-DEA479721C5B}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {8C26C94F-8092-4769-8D84-DEA479721C5B}.Debug|Win32.Build.0 = Debug|Win32\r
                {8C26C94F-8092-4769-8D84-DEA479721C5B}.Develop|Win32.ActiveCfg = Develop|Win32\r
                {8C26C94F-8092-4769-8D84-DEA479721C5B}.Develop|Win32.Build.0 = Develop|Win32\r
-               {8C26C94F-8092-4769-8D84-DEA479721C5B}.Profile|Win32.ActiveCfg = Amplify|Win32\r
-               {8C26C94F-8092-4769-8D84-DEA479721C5B}.Profile|Win32.Build.0 = Amplify|Win32\r
+               {8C26C94F-8092-4769-8D84-DEA479721C5B}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {8C26C94F-8092-4769-8D84-DEA479721C5B}.Profile|Win32.Build.0 = Profile|Win32\r
                {8C26C94F-8092-4769-8D84-DEA479721C5B}.Release|Win32.ActiveCfg = Release|Win32\r
                {8C26C94F-8092-4769-8D84-DEA479721C5B}.Release|Win32.Build.0 = Release|Win32\r
                {2040B361-1FB6-488E-84A5-38A580DA90DE}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {2040B361-1FB6-488E-84A5-38A580DA90DE}.Debug|Win32.Build.0 = Debug|Win32\r
                {2040B361-1FB6-488E-84A5-38A580DA90DE}.Develop|Win32.ActiveCfg = Develop|Win32\r
                {2040B361-1FB6-488E-84A5-38A580DA90DE}.Develop|Win32.Build.0 = Develop|Win32\r
-               {2040B361-1FB6-488E-84A5-38A580DA90DE}.Profile|Win32.ActiveCfg = Amplify|Win32\r
-               {2040B361-1FB6-488E-84A5-38A580DA90DE}.Profile|Win32.Build.0 = Amplify|Win32\r
+               {2040B361-1FB6-488E-84A5-38A580DA90DE}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {2040B361-1FB6-488E-84A5-38A580DA90DE}.Profile|Win32.Build.0 = Profile|Win32\r
                {2040B361-1FB6-488E-84A5-38A580DA90DE}.Release|Win32.ActiveCfg = Release|Win32\r
                {2040B361-1FB6-488E-84A5-38A580DA90DE}.Release|Win32.Build.0 = Release|Win32\r
                {477E12A4-1B28-4FF7-B46D-76606BDD1891}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {477E12A4-1B28-4FF7-B46D-76606BDD1891}.Debug|Win32.Build.0 = Debug|Win32\r
                {477E12A4-1B28-4FF7-B46D-76606BDD1891}.Develop|Win32.ActiveCfg = Develop|Win32\r
                {477E12A4-1B28-4FF7-B46D-76606BDD1891}.Develop|Win32.Build.0 = Develop|Win32\r
-               {477E12A4-1B28-4FF7-B46D-76606BDD1891}.Profile|Win32.ActiveCfg = Amplify|Win32\r
-               {477E12A4-1B28-4FF7-B46D-76606BDD1891}.Profile|Win32.Build.0 = Amplify|Win32\r
+               {477E12A4-1B28-4FF7-B46D-76606BDD1891}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {477E12A4-1B28-4FF7-B46D-76606BDD1891}.Profile|Win32.Build.0 = Profile|Win32\r
                {477E12A4-1B28-4FF7-B46D-76606BDD1891}.Release|Win32.ActiveCfg = Release|Win32\r
                {477E12A4-1B28-4FF7-B46D-76606BDD1891}.Release|Win32.Build.0 = Release|Win32\r
+               {69313D25-9F54-4FC9-9872-628A4DD79464}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {69313D25-9F54-4FC9-9872-628A4DD79464}.Debug|Win32.Build.0 = Debug|Win32\r
+               {69313D25-9F54-4FC9-9872-628A4DD79464}.Develop|Win32.ActiveCfg = Develop|Win32\r
+               {69313D25-9F54-4FC9-9872-628A4DD79464}.Develop|Win32.Build.0 = Develop|Win32\r
+               {69313D25-9F54-4FC9-9872-628A4DD79464}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {69313D25-9F54-4FC9-9872-628A4DD79464}.Profile|Win32.Build.0 = Profile|Win32\r
+               {69313D25-9F54-4FC9-9872-628A4DD79464}.Release|Win32.ActiveCfg = Release|Win32\r
+               {69313D25-9F54-4FC9-9872-628A4DD79464}.Release|Win32.Build.0 = Release|Win32\r
+               {D3611658-8F54-43CF-B9AF-A5CF8C1102EA}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {D3611658-8F54-43CF-B9AF-A5CF8C1102EA}.Debug|Win32.Build.0 = Debug|Win32\r
+               {D3611658-8F54-43CF-B9AF-A5CF8C1102EA}.Develop|Win32.ActiveCfg = Develop|Win32\r
+               {D3611658-8F54-43CF-B9AF-A5CF8C1102EA}.Develop|Win32.Build.0 = Develop|Win32\r
+               {D3611658-8F54-43CF-B9AF-A5CF8C1102EA}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {D3611658-8F54-43CF-B9AF-A5CF8C1102EA}.Profile|Win32.Build.0 = Profile|Win32\r
+               {D3611658-8F54-43CF-B9AF-A5CF8C1102EA}.Release|Win32.ActiveCfg = Release|Win32\r
+               {D3611658-8F54-43CF-B9AF-A5CF8C1102EA}.Release|Win32.Build.0 = Release|Win32\r
+               {F6223AF3-BE0B-4B61-8406-98922CE521C2}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {F6223AF3-BE0B-4B61-8406-98922CE521C2}.Debug|Win32.Build.0 = Debug|Win32\r
+               {F6223AF3-BE0B-4B61-8406-98922CE521C2}.Develop|Win32.ActiveCfg = Develop|Win32\r
+               {F6223AF3-BE0B-4B61-8406-98922CE521C2}.Develop|Win32.Build.0 = Develop|Win32\r
+               {F6223AF3-BE0B-4B61-8406-98922CE521C2}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {F6223AF3-BE0B-4B61-8406-98922CE521C2}.Profile|Win32.Build.0 = Profile|Win32\r
+               {F6223AF3-BE0B-4B61-8406-98922CE521C2}.Release|Win32.ActiveCfg = Release|Win32\r
+               {F6223AF3-BE0B-4B61-8406-98922CE521C2}.Release|Win32.Build.0 = Release|Win32\r
+               {816DEABA-3757-4306-AFE0-C27CF96C4DEA}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {816DEABA-3757-4306-AFE0-C27CF96C4DEA}.Debug|Win32.Build.0 = Debug|Win32\r
+               {816DEABA-3757-4306-AFE0-C27CF96C4DEA}.Develop|Win32.ActiveCfg = Develop|Win32\r
+               {816DEABA-3757-4306-AFE0-C27CF96C4DEA}.Develop|Win32.Build.0 = Develop|Win32\r
+               {816DEABA-3757-4306-AFE0-C27CF96C4DEA}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {816DEABA-3757-4306-AFE0-C27CF96C4DEA}.Profile|Win32.Build.0 = Profile|Win32\r
+               {816DEABA-3757-4306-AFE0-C27CF96C4DEA}.Release|Win32.ActiveCfg = Release|Win32\r
+               {816DEABA-3757-4306-AFE0-C27CF96C4DEA}.Release|Win32.Build.0 = Release|Win32\r
+               {82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68}.Debug|Win32.Build.0 = Debug|Win32\r
+               {82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68}.Develop|Win32.ActiveCfg = Develop|Win32\r
+               {82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68}.Develop|Win32.Build.0 = Develop|Win32\r
+               {82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68}.Profile|Win32.Build.0 = Profile|Win32\r
+               {82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68}.Release|Win32.ActiveCfg = Release|Win32\r
+               {82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68}.Release|Win32.Build.0 = Release|Win32\r
+               {88F974F0-D09F-4788-8CF8-F563209E60C1}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {88F974F0-D09F-4788-8CF8-F563209E60C1}.Debug|Win32.Build.0 = Debug|Win32\r
+               {88F974F0-D09F-4788-8CF8-F563209E60C1}.Develop|Win32.ActiveCfg = Develop|Win32\r
+               {88F974F0-D09F-4788-8CF8-F563209E60C1}.Develop|Win32.Build.0 = Develop|Win32\r
+               {88F974F0-D09F-4788-8CF8-F563209E60C1}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {88F974F0-D09F-4788-8CF8-F563209E60C1}.Profile|Win32.Build.0 = Profile|Win32\r
+               {88F974F0-D09F-4788-8CF8-F563209E60C1}.Release|Win32.ActiveCfg = Release|Win32\r
+               {88F974F0-D09F-4788-8CF8-F563209E60C1}.Release|Win32.Build.0 = Release|Win32\r
+               {B964D953-8882-454C-A935-DB711D697E39}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {B964D953-8882-454C-A935-DB711D697E39}.Debug|Win32.Build.0 = Debug|Win32\r
+               {B964D953-8882-454C-A935-DB711D697E39}.Develop|Win32.ActiveCfg = Develop|Win32\r
+               {B964D953-8882-454C-A935-DB711D697E39}.Develop|Win32.Build.0 = Develop|Win32\r
+               {B964D953-8882-454C-A935-DB711D697E39}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {B964D953-8882-454C-A935-DB711D697E39}.Profile|Win32.Build.0 = Profile|Win32\r
+               {B964D953-8882-454C-A935-DB711D697E39}.Release|Win32.ActiveCfg = Release|Win32\r
+               {B964D953-8882-454C-A935-DB711D697E39}.Release|Win32.Build.0 = Release|Win32\r
+               {3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2}.Debug|Win32.Build.0 = Debug|Win32\r
+               {3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2}.Develop|Win32.ActiveCfg = Develop|Win32\r
+               {3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2}.Develop|Win32.Build.0 = Develop|Win32\r
+               {3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2}.Profile|Win32.ActiveCfg = Profile|Win32\r
+               {3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2}.Profile|Win32.Build.0 = Profile|Win32\r
+               {3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2}.Release|Win32.ActiveCfg = Release|Win32\r
+               {3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2}.Release|Win32.Build.0 = Release|Win32\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
        EndGlobalSection\r
+       GlobalSection(NestedProjects) = preSolution\r
+               {69313D25-9F54-4FC9-9872-628A4DD79464} = {C54DA43E-4878-45DB-B76D-35970553672C}\r
+               {D3611658-8F54-43CF-B9AF-A5CF8C1102EA} = {C54DA43E-4878-45DB-B76D-35970553672C}\r
+               {F6223AF3-BE0B-4B61-8406-98922CE521C2} = {C54DA43E-4878-45DB-B76D-35970553672C}\r
+               {816DEABA-3757-4306-AFE0-C27CF96C4DEA} = {C54DA43E-4878-45DB-B76D-35970553672C}\r
+               {82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68} = {C54DA43E-4878-45DB-B76D-35970553672C}\r
+               {88F974F0-D09F-4788-8CF8-F563209E60C1} = {C54DA43E-4878-45DB-B76D-35970553672C}\r
+               {B964D953-8882-454C-A935-DB711D697E39} = {C54DA43E-4878-45DB-B76D-35970553672C}\r
+               {3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2} = {C54DA43E-4878-45DB-B76D-35970553672C}\r
+       EndGlobalSection\r
 EndGlobal\r
index 8e46ce95d6848f9db13b9a555f063983fff019e2..c183cef41db252999f9d895f58a9b5c1f9a8a918 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup Label="ProjectConfigurations">\r
-    <ProjectConfiguration Include="Amplify|Win32">\r
-      <Configuration>Amplify</Configuration>\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
       <Platform>Win32</Platform>\r
     </ProjectConfiguration>\r
     <ProjectConfiguration Include="Debug|Win32">\r
@@ -36,7 +36,7 @@
     <WholeProgramOptimization>true</WholeProgramOptimization>\r
     <CharacterSet>Unicode</CharacterSet>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'" Label="Configuration">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
     <ConfigurationType>StaticLibrary</ConfigurationType>\r
     <UseDebugLibraries>false</UseDebugLibraries>\r
     <WholeProgramOptimization>true</WholeProgramOptimization>\r
@@ -57,7 +57,7 @@
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'" Label="PropertySheets">\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\;$(LibraryPath)</LibraryPath>\r
-    <OutDir>$(ProjectDir)debug\</OutDir>\r
-    <IntDir>$(Configuration)\</IntDir>\r
+    <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <IntDir>$(ProjectDir)bin\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\;$(LibraryPath)</LibraryPath>\r
-    <OutDir>$(ProjectDir)release\</OutDir>\r
-    <IntDir>$(Configuration)\</IntDir>\r
+    <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <IntDir>$(ProjectDir)bin\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
     <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\;$(LibraryPath)</LibraryPath>\r
-    <OutDir>$(ProjectDir)release\</OutDir>\r
-    <IntDir>$(Configuration)\</IntDir>\r
+    <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <IntDir>$(ProjectDir)bin\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
     <IncludePath>..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <LibraryPath>..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\;$(LibraryPath)</LibraryPath>\r
-    <OutDir>$(ProjectDir)release\</OutDir>\r
-    <IntDir>$(Configuration)\</IntDir>\r
+    <OutDir>$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <IntDir>$(ProjectDir)bin\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <ClCompile>\r
     <PreBuildEvent>\r
       <Command>"SubWCRev.exe" "$(SolutionDir)." "$(SolutionDir)\version.tmpl" "$(SolutionDir)\version.h"</Command>\r
     </PreBuildEvent>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <ClCompile>\r
     <PreBuildEvent>\r
       <Command>"SubWCRev.exe" "$(SolutionDir)." "$(SolutionDir)\version.tmpl" "$(SolutionDir)\version.h"</Command>\r
     </PreBuildEvent>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
   </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
     <ClCompile>\r
       <WarningLevel>Level3</WarningLevel>\r
       <PrecompiledHeader>Use</PrecompiledHeader>\r
     <PreBuildEvent>\r
       <Command>"SubWCRev.exe" "$(SolutionDir)." "$(SolutionDir)\version.tmpl" "$(SolutionDir)\version.h"</Command>\r
     </PreBuildEvent>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
     <ClCompile>\r
     <PreBuildEvent>\r
       <Command>"SubWCRev.exe" "$(SolutionDir)." "$(SolutionDir)\version.tmpl" "$(SolutionDir)\version.h"</Command>\r
     </PreBuildEvent>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <ClInclude Include="compiler\vs\disable_silly_warnings.h" />\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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
+      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
     </ClCompile>\r
     <ClCompile Include="exception\win32_exception.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)'=='Amplify|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="log\log.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)'=='Amplify|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="env.cpp" />\r
     <ClCompile Include="stdafx.cpp">\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">Create</PrecompiledHeader>\r
     </ClCompile>\r
   </ItemGroup>\r
index 280c0650eca2c37f8092933f674de2efa0ce6f7d..0504c22f9d727ca4b99bbd074f7eeabadd09914d 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup>\r
-    <Filter Include="Source">\r
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    <Filter Include="compiler">\r
+      <UniqueIdentifier>{63471750-a430-4167-9b49-31b7a068a913}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\concurrency">\r
-      <UniqueIdentifier>{644fe2e4-1199-4a0e-8d4c-63cf1ac82f1d}</UniqueIdentifier>\r
+    <Filter Include="compiler\vs">\r
+      <UniqueIdentifier>{28c25c8a-1277-4d2c-9e85-5af33f9938ea}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\exception">\r
-      <UniqueIdentifier>{35ca385e-c4db-4fe7-858b-0a0bb678675f}</UniqueIdentifier>\r
+    <Filter Include="concurrency">\r
+      <UniqueIdentifier>{644fe2e4-1199-4a0e-8d4c-63cf1ac82f1d}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\log">\r
-      <UniqueIdentifier>{3b529e9b-c729-4c8a-8166-0cb8d8030973}</UniqueIdentifier>\r
+    <Filter Include="diagnostics">\r
+      <UniqueIdentifier>{29a29bcc-a9a0-4083-b713-c3773d18e177}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\utility">\r
-      <UniqueIdentifier>{11860e2d-8adf-4573-956b-785e59aef2b0}</UniqueIdentifier>\r
+    <Filter Include="exception">\r
+      <UniqueIdentifier>{35ca385e-c4db-4fe7-858b-0a0bb678675f}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\gl">\r
+    <Filter Include="gl">\r
       <UniqueIdentifier>{0d94bbc2-e196-4618-a90b-19392a3a0a8e}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\compiler">\r
-      <UniqueIdentifier>{63471750-a430-4167-9b49-31b7a068a913}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\compiler\vs">\r
-      <UniqueIdentifier>{28c25c8a-1277-4d2c-9e85-5af33f9938ea}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Afx">\r
-      <UniqueIdentifier>{9250809a-3410-418d-95ca-ff2dcb6f0578}</UniqueIdentifier>\r
+    <Filter Include="log">\r
+      <UniqueIdentifier>{3b529e9b-c729-4c8a-8166-0cb8d8030973}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\memory">\r
+    <Filter Include="memory">\r
       <UniqueIdentifier>{9259676d-c225-4422-a50e-30d152d78dc2}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\diagnostics">\r
-      <UniqueIdentifier>{29a29bcc-a9a0-4083-b713-c3773d18e177}</UniqueIdentifier>\r
+    <Filter Include="utility">\r
+      <UniqueIdentifier>{11860e2d-8adf-4573-956b-785e59aef2b0}</UniqueIdentifier>\r
     </Filter>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClCompile Include="exception\win32_exception.cpp">\r
-      <Filter>Source\exception</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="stdafx.cpp">\r
-      <Filter>Afx</Filter>\r
+      <Filter>exception</Filter>\r
     </ClCompile>\r
     <ClCompile Include="log\log.cpp">\r
-      <Filter>Source\log</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="env.cpp">\r
-      <Filter>Source</Filter>\r
+      <Filter>log</Filter>\r
     </ClCompile>\r
     <ClCompile Include="diagnostics\graph.cpp">\r
-      <Filter>Source\diagnostics</Filter>\r
+      <Filter>diagnostics</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="env.cpp" />\r
+    <ClCompile Include="stdafx.cpp" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="exception\exceptions.h">\r
-      <Filter>Source\exception</Filter>\r
+      <Filter>exception</Filter>\r
     </ClInclude>\r
     <ClInclude Include="exception\win32_exception.h">\r
-      <Filter>Source\exception</Filter>\r
+      <Filter>exception</Filter>\r
     </ClInclude>\r
     <ClInclude Include="compiler\vs\disable_silly_warnings.h">\r
-      <Filter>Source\compiler\vs</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="stdafx.h">\r
-      <Filter>Afx</Filter>\r
+      <Filter>compiler\vs</Filter>\r
     </ClInclude>\r
     <ClInclude Include="concurrency\executor.h">\r
-      <Filter>Source\concurrency</Filter>\r
+      <Filter>concurrency</Filter>\r
     </ClInclude>\r
     <ClInclude Include="log\log.h">\r
-      <Filter>Source\log</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="utility\timer.h">\r
-      <Filter>Source\utility</Filter>\r
+      <Filter>log</Filter>\r
     </ClInclude>\r
     <ClInclude Include="gl\gl_check.h">\r
-      <Filter>Source\gl</Filter>\r
+      <Filter>gl</Filter>\r
     </ClInclude>\r
     <ClInclude Include="memory\page_locked_allocator.h">\r
-      <Filter>Source\memory</Filter>\r
+      <Filter>memory</Filter>\r
     </ClInclude>\r
     <ClInclude Include="memory\safe_ptr.h">\r
-      <Filter>Source\memory</Filter>\r
+      <Filter>memory</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="env.h">\r
-      <Filter>Source</Filter>\r
+    <ClInclude Include="diagnostics\graph.h">\r
+      <Filter>diagnostics</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="stdafx.h" />\r
+    <ClInclude Include="env.h" />\r
     <ClInclude Include="utility\assert.h">\r
-      <Filter>Source\utility</Filter>\r
+      <Filter>utility</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="diagnostics\graph.h">\r
-      <Filter>Source\diagnostics</Filter>\r
+    <ClInclude Include="utility\printer.h">\r
+      <Filter>utility</Filter>\r
     </ClInclude>\r
     <ClInclude Include="utility\string.h">\r
-      <Filter>Source\utility</Filter>\r
+      <Filter>utility</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="utility\printer.h">\r
-      <Filter>Source\utility</Filter>\r
+    <ClInclude Include="utility\timer.h">\r
+      <Filter>utility</Filter>\r
     </ClInclude>\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file
index 95f2c17d6528ee6a6e3d3e87b6c19450c6868039..da0e1d672f844a1f135e51432e0e1a23b20cfb41 100644 (file)
@@ -36,15 +36,17 @@ inline void SetThreadName(DWORD dwThreadID, LPCSTR szThreadName)
        {\r
                RaiseException( 0x406D1388, 0, sizeof(info)/sizeof(DWORD), (DWORD*)&info );\r
        }\r
-       __except (EXCEPTION_CONTINUE_EXECUTION)\r
-       {\r
-       }       \r
+       __except (EXCEPTION_CONTINUE_EXECUTION){}       \r
 }\r
 \r
 }\r
 \r
 class executor : boost::noncopyable\r
 {\r
+       const std::string name_;\r
+       boost::thread thread_;\r
+       tbb::atomic<bool> is_running_;\r
+       tbb::concurrent_bounded_queue<std::function<void()>> execution_queue_;\r
 public:\r
                \r
        explicit executor(const std::wstring& name = L"executor") : name_(narrow(name))\r
@@ -159,12 +161,7 @@ private:
                detail::SetThreadName(GetCurrentThreadId(), name_.c_str());\r
                while(is_running_)\r
                        execute();\r
-       }\r
-       \r
-       std::string name_;\r
-       boost::thread thread_;\r
-       tbb::atomic<bool> is_running_;\r
-       tbb::concurrent_bounded_queue<std::function<void()>> execution_queue_;\r
+       }       \r
 };\r
 \r
 }
\ No newline at end of file
index 6d530d94fed4b9b359f07ca0b55938a8594e6449..8c0e0edb1d8c5f1ddbf8e301528dff14f841af17 100644 (file)
@@ -47,7 +47,6 @@
 #include <crtdbg.h>\r
 #endif\r
 \r
-#include <winsock2.h>\r
 #include <tchar.h>\r
 #include <sstream>\r
 #include <memory>\r
 #include <boost/range/algorithm.hpp>\r
 #include <boost/signals2.hpp>\r
 \r
-#include <GLee.h>\r
-\r
-#include <SFML/Window.hpp>\r
-#include <SFML/Audio.hpp>\r
-\r
-#include "../common/utility/string.h"\r
-#include "../common/memory/safe_ptr.h"\r
+#include <common/utility/string.h>\r
+#include <common/memory/safe_ptr.h>\r
 //#include "../common/concurrency/executor.h" // Can't include this due to MSVC lambda bug\r
 \r
-#include "../common/log/Log.h"\r
-#include "../common/exception/exceptions.h"\r
-#include "../common/exception/win32_exception.h"\r
-\r
-#include <assert.h>\r
+#include <common/log/log.h>\r
+#include <common/exception/exceptions.h>\r
+#include <common/exception/win32_exception.h>\r
+#include <common/utility/assert.h>\r
 \r
 #endif\r
diff --git a/core/consumer/decklink/util.h b/core/consumer/decklink/util.h
deleted file mode 100644 (file)
index ed32821..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#pragma once\r
-\r
-#include "../../video_format.h"\r
-\r
-#include "DeckLinkAPI_h.h"\r
-\r
-namespace caspar { namespace core {\r
-       \r
-static BMDDisplayMode GetDecklinkVideoFormat(video_format::type fmt) \r
-{\r
-       switch(fmt)\r
-       {\r
-       case video_format::pal:                 return bmdModePAL;\r
-       case video_format::ntsc:                return bmdModeNTSC;\r
-       case video_format::x576p2500:   return (BMDDisplayMode)ULONG_MAX;\r
-       case video_format::x720p2500:   return (BMDDisplayMode)ULONG_MAX;\r
-       case video_format::x720p5000:   return bmdModeHD720p50;\r
-       case video_format::x720p5994:   return bmdModeHD720p5994;\r
-       case video_format::x720p6000:   return bmdModeHD720p60;\r
-       case video_format::x1080p2397:  return bmdModeHD1080p2398;\r
-       case video_format::x1080p2400:  return bmdModeHD1080p24;\r
-       case video_format::x1080i5000:  return bmdModeHD1080i50;\r
-       case video_format::x1080i5994:  return bmdModeHD1080i5994;\r
-       case video_format::x1080i6000:  return bmdModeHD1080i6000;\r
-       case video_format::x1080p2500:  return bmdModeHD1080p25;\r
-       case video_format::x1080p2997:  return bmdModeHD1080p2997;\r
-       case video_format::x1080p3000:  return bmdModeHD1080p30;\r
-       default:                                                return (BMDDisplayMode)ULONG_MAX;\r
-       }\r
-}\r
-       \r
-static IDeckLinkDisplayMode* get_display_mode(IDeckLinkOutput* output, BMDDisplayMode format)\r
-{\r
-       IDeckLinkDisplayModeIterator*           iterator;\r
-       IDeckLinkDisplayMode*                           mode;\r
-       \r
-       if(FAILED(output->GetDisplayModeIterator(&iterator)))\r
-               return nullptr;\r
-\r
-       while(SUCCEEDED(iterator->Next(&mode)) && mode != nullptr)\r
-       {       \r
-               if(mode->GetDisplayMode() == format)\r
-                       return mode;\r
-       }\r
-       iterator->Release();\r
-       return nullptr;\r
-}\r
-\r
-static IDeckLinkDisplayMode* get_display_mode(IDeckLinkOutput* output, video_format::type fmt)\r
-{\r
-       return get_display_mode(output, GetDecklinkVideoFormat(fmt));\r
-}\r
-\r
-template<typename T>\r
-static std::wstring get_version(T& deckLinkIterator)\r
-{\r
-       IDeckLinkAPIInformation* deckLinkAPIInformation;\r
-       if (FAILED(deckLinkIterator->QueryInterface(IID_IDeckLinkAPIInformation, (void**)&deckLinkAPIInformation)))\r
-               return L"Unknown";\r
-       \r
-       BSTR ver;               \r
-       deckLinkAPIInformation->GetString(BMDDeckLinkAPIVersion, &ver);\r
-       deckLinkAPIInformation->Release();      \r
-               \r
-       return ver;                                     \r
-}\r
-\r
-}}
\ No newline at end of file
diff --git a/core/consumer/frame_consumer.cpp b/core/consumer/frame_consumer.cpp
new file mode 100644 (file)
index 0000000..c7cffbf
--- /dev/null
@@ -0,0 +1,46 @@
+#include "../StdAfx.h"\r
+\r
+#include "frame_consumer.h"\r
+\r
+#include <common/memory/safe_ptr.h>\r
+\r
+#include <tbb/spin_rw_mutex.h>\r
+\r
+namespace caspar { namespace core {\r
+       \r
+std::vector<const consumer_factory_t> c_factories;\r
+tbb::spin_rw_mutex c_factories_mutex;\r
+\r
+void register_consumer_factory(const consumer_factory_t& factory)\r
+{\r
+       tbb::spin_rw_mutex::scoped_lock(c_factories_mutex, true);\r
+       c_factories.push_back(factory);\r
+}\r
+\r
+safe_ptr<core::frame_consumer> create_consumer(const std::vector<std::wstring>& params)\r
+{\r
+       if(params.empty())\r
+               BOOST_THROW_EXCEPTION(invalid_argument() << arg_name_info("params") << arg_value_info(""));\r
+       \r
+       tbb::spin_rw_mutex::scoped_lock(c_factories_mutex, false);\r
+       auto consumer = frame_consumer::empty();\r
+       std::any_of(c_factories.begin(), c_factories.end(), [&](const consumer_factory_t& factory) -> bool\r
+               {\r
+                       try\r
+                       {\r
+                               consumer = factory(params);\r
+                       }\r
+                       catch(...)\r
+                       {\r
+                               CASPAR_LOG_CURRENT_EXCEPTION();\r
+                       }\r
+                       return consumer != frame_consumer::empty();\r
+               });\r
+\r
+       if(consumer == frame_consumer::empty())\r
+               BOOST_THROW_EXCEPTION(file_not_found() << msg_info("No match found for supplied commands. Check syntax."));\r
+\r
+       return consumer;\r
+}\r
+\r
+}}
\ No newline at end of file
index af48fba55b3c9f93ae364aff3aa19a7968d04a08..c8c9dcfbb7f205a0cf3e89ff1c97cff511f5b198 100644 (file)
@@ -25,6 +25,7 @@
 #include <boost/noncopyable.hpp>\r
 \r
 #include <string>\r
+#include <vector>\r
 \r
 namespace caspar { namespace core {\r
        \r
@@ -54,4 +55,9 @@ struct frame_consumer : boost::noncopyable
        }\r
 };\r
 \r
+typedef std::function<safe_ptr<core::frame_consumer>(const std::vector<std::wstring>&)> consumer_factory_t;\r
+\r
+void register_consumer_factory(const consumer_factory_t& factory);\r
+safe_ptr<core::frame_consumer> create_consumer(const std::vector<std::wstring>& params);\r
+\r
 }}
\ No newline at end of file
index 9c29f92e5a5284c0f219ed064e2629767289ded8..b45f499f22eefab950db95c8b7430936451bc1d5 100644 (file)
@@ -106,7 +106,6 @@ public:
        }\r
 };\r
 \r
-frame_consumer_device::frame_consumer_device(frame_consumer_device&& other) : impl_(std::move(other.impl_)){}\r
 frame_consumer_device::frame_consumer_device(const printer& parent_printer, const video_format_desc& format_desc) : impl_(new implementation(parent_printer, format_desc)){}\r
 void frame_consumer_device::add(int index, safe_ptr<frame_consumer>&& consumer){impl_->add(index, std::move(consumer));}\r
 void frame_consumer_device::remove(int index){impl_->remove(index);}\r
index 1940b6574dd6a635dfe18cb6c50660856c294e1d..9c9279cfccd14b579e1a32f5e72c17f13ac454a9 100644 (file)
@@ -18,7 +18,6 @@ class frame_consumer_device : boost::noncopyable
 {\r
 public:\r
        explicit frame_consumer_device(const printer& parent_printer, const video_format_desc& format_desc);\r
-       frame_consumer_device(frame_consumer_device&& other);\r
 \r
        void add(int index, safe_ptr<frame_consumer>&& consumer);\r
        void remove(int index);\r
index 95b4b68f9db860771be3ff41c84c36dc271d4650..0529ec7c103ad8413255d9df89725d594ec1453a 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup Label="ProjectConfigurations">\r
-    <ProjectConfiguration Include="Amplify|Win32">\r
-      <Configuration>Amplify</Configuration>\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
       <Platform>Win32</Platform>\r
     </ProjectConfiguration>\r
     <ProjectConfiguration Include="Debug|Win32">\r
@@ -30,7 +30,7 @@
     <CharacterSet>Unicode</CharacterSet>\r
     <WholeProgramOptimization>false</WholeProgramOptimization>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'" Label="Configuration">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
     <ConfigurationType>StaticLibrary</ConfigurationType>\r
     <CharacterSet>Unicode</CharacterSet>\r
     <WholeProgramOptimization>false</WholeProgramOptimization>\r
@@ -53,7 +53,7 @@
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
     <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
   </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'" Label="PropertySheets">\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
     <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
   </ImportGroup>\r
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(Configuration)\</IntDir>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\;..\common;..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\;..\common;..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">..\;..\common;..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\;..\common;..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\;..\dependencies\boost_1_44_0\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)debug\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)release\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">$(ProjectDir)release\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)release\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectName)</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectName)</TargetName>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
       <FloatingPointModel>Fast</FloatingPointModel>\r
       <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
     </ClCompile>\r
-    <Link>\r
-      <AdditionalDependencies>BlueHancUtils_d.lib;sfml-audio-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;OpenGL32.lib;FreeImage.lib;GLee.lib;Winmm.lib;Ws2_32.lib;BlueVelvet3_d.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;swscale-0.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <Version>\r
-      </Version>\r
-      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <IgnoreSpecificDefaultLibraries>LIBC.LIB;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>\r
-      <GenerateMapFile>true</GenerateMapFile>\r
-      <MapFileName>\r
-      </MapFileName>\r
-      <SubSystem>Console</SubSystem>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-    </Link>\r
     <PostBuildEvent>\r
       <Command>\r
       </Command>\r
     </PostBuildEvent>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <PreBuildEvent>\r
       <FloatingPointModel>Fast</FloatingPointModel>\r
       <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
     </ClCompile>\r
-    <PreLinkEvent>\r
-      <Command>\r
-      </Command>\r
-    </PreLinkEvent>\r
-    <Link>\r
-      <AdditionalDependencies>BlueHancUtils.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;Bluevelvet3.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <Version>\r
-      </Version>\r
-      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <IgnoreSpecificDefaultLibraries>LIBC.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <GenerateMapFile>true</GenerateMapFile>\r
-      <MapExports>true</MapExports>\r
-      <SubSystem>Console</SubSystem>\r
-      <OptimizeReferences>\r
-      </OptimizeReferences>\r
-      <EnableCOMDATFolding>\r
-      </EnableCOMDATFolding>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <FixedBaseAddress>false</FixedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-    </Link>\r
     <PostBuildEvent>\r
       <Command>\r
       </Command>\r
     </PostBuildEvent>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
   </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
     <PreBuildEvent>\r
       <Command>\r
       </Command>\r
       </Command>\r
     </PreLinkEvent>\r
     <Link>\r
-      <AdditionalDependencies>BlueHancUtils.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;Bluevelvet3.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>FreeImage.lib;tbb.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
       <Version>\r
       </Version>\r
       <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <Command>\r
       </Command>\r
     </PostBuildEvent>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
     <PreBuildEvent>\r
       <Command>\r
       </Command>\r
     </PreLinkEvent>\r
-    <Link>\r
-      <AdditionalDependencies>BlueHancUtils.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;Bluevelvet3.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
-      <Version>\r
-      </Version>\r
-      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <IgnoreSpecificDefaultLibraries>LIBC.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>\r
-      <GenerateDebugInformation>true</GenerateDebugInformation>\r
-      <GenerateMapFile>true</GenerateMapFile>\r
-      <MapExports>true</MapExports>\r
-      <SubSystem>Console</SubSystem>\r
-      <OptimizeReferences>\r
-      </OptimizeReferences>\r
-      <EnableCOMDATFolding>\r
-      </EnableCOMDATFolding>\r
-      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
-      <FixedBaseAddress>false</FixedBaseAddress>\r
-      <DataExecutionPrevention>\r
-      </DataExecutionPrevention>\r
-      <TargetMachine>MachineX86</TargetMachine>\r
-    </Link>\r
     <PostBuildEvent>\r
       <Command>\r
       </Command>\r
     </PostBuildEvent>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <ItemGroup>\r
     <ClInclude Include="channel.h" />\r
-    <ClInclude Include="consumer\bluefish\memory.h" />\r
-    <ClInclude Include="consumer\bluefish\bluefish_consumer.h" />\r
-    <ClInclude Include="consumer\bluefish\util.h" />\r
-    <ClInclude Include="consumer\decklink\decklink_consumer.h" />\r
-    <ClInclude Include="consumer\decklink\util.h" />\r
-    <ClInclude Include="consumer\ffmpeg\ffmpeg_consumer.h" />\r
     <ClInclude Include="consumer\frame_consumer_device.h" />\r
-    <ClInclude Include="consumer\decklink\DeckLinkAPI_h.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="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="producer\ffmpeg\ffmpeg_producer.h" />\r
-    <ClInclude Include="producer\ffmpeg\input.h" />\r
-    <ClInclude Include="producer\ffmpeg\video\video_decoder.h" />\r
-    <ClInclude Include="producer\flash\axflash.h" />\r
-    <ClInclude Include="producer\flash\cg_producer.h" />\r
-    <ClInclude Include="producer\flash\FlashAxContainer.h" />\r
-    <ClInclude Include="producer\flash\flash_producer.h" />\r
-    <ClInclude Include="producer\flash\TimerHelper.h" />\r
     <ClInclude Include="producer\frame_producer.h" />\r
     <ClInclude Include="producer\frame_producer_device.h" />\r
-    <ClInclude Include="producer\image\image_loader.h" />\r
-    <ClInclude Include="producer\image\image_producer.h" />\r
-    <ClInclude Include="producer\image\image_scroll_producer.h" />\r
     <ClInclude Include="producer\layer.h" />\r
-    <ClInclude Include="producer\silverlight\silverlight_producer.h" />\r
-    <ClInclude Include="producer\silverlight\XcpControlHost.h" />\r
-    <ClInclude Include="producer\silverlight\xcpctrl.h" />\r
-    <ClInclude Include="producer\silverlight\xcpctrl_h.h" />\r
-    <ClInclude Include="producer\silverlight\XcpPropertyBag.h" />\r
     <ClInclude Include="producer\transition\transition_producer.h" />\r
     <ClInclude Include="video_format.h" />\r
     <CustomBuildStep Include="consumers\bluefish\BluefishException.h" />\r
   </ItemGroup>\r
   <ItemGroup>\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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
+    <ClCompile Include="consumer\frame_consumer.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="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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|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="consumer\decklink\DeckLinkAPI_i.c">\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
-    </ClCompile>\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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
     <ClCompile Include="producer\color\color_producer.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)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\decklink\decklink_producer.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)'=='Amplify|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="producer\ffmpeg\audio\audio_decoder.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)'=='Amplify|Win32'">../../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../../stdafx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\ffmpeg\ffmpeg_producer.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)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\ffmpeg\input.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)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\ffmpeg\video\video_decoder.cpp">\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">../../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../../stdafx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../../stdafx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\flash\cg_producer.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)'=='Amplify|Win32'">../../stdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../stdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\flash\Flash9e_i.c">\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\flash\FlashAxContainer.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)'=='Amplify|Win32'">../../stdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../stdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\flash\flash_producer.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)'=='Amplify|Win32'">../../stdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../stdAfx.h</PrecompiledHeaderFile>\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
+      <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_device.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)'=='Amplify|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="producer\image\image_loader.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)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\image\image_producer.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)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\image\image_scroll_producer.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)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-    </ClCompile>\r
     <ClCompile Include="producer\layer.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)'=='Amplify|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
       <PreprocessToFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</PreprocessToFile>\r
     </ClCompile>\r
-    <ClCompile Include="producer\silverlight\silverlight_producer.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)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\silverlight\XcpControlHost.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)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\silverlight\xcpctrl_i.c">\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)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\silverlight\xcpctrl_p.c">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\silverlight\XcpPropertyBag.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)'=='Amplify|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-    </ClCompile>\r
     <ClCompile Include="producer\transition\transition_producer.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)'=='Amplify|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)'=='Debug|Win32'">Create</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">Create</PrecompiledHeader>\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
   </ItemGroup>\r
-  <ItemGroup>\r
-    <Midl Include="consumer\decklink\DeckLinkAPI.idl">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-    </Midl>\r
-    <Midl Include="consumer\decklink\DeckLinkAPI_v7_1.idl">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-    </Midl>\r
-    <Midl Include="consumer\decklink\DeckLinkAPI_v7_3.idl">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-    </Midl>\r
-    <Midl Include="consumer\decklink\DeckLinkAPI_v7_6.idl">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-    </Midl>\r
-    <Midl Include="producer\flash\Flash9e.IDL">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-    </Midl>\r
-    <Midl Include="producer\silverlight\xcpctrl.idl">\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
-    </Midl>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <None Include="My Amplifier Results\r000hs\r000hs.ampl" />\r
-    <None Include="My Amplifier Results\r001lw\r001lw.ampl" />\r
-    <None Include="My Amplifier Results\r002lw\r002lw.ampl" />\r
-    <None Include="My Amplifier Results\r003lw\r003lw.ampl" />\r
-    <None Include="My Amplifier Results\r004hs\r004hs.ampl" />\r
-    <None Include="My Amplifier Results\r005hs\r005hs.ampl" />\r
-    <None Include="My Amplifier Results\r006hs\r006hs.ampl" />\r
-  </ItemGroup>\r
   <ItemGroup>\r
     <ProjectReference Include="..\common\common.vcxproj">\r
       <Project>{02308602-7fe0-4253-b96e-22134919f56a}</Project>\r
index 80d30fe7ed694f12f7c127972555c5fb13748627..50e064f9746863437cee2c5cbf1e9c54da15d514 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup>\r
-    <Filter Include="Source">\r
-      <UniqueIdentifier>{0361bd88-1d96-4d86-b3ad-34d40e2319c6}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="My Amplifier Results">\r
-      <UniqueIdentifier>{bb801cd9-8dc8-4300-a5c7-a7f5ee0805fb}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Afx">\r
-      <UniqueIdentifier>{a15604fc-d914-48e1-8fd5-ae1edeba9c6c}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\consumer">\r
+    <Filter Include="consumer">\r
       <UniqueIdentifier>{35d7835f-f813-4b4b-8d8d-8a35dfef68d3}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\consumer\oal">\r
-      <UniqueIdentifier>{3dab53b0-e0ef-4431-8c1d-9a973b269ae7}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\consumer\ogl">\r
-      <UniqueIdentifier>{7217dee5-b7ca-4128-9994-03a844c06903}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\consumer\bluefish">\r
-      <UniqueIdentifier>{89e746b3-5d4d-4ff2-a66e-279b5371ac9d}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\consumer\decklink">\r
-      <UniqueIdentifier>{aa3626b2-ad7a-4e84-8867-0f5868a21567}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\consumer\decklink\interop">\r
-      <UniqueIdentifier>{a5cb89d7-dbbb-4fca-b899-f53a069727b4}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer">\r
+    <Filter Include="producer">\r
       <UniqueIdentifier>{71accefc-1437-4e1d-9ff7-9de654a32df9}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\producer\ffmpeg">\r
-      <UniqueIdentifier>{671d13be-c7e1-4f65-9909-03b7c8adcbde}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer\ffmpeg\video">\r
-      <UniqueIdentifier>{a6d6bcc9-7ef1-47a3-9800-76e71f2b3f62}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer\ffmpeg\audio">\r
-      <UniqueIdentifier>{4031dc0c-88e9-46b5-b279-955639dca8b7}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer\ffmpeg\io">\r
-      <UniqueIdentifier>{eaa43a39-9ff0-4291-b717-4d4231d8295a}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer\color">\r
-      <UniqueIdentifier>{78b16c14-bf29-4511-9122-684ff513dbf5}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer\transition">\r
+    <Filter Include="producer\transition">\r
       <UniqueIdentifier>{26bf9811-1954-46f5-86ce-ecdc26e6db16}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source\producer\image">\r
-      <UniqueIdentifier>{3d4314f3-8a39-44e3-a0c9-9b833bb8f809}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer\decklink">\r
-      <UniqueIdentifier>{3685fbd9-c2ff-495c-9864-6b0c5778d852}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer\flash">\r
-      <UniqueIdentifier>{fc25232a-cab1-4c79-962a-b51dc51161fb}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer\flash\interop">\r
-      <UniqueIdentifier>{f99e4727-2b1b-4009-a445-99b11b071e8e}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\consumer\ffmpeg">\r
-      <UniqueIdentifier>{b651856c-ff7e-4f90-be8a-32aba6094dbd}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer\silverlight">\r
-      <UniqueIdentifier>{72cb7c9e-3b8c-4a45-8ee5-26f3dd091928}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source\producer\silverlight\interop">\r
-      <UniqueIdentifier>{865b1b03-83c0-4c59-b896-f98cd3323c00}</UniqueIdentifier>\r
+    <Filter Include="producer\color">\r
+      <UniqueIdentifier>{78b16c14-bf29-4511-9122-684ff513dbf5}</UniqueIdentifier>\r
     </Filter>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <ClInclude Include="consumer\decklink\DeckLinkAPI_h.h">\r
-      <Filter>Source\consumer\decklink\interop</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\color\color_producer.h">\r
-      <Filter>Source\producer\color</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\ffmpeg\ffmpeg_producer.h">\r
-      <Filter>Source\producer\ffmpeg</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\image\image_loader.h">\r
-      <Filter>Source\producer\image</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\image\image_producer.h">\r
-      <Filter>Source\producer\image</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\image\image_scroll_producer.h">\r
-      <Filter>Source\producer\image</Filter>\r
-    </ClInclude>\r
     <ClInclude Include="producer\transition\transition_producer.h">\r
-      <Filter>Source\producer\transition</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\frame_producer.h">\r
-      <Filter>Source\producer</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\flash\cg_producer.h">\r
-      <Filter>Source\producer\flash</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\flash\flash_producer.h">\r
-      <Filter>Source\producer\flash</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\flash\FlashAxContainer.h">\r
-      <Filter>Source\producer\flash\interop</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="consumer\bluefish\util.h">\r
-      <Filter>Source\consumer\bluefish</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="consumer\bluefish\memory.h">\r
-      <Filter>Source\consumer\bluefish</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="consumer\ogl\ogl_consumer.h">\r
-      <Filter>Source\consumer\ogl</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="consumer\oal\oal_consumer.h">\r
-      <Filter>Source\consumer\oal</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="consumer\bluefish\bluefish_consumer.h">\r
-      <Filter>Source\consumer\bluefish</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="consumer\frame_consumer.h">\r
-      <Filter>Source\consumer</Filter>\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
-      <Filter>Source\consumer</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="consumer\decklink\decklink_consumer.h">\r
-      <Filter>Source\consumer\decklink</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="consumer\decklink\util.h">\r
-      <Filter>Source\consumer\decklink</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\ffmpeg\audio\audio_decoder.h">\r
-      <Filter>Source\producer\ffmpeg\audio</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\ffmpeg\input.h">\r
-      <Filter>Source\producer\ffmpeg\io</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\ffmpeg\video\video_decoder.h">\r
-      <Filter>Source\producer\ffmpeg\video</Filter>\r
+      <Filter>consumer</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="StdAfx.h">\r
-      <Filter>Afx</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\flash\axflash.h">\r
-      <Filter>Source\producer\flash\interop</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\flash\TimerHelper.h">\r
-      <Filter>Source\producer\flash\interop</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="video_format.h">\r
-      <Filter>Source</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="channel.h">\r
-      <Filter>Source</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\decklink\decklink_producer.h">\r
-      <Filter>Source\producer\decklink</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="consumer\ffmpeg\ffmpeg_consumer.h">\r
-      <Filter>Source\consumer\ffmpeg</Filter>\r
+    <ClInclude Include="consumer\frame_consumer.h">\r
+      <Filter>consumer</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="producer\silverlight\silverlight_producer.h">\r
-      <Filter>Source\producer\silverlight</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\silverlight\XcpPropertyBag.h">\r
-      <Filter>Source\producer\silverlight\interop</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="producer\silverlight\XcpControlHost.h">\r
-      <Filter>Source\producer\silverlight\interop</Filter>\r
+      <Filter>producer</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="producer\silverlight\xcpctrl.h">\r
-      <Filter>Source\producer\silverlight\interop</Filter>\r
+    <ClInclude Include="producer\frame_producer.h">\r
+      <Filter>producer</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="producer\silverlight\xcpctrl_h.h">\r
-      <Filter>Source\producer\silverlight\interop</Filter>\r
+    <ClInclude Include="producer\color\color_producer.h">\r
+      <Filter>producer\color</Filter>\r
     </ClInclude>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <ClCompile Include="consumer\decklink\DeckLinkAPI_i.c">\r
-      <Filter>Source\consumer\decklink\interop</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\color\color_producer.cpp">\r
-      <Filter>Source\producer\color</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\ffmpeg\ffmpeg_producer.cpp">\r
-      <Filter>Source\producer\ffmpeg</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\image\image_loader.cpp">\r
-      <Filter>Source\producer\image</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\image\image_producer.cpp">\r
-      <Filter>Source\producer\image</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\image\image_scroll_producer.cpp">\r
-      <Filter>Source\producer\image</Filter>\r
-    </ClCompile>\r
     <ClCompile Include="producer\transition\transition_producer.cpp">\r
-      <Filter>Source\producer\transition</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\flash\cg_producer.cpp">\r
-      <Filter>Source\producer\flash</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\flash\flash_producer.cpp">\r
-      <Filter>Source\producer\flash</Filter>\r
+      <Filter>producer\transition</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="producer\flash\FlashAxContainer.cpp">\r
-      <Filter>Source\producer\flash\interop</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="consumer\ogl\ogl_consumer.cpp">\r
-      <Filter>Source\consumer\ogl</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="consumer\oal\oal_consumer.cpp">\r
-      <Filter>Source\consumer\oal</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="consumer\bluefish\bluefish_consumer.cpp">\r
-      <Filter>Source\consumer\bluefish</Filter>\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="consumer\frame_consumer_device.cpp">\r
-      <Filter>Source\consumer</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="consumer\decklink\decklink_consumer.cpp">\r
-      <Filter>Source\consumer\decklink</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\ffmpeg\audio\audio_decoder.cpp">\r
-      <Filter>Source\producer\ffmpeg\audio</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\ffmpeg\input.cpp">\r
-      <Filter>Source\producer\ffmpeg\io</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\ffmpeg\video\video_decoder.cpp">\r
-      <Filter>Source\producer\ffmpeg\video</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="StdAfx.cpp">\r
-      <Filter>Afx</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\flash\Flash9e_i.c">\r
-      <Filter>Source\producer\flash\interop</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="video_format.cpp">\r
-      <Filter>Source</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="channel.cpp">\r
-      <Filter>Source</Filter>\r
+      <Filter>consumer</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="producer\decklink\decklink_producer.cpp">\r
-      <Filter>Source\producer\decklink</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="consumer\ffmpeg\ffmpeg_consumer.cpp">\r
-      <Filter>Source\consumer\ffmpeg</Filter>\r
+    <ClCompile Include="producer\frame_producer.cpp">\r
+      <Filter>producer</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="producer\silverlight\silverlight_producer.cpp">\r
-      <Filter>Source\producer\silverlight</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\silverlight\XcpControlHost.cpp">\r
-      <Filter>Source\producer\silverlight\interop</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\silverlight\xcpctrl_i.c">\r
-      <Filter>Source\producer\silverlight\interop</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="producer\silverlight\xcpctrl_p.c">\r
-      <Filter>Source\producer\silverlight\interop</Filter>\r
+      <Filter>producer</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="producer\silverlight\XcpPropertyBag.cpp">\r
-      <Filter>Source\producer\silverlight\interop</Filter>\r
+    <ClCompile Include="producer\color\color_producer.cpp">\r
+      <Filter>producer\color</Filter>\r
     </ClCompile>\r
   </ItemGroup>\r
-  <ItemGroup>\r
-    <Midl Include="producer\flash\Flash9e.IDL">\r
-      <Filter>Source\producer\flash\interop</Filter>\r
-    </Midl>\r
-    <Midl Include="consumer\decklink\DeckLinkAPI_v7_6.idl">\r
-      <Filter>Source\consumer\decklink\interop</Filter>\r
-    </Midl>\r
-    <Midl Include="consumer\decklink\DeckLinkAPI.idl">\r
-      <Filter>Source\consumer\decklink\interop</Filter>\r
-    </Midl>\r
-    <Midl Include="consumer\decklink\DeckLinkAPI_v7_1.idl">\r
-      <Filter>Source\consumer\decklink\interop</Filter>\r
-    </Midl>\r
-    <Midl Include="consumer\decklink\DeckLinkAPI_v7_3.idl">\r
-      <Filter>Source\consumer\decklink\interop</Filter>\r
-    </Midl>\r
-    <Midl Include="producer\silverlight\xcpctrl.idl">\r
-      <Filter>Source\producer\silverlight\interop</Filter>\r
-    </Midl>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <None Include="My Amplifier Results\r000hs\r000hs.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r001lw\r001lw.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r002lw\r002lw.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r003lw\r003lw.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r004hs\r004hs.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r005hs\r005hs.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r006hs\r006hs.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-  </ItemGroup>\r
 </Project>
\ No newline at end of file
index 58f6888a8753c72ed2eedbcd4e7abae43f17a59a..002ef09d6df3200b196114075b6fd45efa2d3ca4 100644 (file)
@@ -67,4 +67,9 @@ safe_ptr<frame_producer> create_color_producer(const std::vector<std::wstring>&
        return make_safe<color_producer>(params[0]);\r
 }\r
 \r
+volatile struct reg\r
+{\r
+       reg(){register_producer_factory(create_color_producer);}\r
+} my_reg;\r
+\r
 }}
\ No newline at end of file
diff --git a/core/producer/ffmpeg/audio/audio_decoder.cpp b/core/producer/ffmpeg/audio/audio_decoder.cpp
deleted file mode 100644 (file)
index e0451d9..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#include "../../../stdafx.h"\r
-\r
-#include "audio_decoder.h"\r
-\r
-#if defined(_MSC_VER)\r
-#pragma warning (push)\r
-#pragma warning (disable : 4244)\r
-#endif\r
-extern "C" \r
-{\r
-       #define __STDC_CONSTANT_MACROS\r
-       #define __STDC_LIMIT_MACROS\r
-       #include <libavformat/avformat.h>\r
-       #include <libavcodec/avcodec.h>\r
-}\r
-#if defined(_MSC_VER)\r
-#pragma warning (pop)\r
-#endif\r
-\r
-namespace caspar { namespace core { namespace ffmpeg{\r
-\r
-struct audio_decoder::implementation : boost::noncopyable\r
-{\r
-       typedef std::vector<short, tbb::cache_aligned_allocator<short>> buffer;\r
-       \r
-       AVCodecContext* codec_context_;\r
-\r
-       buffer audio_buffer_;   \r
-       buffer current_chunk_;\r
-\r
-       const size_t audio_frame_size_;\r
-\r
-       static const size_t SAMPLE_RATE = 48000;\r
-       static const size_t N_CHANNELS = 2;\r
-\r
-public:\r
-       explicit implementation(AVCodecContext* codec_context, double fps) \r
-               : codec_context_(codec_context)\r
-               , audio_buffer_(4*SAMPLE_RATE*2+FF_INPUT_BUFFER_PADDING_SIZE/2)\r
-               , audio_frame_size_(static_cast<size_t>(static_cast<double>(SAMPLE_RATE) / fps) * N_CHANNELS)\r
-       {\r
-               if(!codec_context)\r
-                       BOOST_THROW_EXCEPTION(null_argument() << arg_name_info("codec_context"));                                               \r
-       }\r
-               \r
-       std::vector<std::vector<short>> execute(const aligned_buffer& audio_packet)\r
-       {                       \r
-               int written_bytes = audio_buffer_.size()*2 - FF_INPUT_BUFFER_PADDING_SIZE;\r
-               const int result = avcodec_decode_audio2(codec_context_, audio_buffer_.data(), &written_bytes, audio_packet.data(), audio_packet.size());\r
-\r
-               if(result <= 0 || codec_context_->sample_rate != SAMPLE_RATE || codec_context_->channels != 2)\r
-                       BOOST_THROW_EXCEPTION(invalid_operation() << msg_info("Invalid audio stream"));\r
-                                               \r
-               current_chunk_.insert(current_chunk_.end(), audio_buffer_.data(), audio_buffer_.data() + written_bytes/2);\r
-\r
-               std::vector<std::vector<short>> chunks_;\r
-                               \r
-               const auto last = current_chunk_.end() - current_chunk_.size() % audio_frame_size_;\r
-\r
-               for(auto it = current_chunk_.begin(); it != last; it += audio_frame_size_)              \r
-                       chunks_.push_back(std::vector<short>(it, it + audio_frame_size_));              \r
-\r
-               current_chunk_.erase(current_chunk_.begin(), last);\r
-               \r
-               return chunks_;\r
-       }\r
-};\r
-\r
-audio_decoder::audio_decoder(AVCodecContext* codec_context, double fps) : impl_(new implementation(codec_context, fps)){}\r
-std::vector<std::vector<short>> audio_decoder::execute(const aligned_buffer& audio_packet){return impl_->execute(audio_packet);}\r
-}}}
\ No newline at end of file
diff --git a/core/producer/ffmpeg/audio/audio_decoder.h b/core/producer/ffmpeg/audio/audio_decoder.h
deleted file mode 100644 (file)
index fb3d4d7..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once\r
-\r
-#include <tbb/cache_aligned_allocator.h>\r
-\r
-#include <boost/noncopyable.hpp>\r
-\r
-#include <memory>\r
-#include <vector>\r
-\r
-struct AVCodecContext;\r
-\r
-namespace caspar { namespace core { namespace ffmpeg{  \r
-       \r
-typedef std::vector<unsigned char, tbb::cache_aligned_allocator<unsigned char>> aligned_buffer;\r
-\r
-class audio_decoder : boost::noncopyable\r
-{\r
-public:\r
-       explicit audio_decoder(AVCodecContext* codec_context, double fps);\r
-       std::vector<std::vector<short>> execute(const aligned_buffer& audio_packet);\r
-private:\r
-       struct implementation;\r
-       std::shared_ptr<implementation> impl_;\r
-};\r
-\r
-}}}
\ No newline at end of file
diff --git a/core/producer/ffmpeg/ffmpeg_producer.h b/core/producer/ffmpeg/ffmpeg_producer.h
deleted file mode 100644 (file)
index 25ea8e3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once\r
-\r
-#include "../frame_producer.h"\r
-\r
-#include <common/memory/safe_ptr.h>\r
-\r
-#include <string>\r
-#include <vector>\r
-\r
-namespace caspar { namespace core { namespace ffmpeg {\r
-       \r
-safe_ptr<frame_producer> create_ffmpeg_producer(const std::vector<std::wstring>& params);\r
-\r
-}}}
\ No newline at end of file
diff --git a/core/producer/ffmpeg/video/video_decoder.cpp b/core/producer/ffmpeg/video/video_decoder.cpp
deleted file mode 100644 (file)
index f20cbae..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-#include "../../../stdafx.h"\r
-\r
-#include "video_decoder.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
-\r
-#if defined(_MSC_VER)\r
-#pragma warning (push)\r
-#pragma warning (disable : 4244)\r
-#endif\r
-extern "C" \r
-{\r
-       #define __STDC_CONSTANT_MACROS\r
-       #define __STDC_LIMIT_MACROS\r
-       #include <libswscale/swscale.h>\r
-       #include <libavformat/avformat.h>\r
-}\r
-#if defined(_MSC_VER)\r
-#pragma warning (pop)\r
-#endif\r
-\r
-namespace caspar { namespace core { namespace ffmpeg {\r
-       \r
-pixel_format::type get_pixel_format(PixelFormat pix_fmt)\r
-{\r
-       switch(pix_fmt)\r
-       {\r
-               case PIX_FMT_BGRA:              return pixel_format::bgra;\r
-               case PIX_FMT_ARGB:              return pixel_format::argb;\r
-               case PIX_FMT_RGBA:              return pixel_format::rgba;\r
-               case PIX_FMT_ABGR:              return pixel_format::abgr;\r
-               case PIX_FMT_YUV444P:   return pixel_format::ycbcr;\r
-               case PIX_FMT_YUV422P:   return pixel_format::ycbcr;\r
-               case PIX_FMT_YUV420P:   return pixel_format::ycbcr;\r
-               case PIX_FMT_YUV411P:   return pixel_format::ycbcr;\r
-               case PIX_FMT_YUV410P:   return pixel_format::ycbcr;\r
-               case PIX_FMT_YUVA420P:  return pixel_format::ycbcra;\r
-               default:                                return pixel_format::invalid;\r
-       }\r
-}\r
-\r
-pixel_format_desc get_pixel_format_desc(PixelFormat pix_fmt, size_t width, size_t height)\r
-{\r
-       // Get linesizes\r
-       AVPicture dummy_pict;   \r
-       avpicture_fill(&dummy_pict, nullptr, pix_fmt, width, height);\r
-\r
-       pixel_format_desc desc;\r
-       desc.pix_fmt = get_pixel_format(pix_fmt);\r
-               \r
-       switch(desc.pix_fmt)\r
-       {\r
-       case pixel_format::bgra:\r
-       case pixel_format::argb:\r
-       case pixel_format::rgba:\r
-       case pixel_format::abgr:\r
-               {\r
-                       desc.planes.push_back(pixel_format_desc::plane(dummy_pict.linesize[0]/4, height, 4));                                           \r
-                       return desc;\r
-               }\r
-       case pixel_format::ycbcr:\r
-       case pixel_format::ycbcra:\r
-               {               \r
-                       // Find chroma height\r
-                       size_t size2 = dummy_pict.data[2] - dummy_pict.data[1];\r
-                       size_t h2 = size2/dummy_pict.linesize[1];                       \r
-\r
-                       desc.planes.push_back(pixel_format_desc::plane(dummy_pict.linesize[0], height, 1));\r
-                       desc.planes.push_back(pixel_format_desc::plane(dummy_pict.linesize[1], h2, 1));\r
-                       desc.planes.push_back(pixel_format_desc::plane(dummy_pict.linesize[2], h2, 1));\r
-\r
-                       if(desc.pix_fmt == pixel_format::ycbcra)                                                \r
-                               desc.planes.push_back(pixel_format_desc::plane(dummy_pict.linesize[3], height, 1));     \r
-                       return desc;\r
-               }               \r
-       default:                \r
-               desc.pix_fmt = pixel_format::invalid;\r
-               return desc;\r
-       }\r
-}\r
-\r
-struct video_decoder::implementation : boost::noncopyable\r
-{      \r
-       std::shared_ptr<frame_factory> frame_factory_;\r
-       std::shared_ptr<SwsContext> sws_context_;\r
-\r
-       AVCodecContext* codec_context_;\r
-\r
-       const int width_;\r
-       const int height_;\r
-       const PixelFormat pix_fmt_;\r
-       pixel_format_desc desc_;\r
-\r
-public:\r
-       explicit implementation(AVCodecContext* codec_context, const safe_ptr<frame_factory>& frame_factory) \r
-               : frame_factory_(frame_factory)\r
-               , codec_context_(codec_context)\r
-               , width_(codec_context_->width)\r
-               , height_(codec_context_->height)\r
-               , pix_fmt_(codec_context_->pix_fmt)\r
-               , desc_(get_pixel_format_desc(pix_fmt_, width_, height_))\r
-       {\r
-               double frame_time = static_cast<double>(codec_context_->time_base.num) / static_cast<double>(codec_context_->time_base.den);\r
-               double format_frame_time = 1.0/frame_factory->get_video_format_desc().fps;\r
-               if(abs(frame_time - format_frame_time) > 0.0001)\r
-                       BOOST_THROW_EXCEPTION(file_read_error() << msg_info("Invalid video framerate.") << arg_value_info(boost::lexical_cast<std::string>(frame_time)));\r
-\r
-               if(desc_.pix_fmt == pixel_format::invalid)\r
-               {\r
-                       CASPAR_LOG(warning) << "Hardware accelerated color transform not supported.";\r
-\r
-                       desc_ = get_pixel_format_desc(PIX_FMT_BGRA, width_, height_);\r
-                       double param;\r
-                       sws_context_.reset(sws_getContext(width_, height_, pix_fmt_, width_, height_, PIX_FMT_BGRA, SWS_BILINEAR, nullptr, nullptr, &param), sws_freeContext);\r
-                       if(!sws_context_)\r
-                               BOOST_THROW_EXCEPTION(operation_failed() <<\r
-                                                                         msg_info("Could not create software scaling context.") << \r
-                                                                         boost::errinfo_api_function("sws_getContext"));\r
-               }\r
-       }\r
-       \r
-       safe_ptr<write_frame> execute(const aligned_buffer& video_packet)\r
-       {                               \r
-               safe_ptr<AVFrame> decoded_frame(avcodec_alloc_frame(), av_free);\r
-\r
-               int frame_finished = 0;\r
-               const int result = avcodec_decode_video(codec_context_, decoded_frame.get(), &frame_finished, video_packet.data(), video_packet.size());\r
-               \r
-               if(result < 0)\r
-                       BOOST_THROW_EXCEPTION(invalid_operation() << msg_info("avcodec_decode_video failed"));\r
-               \r
-               auto write = frame_factory_->create_frame(desc_);\r
-               if(sws_context_ == nullptr)\r
-               {\r
-                       tbb::parallel_for(0, static_cast<int>(desc_.planes.size()), 1, [&](int n)\r
-                       {\r
-                               auto plane            = desc_.planes[n];\r
-                               auto result           = write->image_data(n).begin();\r
-                               auto decoded          = decoded_frame->data[n];\r
-                               auto decoded_linesize = decoded_frame->linesize[n];\r
-                               \r
-                               tbb::parallel_for(0, static_cast<int>(desc_.planes[n].height), 1, [&](int y)\r
-                               {\r
-                                       std::copy_n(decoded + y*decoded_linesize, plane.linesize, result + y*plane.linesize);\r
-                               });\r
-                       });\r
-               }\r
-               else\r
-               {\r
-                       safe_ptr<AVFrame> av_frame(avcodec_alloc_frame(), av_free);     \r
-                       avcodec_get_frame_defaults(av_frame.get());                     \r
-                       avpicture_fill(reinterpret_cast<AVPicture*>(av_frame.get()), write->image_data().begin(), PIX_FMT_BGRA, width_, height_);\r
-                \r
-                       sws_scale(sws_context_.get(), decoded_frame->data, decoded_frame->linesize, 0, height_, av_frame->data, av_frame->linesize);    \r
-               }       \r
-\r
-               if(codec_context_->codec_id == CODEC_ID_DVVIDEO && frame_factory_->get_video_format_desc().mode == video_mode::upper)\r
-                       write->get_image_transform().set_fill_translation(0.0f, 1.0/static_cast<double>(height_));\r
-\r
-               return write;\r
-       }\r
-};\r
-\r
-video_decoder::video_decoder(AVCodecContext* codec_context, const safe_ptr<frame_factory>& frame_factory) : impl_(new implementation(codec_context, frame_factory)){}\r
-safe_ptr<write_frame> video_decoder::execute(const aligned_buffer& video_packet){return impl_->execute(video_packet);}\r
-}}}
\ No newline at end of file
diff --git a/core/producer/ffmpeg/video/video_decoder.h b/core/producer/ffmpeg/video/video_decoder.h
deleted file mode 100644 (file)
index a1ba8b7..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once\r
-\r
-#include <common/memory/safe_ptr.h>\r
-\r
-#include <mixer/frame_mixer_device.h>\r
-\r
-struct AVCodecContext;\r
-\r
-namespace caspar { namespace core { namespace ffmpeg {\r
-       \r
-typedef std::vector<unsigned char, tbb::cache_aligned_allocator<unsigned char>> aligned_buffer;\r
-\r
-class video_decoder : boost::noncopyable\r
-{\r
-public:\r
-       explicit video_decoder(AVCodecContext* codec_context, const safe_ptr<frame_factory>& frame_factory);\r
-       safe_ptr<write_frame> execute(const aligned_buffer& video_packet);      \r
-private:\r
-       struct implementation;\r
-       safe_ptr<implementation> impl_;\r
-};\r
-\r
-}}}
\ No newline at end of file
diff --git a/core/producer/frame_producer.cpp b/core/producer/frame_producer.cpp
new file mode 100644 (file)
index 0000000..56f403e
--- /dev/null
@@ -0,0 +1,46 @@
+#include "../StdAfx.h"\r
+\r
+#include "frame_producer.h"\r
+\r
+#include <common/memory/safe_ptr.h>\r
+\r
+#include <tbb/spin_rw_mutex.h>\r
+\r
+namespace caspar { namespace core {\r
+       \r
+std::vector<const producer_factory_t> p_factories;\r
+tbb::spin_rw_mutex p_factories_mutex;\r
+\r
+void register_producer_factory(const producer_factory_t& factory)\r
+{\r
+       tbb::spin_rw_mutex::scoped_lock(p_factories_mutex, true);\r
+       p_factories.push_back(factory);\r
+}\r
+\r
+safe_ptr<core::frame_producer> create_producer(const std::vector<std::wstring>& params)\r
+{\r
+       if(params.empty())\r
+               BOOST_THROW_EXCEPTION(invalid_argument() << arg_name_info("params") << arg_value_info(""));\r
+       \r
+       tbb::spin_rw_mutex::scoped_lock(p_factories_mutex, false);\r
+       auto producer = frame_producer::empty();\r
+       std::any_of(p_factories.begin(), p_factories.end(), [&](const producer_factory_t& factory) -> bool\r
+               {\r
+                       try\r
+                       {\r
+                               producer = factory(params);\r
+                       }\r
+                       catch(...)\r
+                       {\r
+                               CASPAR_LOG_CURRENT_EXCEPTION();\r
+                       }\r
+                       return producer != frame_producer::empty();\r
+               });\r
+\r
+       if(producer == frame_producer::empty())\r
+               BOOST_THROW_EXCEPTION(file_not_found() << msg_info("No match found for supplied commands. Check syntax."));\r
+\r
+       return producer;\r
+}\r
+\r
+}}
\ No newline at end of file
index 7b90b58091f4ae6a218b35c22ff6df82b46f43ac..2387d8b5d99e2cd5f352c2e461b2aa85ed180090 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "../mixer/frame/draw_frame.h"\r
-#include "../mixer/frame_factory.h"\r
-\r
 #include <common/memory/safe_ptr.h>\r
 #include <common/utility/printer.h>\r
 \r
+#include <mixer/frame/draw_frame.h>\r
+#include <mixer/frame_factory.h>\r
+\r
 #include <boost/noncopyable.hpp>\r
 \r
 #include <string>\r
@@ -105,4 +105,10 @@ inline std::wostream& operator<<(std::wostream& out, const safe_ptr<const frame_
        return out;\r
 }\r
 \r
+typedef std::function<safe_ptr<core::frame_producer>(const std::vector<std::wstring>&)> producer_factory_t;\r
+\r
+void register_producer_factory(const producer_factory_t& factory);\r
+safe_ptr<core::frame_producer> create_producer(const std::vector<std::wstring>& params);\r
+\r
+\r
 }}\r
index 292d8f6c8e35593de8267b46cf84025e0d6789bd..16bae281d551bd6504c8f4a56b8e7653cfad1baa 100644 (file)
@@ -2,8 +2,8 @@
 \r
 #include "frame_producer_device.h"\r
 \r
-#include "../mixer/frame/draw_frame.h"\r
-#include "../mixer/frame_factory.h"\r
+#include <mixer/frame/draw_frame.h>\r
+#include <mixer/frame_factory.h>\r
 \r
 #include "layer.h"\r
 \r
diff --git a/core/producer/image/image_producer.h b/core/producer/image/image_producer.h
deleted file mode 100644 (file)
index 35e516e..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once\r
-\r
-#include "../frame_producer.h"\r
-\r
-#include <string>\r
-#include <vector>\r
-\r
-namespace caspar { namespace core { namespace image {\r
-\r
-safe_ptr<frame_producer> create_image_producer(const std::vector<std::wstring>& params);\r
-\r
-std::wstring get_image_version();\r
-\r
-}}}
\ No newline at end of file
index e8e6eb41f7eae63199a7e8e880a9d84d07c9e726..e32901e261e919b0087c5717b68bfd8f0dcb75e9 100644 (file)
@@ -146,18 +146,18 @@ struct transition_producer::implementation : boost::noncopyable
                \r
                double dir = info_.direction == transition_direction::from_left ? 1.0 : -1.0;           \r
                \r
-               // For interalced transitions; seperate fields into seperate frames which are transitioned accordingly.\r
-\r
+               // For interlaced transitions. Seperate fields into seperate frames which are transitioned accordingly.\r
+               \r
                auto s_frame1 = make_safe<draw_frame>(src_frame);\r
                auto s_frame2 = make_safe<draw_frame>(src_frame);\r
 \r
-               s_frame1->get_audio_transform().set_gain(0);\r
+               s_frame1->get_audio_transform().set_has_audio(false);\r
                s_frame2->get_audio_transform().set_gain(1.0-alpha);\r
 \r
                auto d_frame1 = make_safe<draw_frame>(dest_frame);\r
                auto d_frame2 = make_safe<draw_frame>(dest_frame);\r
                \r
-               d_frame1->get_audio_transform().set_gain(0);\r
+               d_frame1->get_audio_transform().set_has_audio(false);\r
                d_frame2->get_audio_transform().set_gain(alpha);\r
 \r
                if(info_.type == transition::mix)\r
@@ -184,7 +184,10 @@ struct transition_producer::implementation : boost::noncopyable
                        d_frame2->get_image_transform().set_key_scale(alpha, 1.0);                      \r
                }\r
                \r
-               return draw_frame(draw_frame::interlace(s_frame1, s_frame2, format_desc_.mode), draw_frame::interlace(d_frame1, d_frame2, format_desc_.mode));\r
+               auto s_frame = s_frame1->get_image_transform() == s_frame2->get_image_transform() ? s_frame2 : draw_frame::interlace(s_frame1, s_frame2, format_desc_.mode);\r
+               auto d_frame = draw_frame::interlace(d_frame1, d_frame2, format_desc_.mode);\r
+\r
+               return draw_frame(s_frame, d_frame);\r
        }\r
 \r
        std::wstring print() const\r
index 11f3dddc2d46c8fc28b091d42639504655982001..d6fac28116fba6e874e652f0943837c7dff2d3cd 100644 (file)
@@ -44,9 +44,6 @@
 #include <crtdbg.h>\r
 #endif\r
 \r
-#include <winsock2.h>\r
-#include <tchar.h>\r
-#include <sstream>\r
 #include <memory>\r
 #include <functional>\r
 #include <algorithm>\r
 #include <boost/range/algorithm.hpp>\r
 #include <boost/signals2.hpp>\r
 \r
-#include <GLee.h>\r
-\r
-#include <SFML/Window.hpp>\r
-\r
 #include <common/utility/string.h>\r
 #include <common/memory/safe_ptr.h>\r
 //#include <common/concurrency/executor.h> // Can't include this due to MSVC lambda bug\r
@@ -80,5 +73,4 @@
 #include <common/log/Log.h>\r
 #include <common/exception/exceptions.h>\r
 #include <common/exception/win32_exception.h>\r
-\r
-#include <assert.h>\r
+#include <common/utility/assert.h>\r
index 6a4e6a6657624054000de1b6994e5d8335be4a86..0c0267d7f60a12da0aed9753cad00f25e7a4730a 100644 (file)
@@ -26,6 +26,9 @@ public:
 \r
        void process(const std::vector<short>& audio_data, int tag)\r
        {               \r
+               if(!transform_stack_.top().get_has_audio())\r
+                       return;\r
+\r
                if(audio_data_.empty())\r
                        audio_data_.resize(audio_data.size(), 0);\r
                \r
index 4f55d61401f7aba0720ae0463d861f15f0db72c6..bd4e1fd24af5748479111ec244b0fbf124db74b1 100644 (file)
@@ -5,7 +5,8 @@
 namespace caspar { namespace core {\r
        \r
 audio_transform::audio_transform()\r
-       : gain_(1.0){}\r
+       : gain_(1.0)\r
+       , audio_(true){}\r
 \r
 void audio_transform::set_gain(double value)\r
 {\r
@@ -17,9 +18,20 @@ double audio_transform::get_gain() const
        return gain_;\r
 }\r
 \r
+void audio_transform::set_has_audio(bool value)\r
+{\r
+       audio_ = value;\r
+}\r
+\r
+bool audio_transform::get_has_audio() const\r
+{\r
+       return audio_;\r
+}\r
+\r
 audio_transform& audio_transform::operator*=(const audio_transform &other) \r
 {\r
        gain_ *= other.gain_;\r
+       audio_ &= other.audio_;\r
        return *this;\r
 }\r
 \r
@@ -38,6 +50,7 @@ audio_transform lerp(const audio_transform& lhs, const audio_transform& rhs, flo
 {\r
        audio_transform result;\r
        result.set_gain(mix(lhs.get_gain(), rhs.get_gain(), alpha));\r
+       result.set_has_audio(lhs.get_has_audio() || rhs.get_has_audio());\r
        return result;\r
 }\r
 \r
index 6f671188bbad24c5a0ba030184ab318ce7de6895..67afcf42d2d7bb8298645270868c01aa72d3ade8 100644 (file)
@@ -9,11 +9,15 @@ public:
 \r
        void set_gain(double value);\r
        double get_gain() const;\r
+       \r
+       void set_has_audio(bool value);\r
+       bool get_has_audio() 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
+       bool audio_;\r
 };\r
 \r
 audio_transform lerp(const audio_transform& lhs, const audio_transform& rhs, float alpha);\r
index d4cdd2d3686a3882b284c865158a847fe5c2e356..24aeffb5266c667d599b7aecbd047c3c97bfac42 100644 (file)
@@ -4,7 +4,8 @@
 \r
 #include "draw_frame.h"\r
 \r
-#include "../../core/video_format.h"\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
@@ -60,6 +61,9 @@ public:
                return frame;\r
        }\r
 \r
+       void remove_audio();\r
+       void remove_image();\r
+\r
        virtual void process_image(image_mixer& mixer);\r
        virtual void process_audio(audio_mixer& mixer);\r
 \r
index 2a6e84438f98e740674766d4f5cb6b9309b0843a..996b7f980c8754dd6d36b5bd572d9a01a07a05b1 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup Label="ProjectConfigurations">\r
-    <ProjectConfiguration Include="Amplify|Win32">\r
-      <Configuration>Amplify</Configuration>\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
       <Platform>Win32</Platform>\r
     </ProjectConfiguration>\r
     <ProjectConfiguration Include="Debug|Win32">\r
     <ClCompile Include="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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|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="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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|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\draw_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)'=='Amplify|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\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)'=='Amplify|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)'=='Amplify|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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|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="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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|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="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
-      <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Amplify|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_kernel.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)'=='Amplify|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_mixer.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)'=='Amplify|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)'=='Amplify|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)'=='Amplify|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">Create</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>\r
     </ClCompile>\r
     <WholeProgramOptimization>true</WholeProgramOptimization>\r
     <CharacterSet>Unicode</CharacterSet>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'" Label="Configuration">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
     <ConfigurationType>StaticLibrary</ConfigurationType>\r
     <UseDebugLibraries>false</UseDebugLibraries>\r
     <WholeProgramOptimization>true</WholeProgramOptimization>\r
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'" Label="PropertySheets">\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
   <PropertyGroup Label="UserMacros" />\r
   <PropertyGroup>\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
     <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\;..\common;..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\;..\common;..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">..\;..\common;..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\;..\common;..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\;..\common;..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)debug\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)release\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">$(ProjectDir)release\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)release\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectName)</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectName)</TargetName>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
       <SubSystem>Windows</SubSystem>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
     </Link>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <ClCompile>\r
       <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
       <OptimizeReferences>true</OptimizeReferences>\r
     </Link>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
   </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
     <ClCompile>\r
       <WarningLevel>Level3</WarningLevel>\r
       <PrecompiledHeader>Use</PrecompiledHeader>\r
       <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
       <OptimizeReferences>true</OptimizeReferences>\r
     </Link>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
     <ClCompile>\r
       <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
       <OptimizeReferences>true</OptimizeReferences>\r
     </Link>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
   <ImportGroup Label="ExtensionTargets">\r
index ca290f03b103ac9b25208310f933728144d2ed7d..b805e6770fbb12fa5091fc3ab83b199d6a30ac60 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup>\r
-    <Filter Include="Source Files">\r
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
-    </Filter>\r
-    <Filter Include="Afx">\r
-      <UniqueIdentifier>{d8d51fad-4061-4768-aaa6-d53c01611eb4}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source Files\audio">\r
+    <Filter Include="audio">\r
       <UniqueIdentifier>{ad4b4d9e-2c3d-48fb-977f-edce86b653e1}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source Files\image">\r
-      <UniqueIdentifier>{54ed246e-98e3-4544-bfbb-71912a901e8e}</UniqueIdentifier>\r
+    <Filter Include="frame">\r
+      <UniqueIdentifier>{d42d9881-e19e-4128-91dd-5b7279c2b5e5}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source Files\gpu">\r
+    <Filter Include="gpu">\r
       <UniqueIdentifier>{3c5b1ceb-6788-4278-98cc-0c5865cda30a}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source Files\frame">\r
-      <UniqueIdentifier>{d42d9881-e19e-4128-91dd-5b7279c2b5e5}</UniqueIdentifier>\r
+    <Filter Include="image">\r
+      <UniqueIdentifier>{54ed246e-98e3-4544-bfbb-71912a901e8e}</UniqueIdentifier>\r
     </Filter>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <ClCompile Include="StdAfx.cpp">\r
-      <Filter>Afx</Filter>\r
-    </ClCompile>\r
     <ClCompile Include="audio\audio_transform.cpp">\r
-      <Filter>Source Files\audio</Filter>\r
+      <Filter>audio</Filter>\r
     </ClCompile>\r
     <ClCompile Include="audio\audio_mixer.cpp">\r
-      <Filter>Source Files\audio</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="image\image_kernel.cpp">\r
-      <Filter>Source Files\image</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="image\image_mixer.cpp">\r
-      <Filter>Source Files\image</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="image\image_transform.cpp">\r
-      <Filter>Source Files\image</Filter>\r
+      <Filter>audio</Filter>\r
     </ClCompile>\r
     <ClCompile Include="gpu\host_buffer.cpp">\r
-      <Filter>Source Files\gpu</Filter>\r
+      <Filter>gpu</Filter>\r
     </ClCompile>\r
     <ClCompile Include="gpu\ogl_device.cpp">\r
-      <Filter>Source Files\gpu</Filter>\r
+      <Filter>gpu</Filter>\r
     </ClCompile>\r
     <ClCompile Include="gpu\device_buffer.cpp">\r
-      <Filter>Source Files\gpu</Filter>\r
+      <Filter>gpu</Filter>\r
     </ClCompile>\r
     <ClCompile Include="frame\read_frame.cpp">\r
-      <Filter>Source Files\frame</Filter>\r
+      <Filter>frame</Filter>\r
     </ClCompile>\r
     <ClCompile Include="frame\write_frame.cpp">\r
-      <Filter>Source Files\frame</Filter>\r
+      <Filter>frame</Filter>\r
     </ClCompile>\r
     <ClCompile Include="frame\draw_frame.cpp">\r
-      <Filter>Source Files\frame</Filter>\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
+      <Filter>image</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="image\image_mixer.cpp">\r
+      <Filter>image</Filter>\r
     </ClCompile>\r
-    <ClCompile Include="frame_mixer_device.cpp">\r
-      <Filter>Source Files</Filter>\r
+    <ClCompile Include="image\image_transform.cpp">\r
+      <Filter>image</Filter>\r
     </ClCompile>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <ClInclude Include="StdAfx.h">\r
-      <Filter>Afx</Filter>\r
-    </ClInclude>\r
     <ClInclude Include="audio\audio_mixer.h">\r
-      <Filter>Source Files\audio</Filter>\r
+      <Filter>audio</Filter>\r
     </ClInclude>\r
     <ClInclude Include="audio\audio_transform.h">\r
-      <Filter>Source Files\audio</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="image\image_kernel.h">\r
-      <Filter>Source Files\image</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="image\image_mixer.h">\r
-      <Filter>Source Files\image</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="image\image_transform.h">\r
-      <Filter>Source Files\image</Filter>\r
+      <Filter>audio</Filter>\r
     </ClInclude>\r
     <ClInclude Include="gpu\device_buffer.h">\r
-      <Filter>Source Files\gpu</Filter>\r
+      <Filter>gpu</Filter>\r
     </ClInclude>\r
     <ClInclude Include="gpu\host_buffer.h">\r
-      <Filter>Source Files\gpu</Filter>\r
+      <Filter>gpu</Filter>\r
     </ClInclude>\r
     <ClInclude Include="gpu\ogl_device.h">\r
-      <Filter>Source Files\gpu</Filter>\r
+      <Filter>gpu</Filter>\r
     </ClInclude>\r
     <ClInclude Include="frame\draw_frame.h">\r
-      <Filter>Source Files\frame</Filter>\r
+      <Filter>frame</Filter>\r
     </ClInclude>\r
     <ClInclude Include="frame\pixel_format.h">\r
-      <Filter>Source Files\frame</Filter>\r
+      <Filter>frame</Filter>\r
     </ClInclude>\r
     <ClInclude Include="frame\read_frame.h">\r
-      <Filter>Source Files\frame</Filter>\r
+      <Filter>frame</Filter>\r
     </ClInclude>\r
     <ClInclude Include="frame\write_frame.h">\r
-      <Filter>Source Files\frame</Filter>\r
+      <Filter>frame</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="fwd.h">\r
-      <Filter>Source Files</Filter>\r
+    <ClInclude Include="StdAfx.h" />\r
+    <ClInclude Include="frame_factory.h" />\r
+    <ClInclude Include="frame_mixer_device.h" />\r
+    <ClInclude Include="fwd.h" />\r
+    <ClInclude Include="image\image_transform.h">\r
+      <Filter>image</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="frame_factory.h">\r
-      <Filter>Source Files</Filter>\r
+    <ClInclude Include="image\image_kernel.h">\r
+      <Filter>image</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="frame_mixer_device.h">\r
-      <Filter>Source Files</Filter>\r
+    <ClInclude Include="image\image_mixer.h">\r
+      <Filter>image</Filter>\r
     </ClInclude>\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file
diff --git a/modules/bluefish/StdAfx.cpp b/modules/bluefish/StdAfx.cpp
new file mode 100644 (file)
index 0000000..2bd615b
--- /dev/null
@@ -0,0 +1,28 @@
+/*\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
+// stdafx.cpp : source file that includes just the standard includes\r
+//     dma.pch will be the pre-compiled header\r
+//     stdafx.obj will contain the pre-compiled type information\r
+\r
+#include "stdafx.h"\r
+\r
+// TODO: reference any additional headers you need in STDAFX.H\r
+// and not in this file\r
diff --git a/modules/bluefish/StdAfx.h b/modules/bluefish/StdAfx.h
new file mode 100644 (file)
index 0000000..5bfb052
--- /dev/null
@@ -0,0 +1,64 @@
+/*\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
+// stdafx.h : include file for standard system include files,\r
+//  or project specific include files that are used frequently, but\r
+//      are changed infrequently\r
+//\r
+\r
+#pragma once\r
+\r
+#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)\r
+#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_\r
+\r
+#define BOOST_PARAMETER_MAX_ARITY 7\r
+\r
+#ifdef _DEBUG\r
+#include <crtdbg.h>\r
+#endif\r
+\r
+#include <memory>\r
+#include <array>\r
+#include <functional>\r
+#include <algorithm>\r
+#include <vector>\r
+#include <deque>\r
+#include <queue>\r
+#include <string>\r
+#include <math.h>\r
+\r
+#include <tbb/atomic.h>\r
+#include <tbb/concurrent_queue.h>\r
+\r
+#include <boost/assign.hpp>\r
+#include <boost/foreach.hpp>\r
+#include <boost/range/algorithm.hpp>\r
+\r
+#include "../common/utility/string.h"\r
+#include "../common/memory/safe_ptr.h"\r
+//#include "../common/concurrency/executor.h" // Can't include this due to MSVC lambda bug\r
+\r
+#include "../common/log/Log.h"\r
+#include "../common/exception/exceptions.h"\r
+#include "../common/exception/win32_exception.h"\r
+\r
+#include <assert.h>\r
+\r
+#endif\r
diff --git a/modules/bluefish/bluefish.cpp b/modules/bluefish/bluefish.cpp
new file mode 100644 (file)
index 0000000..7150bc1
--- /dev/null
@@ -0,0 +1,17 @@
+#include "bluefish.h"\r
+\r
+#include <core/consumer/frame_consumer.h>\r
+\r
+namespace caspar {\r
+\r
+void init_bluefish()\r
+{\r
+       try\r
+       {\r
+               blue_initialize();\r
+       }\r
+       catch(...){}\r
+       core::register_consumer_factory(create_bluefish_consumer);\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/modules/bluefish/bluefish.h b/modules/bluefish/bluefish.h
new file mode 100644 (file)
index 0000000..dbac753
--- /dev/null
@@ -0,0 +1,9 @@
+#pragma once\r
+\r
+#include "consumer/bluefish_consumer.h"\r
+\r
+namespace caspar {\r
+\r
+void init_bluefish();\r
+\r
+}
\ No newline at end of file
diff --git a/modules/bluefish/bluefish.vcxproj b/modules/bluefish/bluefish.vcxproj
new file mode 100644 (file)
index 0000000..d580d74
--- /dev/null
@@ -0,0 +1,281 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Develop|Win32">\r
+      <Configuration>Develop</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{69313D25-9F54-4FC9-9872-628A4DD79464}</ProjectGuid>\r
+    <RootNamespace>bluefish</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <ProjectName>bluefish</ProjectName>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <UseIntelTBB>true</UseIntelTBB>\r
+    <InstrumentIntelTBB>false</InstrumentIntelTBB>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\common;..\..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectName)</TargetName>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <MinimalRebuild>false</MinimalRebuild>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <SmallerTypeCheck>false</SmallerTypeCheck>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <AdditionalDependencies>\r
+      </AdditionalDependencies>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PreLinkEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreLinkEvent>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <AdditionalDependencies>\r
+      </AdditionalDependencies>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_THREADING_TOOLS=1;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PreLinkEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreLinkEvent>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <AdditionalDependencies>\r
+      </AdditionalDependencies>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;TBB_USE_PERFORMANCE_WARNINGS=1;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <AdditionalDependencies>\r
+      </AdditionalDependencies>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="bluefish.h" />\r
+    <ClInclude Include="consumer\bluefish_consumer.h" />\r
+    <ClInclude Include="StdAfx.h" />\r
+    <ClInclude Include="util\memory.h" />\r
+    <ClInclude Include="util\util.h" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="bluefish.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    </ClCompile>\r
+    <ClCompile Include="consumer\bluefish_consumer.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="StdAfx.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\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="..\..\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
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/modules/bluefish/bluefish.vcxproj.filters b/modules/bluefish/bluefish.vcxproj.filters
new file mode 100644 (file)
index 0000000..7c658a0
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="consumer">\r
+      <UniqueIdentifier>{0c50a039-638b-4d66-9b27-6ca0f75b5b63}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="util">\r
+      <UniqueIdentifier>{3de40b41-6c7c-4009-8159-b235e6d33ff6}</UniqueIdentifier>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="consumer\bluefish_consumer.h">\r
+      <Filter>consumer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="bluefish.h" />\r
+    <ClInclude Include="StdAfx.h" />\r
+    <ClInclude Include="util\memory.h">\r
+      <Filter>util</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="util\util.h">\r
+      <Filter>util</Filter>\r
+    </ClInclude>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="consumer\bluefish_consumer.cpp">\r
+      <Filter>consumer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="bluefish.cpp" />\r
+    <ClCompile Include="StdAfx.cpp" />\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
similarity index 90%
rename from core/consumer/bluefish/bluefish_consumer.cpp
rename to modules/bluefish/consumer/bluefish_consumer.cpp
index 9a1e4f18cb771fbaa3fc8b455d6b0c88d8999713..476505ac50f1c75057088924cb7e7b1fbe558717 100644 (file)
 *\r
 */\r
  \r
-#include "../../StdAfx.h"\r
+#include "../StdAfx.h"\r
 \r
 #include "bluefish_consumer.h"\r
-#include "util.h"\r
-#include "memory.h"\r
+#include "../util/util.h"\r
+#include "../util/memory.h"\r
 \r
 #include <mixer/frame/read_frame.h>\r
 \r
 #include <BlueVelvet4.h>\r
 #include <BlueHancUtils.h>\r
 \r
-#include <windows.h>\r
-\r
-#include <boost/thread/once.hpp>\r
-\r
 #include <memory>\r
 #include <array>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar { \r
        \r
 CBlueVelvet4* (*BlueVelvetFactory4)() = nullptr;\r
 const char*    (*BlueVelvetVersion)() = nullptr;\r
@@ -77,17 +73,11 @@ void blue_hanc_initialize()
        encode_hanc_frame_ex = reinterpret_cast<decltype(encode_hanc_frame_ex)>(GetProcAddress(module, "encode_hanc_frame_ex"));\r
 }\r
 \r
-void do_blue_initialize()\r
+void blue_initialize()\r
 {\r
        blue_velvet_initialize();\r
        blue_hanc_initialize();\r
 }\r
-\r
-void blue_initialize()\r
-{\r
-       static boost::once_flag flag = BOOST_ONCE_INIT;\r
-       boost::call_once(do_blue_initialize, flag);     \r
-}\r
                \r
 struct bluefish_consumer::implementation : boost::noncopyable\r
 {\r
@@ -102,7 +92,7 @@ struct bluefish_consumer::implementation : boost::noncopyable
                        \r
        std::shared_ptr<CBlueVelvet4> blue_;\r
        \r
-       video_format_desc       format_desc_;\r
+       core::video_format_desc format_desc_;\r
                \r
        unsigned long   mem_fmt_;\r
        unsigned long   upd_fmt_;\r
@@ -125,7 +115,11 @@ public:
                , res_fmt_(RES_FMT_NORMAL) \r
                , engine_mode_(VIDEO_ENGINE_FRAMESTORE)         \r
                , embed_audio_(embed_audio)\r
-               , executor_(print()){}\r
+               , executor_(print())\r
+       {\r
+               if(!BlueVelvetFactory4 || (embed_audio_ && (!encode_hanc_frame || !encode_hanc_frame)))\r
+                       BOOST_THROW_EXCEPTION(bluefish_exception() << msg_info("Bluefish drivers not found."));\r
+       }\r
 \r
        ~implementation()\r
        {\r
@@ -143,10 +137,8 @@ public:
                CASPAR_LOG(info) << print() << L" Shutting down.";      \r
        }\r
 \r
-       void initialize(const video_format_desc& format_desc, const printer& parent_printer)\r
-       {\r
-               blue_initialize();\r
-               \r
+       void initialize(const core::video_format_desc& format_desc, const printer& parent_printer)\r
+       {               \r
                format_desc_ = format_desc;\r
                parent_printer_ = parent_printer;\r
 \r
@@ -266,7 +258,7 @@ public:
                        CASPAR_LOG(error)<< print() << TEXT(" Failed to disable video output.");                \r
        }\r
 \r
-       virtual void send(const safe_ptr<const read_frame>& frame)\r
+       virtual void send(const safe_ptr<const core::read_frame>& frame)\r
        {                       \r
                static std::vector<short> silence(MAX_HANC_BUFFER_SIZE, 0);\r
                \r
@@ -357,8 +349,8 @@ public:
 \r
 bluefish_consumer::bluefish_consumer(bluefish_consumer&& other) : impl_(std::move(other.impl_)){}\r
 bluefish_consumer::bluefish_consumer(unsigned int device_index, bool embed_audio) : impl_(new implementation(device_index, embed_audio)){}     \r
-void bluefish_consumer::initialize(const video_format_desc& format_desc, const printer& parent_printer){impl_->initialize(format_desc, parent_printer);}\r
-void bluefish_consumer::send(const safe_ptr<const read_frame>& frame){impl_->send(frame);}\r
+void bluefish_consumer::initialize(const core::video_format_desc& format_desc, const printer& parent_printer){impl_->initialize(format_desc, parent_printer);}\r
+void bluefish_consumer::send(const safe_ptr<const core::read_frame>& frame){impl_->send(frame);}\r
 size_t bluefish_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
 std::wstring bluefish_consumer::print() const {return impl_->print();} \r
 \r
@@ -383,14 +375,15 @@ std::vector<std::wstring> get_bluefish_device_list()
        std::vector<std::wstring> devices;\r
 \r
        try\r
-       {\r
-               blue_initialize();\r
-               \r
+       {               \r
+               if(!BlueVelvetFactory4)\r
+                       return devices;\r
+\r
                std::shared_ptr<CBlueVelvet4> blue(BlueVelvetFactory4());\r
 \r
-               for(int n = 0; BLUE_PASS(blue->device_attach(n, FALSE)); ++n)\r
+               for(int n = 1; BLUE_PASS(blue->device_attach(n, FALSE)); ++n)\r
                {                               \r
-                       devices.push_back(L"[" + boost::lexical_cast<std::wstring>(n+1) + L"] " + get_card_desc(blue->has_video_cardtype()));\r
+                       devices.push_back(L"[" + boost::lexical_cast<std::wstring>(n) + L"] " + get_card_desc(blue->has_video_cardtype()));\r
                        blue->device_detach();          \r
                }\r
        }\r
@@ -399,10 +392,10 @@ std::vector<std::wstring> get_bluefish_device_list()
        return devices;\r
 }\r
 \r
-safe_ptr<frame_consumer> create_bluefish_consumer(const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_consumer> create_bluefish_consumer(const std::vector<std::wstring>& params)\r
 {\r
        if(params.size() < 1 || params[0] != L"BLUEFISH")\r
-               return frame_consumer::empty();\r
+               return core::frame_consumer::empty();\r
                \r
        int device_index = 1;\r
        bool embed_audio = false;\r
@@ -416,4 +409,4 @@ safe_ptr<frame_consumer> create_bluefish_consumer(const std::vector<std::wstring
        return make_safe<bluefish_consumer>(device_index, embed_audio);\r
 }\r
 \r
-}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 70%
rename from core/consumer/bluefish/bluefish_consumer.h
rename to modules/bluefish/consumer/bluefish_consumer.h
index fe68fcf7f58553358db773bcdb2fc8daa037a24d..31eeebf80aa163af695d7fa16f32a7a7a0162aca 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "../../video_format.h"\r
-#include "../../consumer/frame_consumer.h"\r
+#include <common/exception/exceptions.h>\r
+\r
+#include <core/video_format.h>\r
+#include <core/consumer/frame_consumer.h>\r
 \r
 #include <string>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar { \r
        \r
 struct bluefish_exception : public caspar_exception{};\r
 \r
-class bluefish_consumer : public frame_consumer\r
+class bluefish_consumer : public core::frame_consumer\r
 {\r
 public:\r
        explicit bluefish_consumer(unsigned int device_index, bool embed_audio = false);\r
        bluefish_consumer(bluefish_consumer&& other);\r
        \r
-       virtual void initialize(const video_format_desc& format_desc, const printer& parent_printer);\r
-       virtual void send(const safe_ptr<const read_frame>&);\r
+       virtual void initialize(const core::video_format_desc& format_desc, const printer& parent_printer);\r
+       virtual void send(const safe_ptr<const core::read_frame>&);\r
        virtual size_t buffer_depth() const;\r
        virtual std::wstring print() const;\r
 private:\r
@@ -43,8 +45,9 @@ private:
        std::shared_ptr<implementation> impl_;\r
 };\r
        \r
+void blue_initialize();\r
 std::wstring get_bluefish_version();\r
 std::vector<std::wstring> get_bluefish_device_list();\r
-safe_ptr<frame_consumer> create_bluefish_consumer(const std::vector<std::wstring>& params);\r
+safe_ptr<core::frame_consumer> create_bluefish_consumer(const std::vector<std::wstring>& params);\r
 \r
-}}\r
+}
\ No newline at end of file
similarity index 89%
rename from core/consumer/bluefish/memory.h
rename to modules/bluefish/util/memory.h
index 234b2bfdf8a5cbe2e261520b20c5a33b40906cb7..d6165c31d4f45fcc4c3aa9825a84093fdf1c6b6a 100644 (file)
@@ -3,13 +3,12 @@
 #include <Windows.h>\r
 \r
 #include <BlueVelvet4.h>\r
-#include "../../video_format.h"\r
 \r
 #include <common/memory/page_locked_allocator.h>\r
 \r
 #include <vector>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar { \r
        \r
 static const size_t MAX_HANC_BUFFER_SIZE = 256*1024;\r
 static const size_t MAX_VBI_BUFFER_SIZE = 36*1920*4;\r
@@ -41,4 +40,4 @@ private:
 };\r
 typedef std::shared_ptr<blue_dma_buffer> blue_dma_buffer_ptr;\r
 \r
-}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 70%
rename from core/consumer/bluefish/util.h
rename to modules/bluefish/util/util.h
index 1a0434248ee064a6419d5af11537e473921164a1..6df34da8c354c4d3dcfb345382507282f5ab5aa1 100644 (file)
@@ -1,9 +1,9 @@
 #pragma once\r
 \r
 #include <BlueVelvet4.h>\r
-#include "../../video_format.h"\r
+#include <core/video_format.h>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar { \r
        \r
 inline bool is_epoch_card(int card_type)\r
 {\r
@@ -15,25 +15,25 @@ inline bool is_epoch_card(int card_type)
                        card_type == CRD_BLUE_EPOCH_ULTRA;\r
 }\r
 \r
-inline EVideoMode vid_fmt_from_video_format(const video_format::type& fmt) \r
+inline EVideoMode vid_fmt_from_video_format(const core::video_format::type& fmt) \r
 {\r
        switch(fmt)\r
        {\r
-       case video_format::pal:                 return VID_FMT_PAL;\r
-       case video_format::ntsc:                return VID_FMT_NTSC;\r
-       case video_format::x576p2500:   return VID_FMT_INVALID; //not supported\r
-       case video_format::x720p2500:   return VID_FMT_720P_2500;\r
-       case video_format::x720p5000:   return VID_FMT_720P_5000;\r
-       case video_format::x720p5994:   return VID_FMT_720P_5994;\r
-       case video_format::x720p6000:   return VID_FMT_720P_6000;\r
-       case video_format::x1080p2397:  return VID_FMT_1080P_2397;\r
-       case video_format::x1080p2400:  return VID_FMT_1080P_2400;\r
-       case video_format::x1080i5000:  return VID_FMT_1080I_5000;\r
-       case video_format::x1080i5994:  return VID_FMT_1080I_5994;\r
-       case video_format::x1080i6000:  return VID_FMT_1080I_6000;\r
-       case video_format::x1080p2500:  return VID_FMT_1080P_2500;\r
-       case video_format::x1080p2997:  return VID_FMT_1080P_2997;\r
-       case video_format::x1080p3000:  return VID_FMT_1080P_3000;\r
+       case core::video_format::pal:                   return VID_FMT_PAL;\r
+       case core::video_format::ntsc:                  return VID_FMT_NTSC;\r
+       case core::video_format::x576p2500:             return VID_FMT_INVALID; //not supported\r
+       case core::video_format::x720p2500:             return VID_FMT_720P_2500;\r
+       case core::video_format::x720p5000:             return VID_FMT_720P_5000;\r
+       case core::video_format::x720p5994:             return VID_FMT_720P_5994;\r
+       case core::video_format::x720p6000:             return VID_FMT_720P_6000;\r
+       case core::video_format::x1080p2397:    return VID_FMT_1080P_2397;\r
+       case core::video_format::x1080p2400:    return VID_FMT_1080P_2400;\r
+       case core::video_format::x1080i5000:    return VID_FMT_1080I_5000;\r
+       case core::video_format::x1080i5994:    return VID_FMT_1080I_5994;\r
+       case core::video_format::x1080i6000:    return VID_FMT_1080I_6000;\r
+       case core::video_format::x1080p2500:    return VID_FMT_1080P_2500;\r
+       case core::video_format::x1080p2997:    return VID_FMT_1080P_2997;\r
+       case core::video_format::x1080p3000:    return VID_FMT_1080P_3000;\r
        default:                                                return VID_FMT_INVALID;\r
        }\r
 }\r
@@ -92,4 +92,4 @@ inline int set_card_property(const std::shared_ptr<CBlueVelvet4> pSdk, ULONG pro
        return set_card_property(pSdk.get(), prop, value);\r
 }\r
 \r
-}}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/modules/decklink/StdAfx.cpp b/modules/decklink/StdAfx.cpp
new file mode 100644 (file)
index 0000000..2bd615b
--- /dev/null
@@ -0,0 +1,28 @@
+/*\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
+// stdafx.cpp : source file that includes just the standard includes\r
+//     dma.pch will be the pre-compiled header\r
+//     stdafx.obj will contain the pre-compiled type information\r
+\r
+#include "stdafx.h"\r
+\r
+// TODO: reference any additional headers you need in STDAFX.H\r
+// and not in this file\r
diff --git a/modules/decklink/StdAfx.h b/modules/decklink/StdAfx.h
new file mode 100644 (file)
index 0000000..75da809
--- /dev/null
@@ -0,0 +1,83 @@
+/*\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
+// stdafx.h : include file for standard system include files,\r
+//  or project specific include files that are used frequently, but\r
+//      are changed infrequently\r
+//\r
+\r
+#pragma once\r
+\r
+#include "../common/compiler/vs/disable_silly_warnings.h"\r
+\r
+#define NOMINMAX\r
+\r
+#if defined(_MSC_VER)\r
+#      ifndef _SCL_SECURE_NO_WARNINGS\r
+#              define _SCL_SECURE_NO_WARNINGS\r
+#      endif\r
+#      ifndef _CRT_SECURE_NO_WARNINGS\r
+#              define _CRT_SECURE_NO_WARNINGS\r
+#      endif\r
+#endif\r
+\r
+#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)\r
+#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_\r
+\r
+#define BOOST_PARAMETER_MAX_ARITY 7\r
+\r
+#ifdef _DEBUG\r
+#include <crtdbg.h>\r
+#endif\r
+\r
+#include <memory>\r
+#include <array>\r
+#include <functional>\r
+#include <algorithm>\r
+#include <vector>\r
+#include <deque>\r
+#include <queue>\r
+#include <string>\r
+#include <math.h>\r
+\r
+#include <tbb/atomic.h>\r
+#include <tbb/concurrent_queue.h>\r
+#include <tbb/concurrent_unordered_map.h>\r
+#include <tbb/parallel_invoke.h>\r
+#include <tbb/parallel_for.h>\r
+#include <tbb/parallel_for_each.h>\r
+\r
+#include <boost/assign.hpp>\r
+#include <boost/filesystem.hpp>\r
+#include <boost/foreach.hpp>\r
+#include <boost/range/algorithm.hpp>\r
+#include <boost/signals2.hpp>\r
+\r
+#include "../common/utility/string.h"\r
+#include "../common/memory/safe_ptr.h"\r
+//#include "../common/concurrency/executor.h" // Can't include this due to MSVC lambda bug\r
+\r
+#include "../common/log/Log.h"\r
+#include "../common/exception/exceptions.h"\r
+#include "../common/exception/win32_exception.h"\r
+\r
+#include <assert.h>\r
+\r
+#endif\r
similarity index 79%
rename from core/consumer/decklink/decklink_consumer.cpp
rename to modules/decklink/consumer/decklink_consumer.cpp
index 5b4b96fa4b12e26569cb1751327541f04566661b..54d4ab1a26cc551b1eeb5b892db5dab07b3de1f5 100644 (file)
 *    along with CasparCG.  If not, see <http://www.gnu.org/licenses/>.\r
 *\r
 */\r
\r
-#include "../../stdafx.h"\r
 \r
+#include "../StdAfx.h"\r
\r
 #include "decklink_consumer.h"\r
 \r
-#include "util.h"\r
+#include "../util/util.h"\r
 \r
-#include "DeckLinkAPI_h.h"\r
+#include "../interop/DeckLinkAPI_h.h"\r
 \r
 #include <core/video_format.h>\r
 \r
@@ -39,6 +39,8 @@
 \r
 #include <boost/circular_buffer.hpp>\r
 \r
+#include <array>\r
+\r
 #pragma warning(push)\r
 #pragma warning(disable : 4996)\r
 \r
@@ -49,7 +51,7 @@
 \r
 #pragma warning(push)\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar { \r
        \r
 struct decklink_output : public IDeckLinkVideoOutputCallback, public IDeckLinkAudioOutputCallback, boost::noncopyable\r
 {              \r
@@ -76,18 +78,18 @@ struct decklink_output : public IDeckLinkVideoOutputCallback, public IDeckLinkAu
        CComQIPtr<IDeckLinkOutput>      output_;\r
        CComQIPtr<IDeckLinkKeyer>       keyer_;\r
        \r
-       video_format_desc format_desc_;\r
+       core::video_format_desc format_desc_;\r
 \r
        BMDTimeScale frame_time_scale_;\r
        BMDTimeValue frame_duration_;\r
        unsigned long frames_scheduled_;\r
        unsigned long audio_scheduled_;\r
        \r
-       tbb::concurrent_bounded_queue<safe_ptr<const read_frame>> video_frame_buffer_;\r
-       tbb::concurrent_bounded_queue<safe_ptr<const read_frame>> audio_frame_buffer_;\r
+       tbb::concurrent_bounded_queue<safe_ptr<const core::read_frame>> video_frame_buffer_;\r
+       tbb::concurrent_bounded_queue<safe_ptr<const core::read_frame>> audio_frame_buffer_;\r
 \r
 public:\r
-       decklink_output(const video_format_desc& format_desc, const printer& parent_printer, size_t device_index, bool embed_audio, bool internalKey) \r
+       decklink_output(const core::video_format_desc& format_desc, const printer& parent_printer, size_t device_index, bool embed_audio, bool internalKey) \r
                : parent_printer_(parent_printer)\r
                , model_name_(L"DECKLINK")\r
                , device_index_(device_index)\r
@@ -173,15 +175,15 @@ 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 read_frame>());\r
+                       schedule_next_video(safe_ptr<const core::read_frame>());\r
 \r
                video_frame_buffer_.set_capacity(buffer_size);\r
                audio_frame_buffer_.set_capacity(buffer_size);\r
                for(size_t n = 0; n < std::max<size_t>(2, buffer_size-2); ++n)\r
                {\r
-                       video_frame_buffer_.try_push(safe_ptr<const read_frame>());\r
+                       video_frame_buffer_.try_push(safe_ptr<const core::read_frame>());\r
                        if(embed_audio_)\r
-                               audio_frame_buffer_.try_push(safe_ptr<const read_frame>());\r
+                               audio_frame_buffer_.try_push(safe_ptr<const core::read_frame>());\r
                }\r
                \r
                if(FAILED(output_->StartScheduledPlayback(0, frame_time_scale_, 1.0))) \r
@@ -208,7 +210,7 @@ public:
        \r
        virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted (IDeckLinkVideoFrame* /*completedFrame*/, BMDOutputFrameCompletionResult /*result*/)\r
        {\r
-               safe_ptr<const read_frame> frame;               \r
+               safe_ptr<const core::read_frame> frame;         \r
                video_frame_buffer_.pop(frame);         \r
                schedule_next_video(frame);\r
                return S_OK;\r
@@ -221,13 +223,13 @@ public:
                \r
        virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples (BOOL /*preroll*/)\r
        {\r
-               safe_ptr<const read_frame> frame;\r
+               safe_ptr<const core::read_frame> frame;\r
                audio_frame_buffer_.pop(frame);\r
                schedule_next_audio(frame);\r
                return S_OK;\r
        }\r
 \r
-       void schedule_next_audio(const safe_ptr<const read_frame>& frame)\r
+       void schedule_next_audio(const safe_ptr<const core::read_frame>& frame)\r
        {\r
                static std::vector<short> silence(48000, 0);\r
 \r
@@ -241,7 +243,7 @@ public:
                        CASPAR_LOG(error) << print() << L" Failed to schedule audio.";\r
        }\r
                        \r
-       void schedule_next_video(const safe_ptr<const read_frame>& frame)\r
+       void schedule_next_video(const safe_ptr<const core::read_frame>& frame)\r
        {\r
                if(!frame->image_data().empty())\r
                        std::copy(frame->image_data().begin(), frame->image_data().end(), static_cast<char*>(reserved_frames_.front().first));\r
@@ -256,7 +258,7 @@ public:
                perf_timer_.reset();\r
        }\r
 \r
-       void send(const safe_ptr<const read_frame>& frame)\r
+       void send(const safe_ptr<const core::read_frame>& frame)\r
        {\r
                video_frame_buffer_.push(frame);\r
                if(embed_audio_)\r
@@ -296,7 +298,7 @@ public:
                });\r
        }\r
 \r
-       void initialize(const video_format_desc& format_desc, const printer& parent_printer)\r
+       void initialize(const core::video_format_desc& format_desc, const printer& parent_printer)\r
        {\r
                executor_.invoke([&]\r
                {\r
@@ -304,7 +306,7 @@ public:
                });\r
        }\r
        \r
-       void send(const safe_ptr<const read_frame>& frame)\r
+       void send(const safe_ptr<const core::read_frame>& frame)\r
        {\r
                input_->send(frame);\r
        }\r
@@ -322,57 +324,15 @@ public:
 \r
 decklink_consumer::decklink_consumer(size_t device_index, bool embed_audio, bool internalKey) : impl_(new implementation(device_index, embed_audio, internalKey)){}\r
 decklink_consumer::decklink_consumer(decklink_consumer&& other) : impl_(std::move(other.impl_)){}\r
-void decklink_consumer::initialize(const video_format_desc& format_desc, const printer& parent_printer){impl_->initialize(format_desc, parent_printer);}\r
-void decklink_consumer::send(const safe_ptr<const read_frame>& frame){impl_->send(frame);}\r
+void decklink_consumer::initialize(const core::video_format_desc& format_desc, const printer& parent_printer){impl_->initialize(format_desc, parent_printer);}\r
+void decklink_consumer::send(const safe_ptr<const core::read_frame>& frame){impl_->send(frame);}\r
 size_t decklink_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
 std::wstring decklink_consumer::print() const{return impl_->print();}\r
-\r
-std::wstring get_decklink_version() \r
-{\r
-       std::wstring version = L"Unknown";\r
-\r
-       ::CoInitialize(nullptr);\r
-       try\r
-       {\r
-               CComPtr<IDeckLinkIterator> pDecklinkIterator;\r
-               if(SUCCEEDED(pDecklinkIterator.CoCreateInstance(CLSID_CDeckLinkIterator)))              \r
-                       version = get_version(pDecklinkIterator);\r
-       }\r
-       catch(...){}\r
-       ::CoUninitialize();\r
-\r
-       return version;\r
-}\r
-\r
-std::vector<std::wstring> get_decklink_device_list()\r
-{\r
-       std::vector<std::wstring> devices;\r
-\r
-       ::CoInitialize(nullptr);\r
-       try\r
-       {\r
-               CComPtr<IDeckLinkIterator> pDecklinkIterator;\r
-               if(SUCCEEDED(pDecklinkIterator.CoCreateInstance(CLSID_CDeckLinkIterator)))\r
-               {               \r
-                       CComPtr<IDeckLink> decklink;\r
-                       for(int n = 1; pDecklinkIterator->Next(&decklink) == S_OK; ++n) \r
-                       {\r
-                               BSTR model_name = L"Unknown";\r
-                               decklink->GetModelName(&model_name);\r
-                               devices.push_back(L"[" + boost::lexical_cast<std::wstring>(n) + L"] " + model_name);    \r
-                       }\r
-               }\r
-       }\r
-       catch(...){}\r
-       ::CoUninitialize();\r
-\r
-       return devices;\r
-}\r
        \r
-safe_ptr<frame_consumer> create_decklink_consumer(const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_consumer> create_decklink_consumer(const std::vector<std::wstring>& params)\r
 {\r
        if(params.size() < 1 || params[0] != L"DECKLINK")\r
-               return frame_consumer::empty();\r
+               return core::frame_consumer::empty();\r
        \r
        int device_index = 1;\r
        bool embed_audio = false;\r
@@ -390,4 +350,4 @@ safe_ptr<frame_consumer> create_decklink_consumer(const std::vector<std::wstring
        return make_safe<decklink_consumer>(device_index, embed_audio, internal_key);\r
 }\r
 \r
-}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 67%
rename from core/consumer/decklink/decklink_consumer.h
rename to modules/decklink/consumer/decklink_consumer.h
index 174ce597042e4900e684b12993ee4e3f8aeca892..657afc8ee4e0a66bc2a0d1f454e661353fa8a99a 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "../../consumer/frame_consumer.h"\r
+#include <core/consumer/frame_consumer.h>\r
 \r
-#include "../../video_format.h"\r
+#include <core/video_format.h>\r
 \r
 #include <string>\r
+#include <vector>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar { \r
 \r
-class decklink_consumer : public frame_consumer\r
+class decklink_consumer : public core::frame_consumer\r
 {\r
 public:\r
        explicit decklink_consumer(size_t device_index, bool embed_audio = false, bool internal_key = false);\r
        decklink_consumer(decklink_consumer&& other);\r
        \r
-       virtual void initialize(const video_format_desc& format_desc, const printer& parent_printer);\r
-       virtual void send(const safe_ptr<const read_frame>&);\r
+       virtual void initialize(const core::video_format_desc& format_desc, const printer& parent_printer);\r
+       virtual void send(const safe_ptr<const core::read_frame>&);\r
        virtual size_t buffer_depth() const;\r
        virtual std::wstring print() const;\r
 \r
@@ -43,9 +44,6 @@ private:
        std::tr1::shared_ptr<implementation> impl_;\r
 };\r
 \r
-std::wstring get_decklink_version();\r
-std::vector<std::wstring> get_decklink_device_list();\r
-safe_ptr<frame_consumer> create_decklink_consumer(const std::vector<std::wstring>& params);\r
+safe_ptr<core::frame_consumer> create_decklink_consumer(const std::vector<std::wstring>& params);\r
 \r
-\r
-}}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/modules/decklink/decklink.cpp b/modules/decklink/decklink.cpp
new file mode 100644 (file)
index 0000000..3a5fd91
--- /dev/null
@@ -0,0 +1,74 @@
+#include "stdafx.h"\r
+\r
+#include "decklink.h"\r
+#include "util/util.h"\r
+\r
+#include "consumer/decklink_consumer.h"\r
+#include "producer/decklink_producer.h"\r
+\r
+#include <core/consumer/frame_consumer.h>\r
+#include <core/producer/frame_producer.h>\r
+\r
+#include "interop/DeckLinkAPI_h.h"\r
+\r
+#pragma warning(push)\r
+#pragma warning(disable : 4996)\r
+\r
+       #include <atlbase.h>\r
+\r
+       #include <atlcom.h>\r
+       #include <atlhost.h>\r
+\r
+#pragma warning(push)\r
+\r
+namespace caspar{\r
+\r
+void init_decklink()\r
+{\r
+       core::register_consumer_factory(create_decklink_consumer);\r
+       core::register_producer_factory(create_decklink_producer);\r
+}\r
+\r
+std::wstring get_decklink_version() \r
+{\r
+       std::wstring version = L"Unknown";\r
+\r
+       ::CoInitialize(nullptr);\r
+       try\r
+       {\r
+               CComPtr<IDeckLinkIterator> pDecklinkIterator;\r
+               if(SUCCEEDED(pDecklinkIterator.CoCreateInstance(CLSID_CDeckLinkIterator)))              \r
+                       version = get_version(pDecklinkIterator);\r
+       }\r
+       catch(...){}\r
+       ::CoUninitialize();\r
+\r
+       return version;\r
+}\r
+\r
+std::vector<std::wstring> get_decklink_device_list()\r
+{\r
+       std::vector<std::wstring> devices;\r
+\r
+       ::CoInitialize(nullptr);\r
+       try\r
+       {\r
+               CComPtr<IDeckLinkIterator> pDecklinkIterator;\r
+               if(SUCCEEDED(pDecklinkIterator.CoCreateInstance(CLSID_CDeckLinkIterator)))\r
+               {               \r
+                       CComPtr<IDeckLink> decklink;\r
+                       for(int n = 1; pDecklinkIterator->Next(&decklink) == S_OK; ++n) \r
+                       {\r
+                               BSTR model_name = L"Unknown";\r
+                               decklink->GetModelName(&model_name);\r
+                               devices.push_back(L"[" + boost::lexical_cast<std::wstring>(n) + L"] " + model_name);    \r
+                       }\r
+               }\r
+       }\r
+       catch(...){}\r
+       ::CoUninitialize();\r
+\r
+       return devices;\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/modules/decklink/decklink.h b/modules/decklink/decklink.h
new file mode 100644 (file)
index 0000000..66e15cd
--- /dev/null
@@ -0,0 +1,13 @@
+#pragma once\r
+\r
+#include <string>\r
+#include <vector>\r
+\r
+namespace caspar {\r
+\r
+void init_decklink();\r
+\r
+std::wstring get_decklink_version();\r
+std::vector<std::wstring> get_decklink_device_list();\r
+\r
+}
\ No newline at end of file
diff --git a/modules/decklink/decklink.vcxproj b/modules/decklink/decklink.vcxproj
new file mode 100644 (file)
index 0000000..1d630df
--- /dev/null
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Develop|Win32">\r
+      <Configuration>Develop</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{D3611658-8F54-43CF-B9AF-A5CF8C1102EA}</ProjectGuid>\r
+    <RootNamespace>decklink</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <ProjectName>decklink</ProjectName>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <UseIntelTBB>true</UseIntelTBB>\r
+    <InstrumentIntelTBB>false</InstrumentIntelTBB>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectName)</TargetName>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <MinimalRebuild>false</MinimalRebuild>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <SmallerTypeCheck>false</SmallerTypeCheck>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_THREADING_TOOLS=1;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;TBB_USE_PERFORMANCE_WARNINGS=1;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="consumer\decklink_consumer.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="decklink.cpp" />\r
+    <ClCompile Include="interop\DeckLinkAPI_i.c">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\decklink_producer.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="StdAfx.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="consumer\decklink_consumer.h" />\r
+    <ClInclude Include="decklink.h" />\r
+    <ClInclude Include="interop\DeckLinkAPI_h.h" />\r
+    <ClInclude Include="producer\decklink_producer.h" />\r
+    <ClInclude Include="StdAfx.h" />\r
+    <ClInclude Include="util\util.h" />\r
+  </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)'=='Develop|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+    </Midl>\r
+    <Midl Include="interop\DeckLinkAPI_v7_1.idl">\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+    </Midl>\r
+    <Midl Include="interop\DeckLinkAPI_v7_3.idl">\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+    </Midl>\r
+    <Midl Include="interop\DeckLinkAPI_v7_6.idl">\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+    </Midl>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\common\common.vcxproj">\r
+      <Project>{02308602-7fe0-4253-b96e-22134919f56a}</Project>\r
+    </ProjectReference>\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
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/modules/decklink/decklink.vcxproj.filters b/modules/decklink/decklink.vcxproj.filters
new file mode 100644 (file)
index 0000000..e53966d
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="consumer">\r
+      <UniqueIdentifier>{681577c3-a264-4849-bdef-27fc1988e50f}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="interop">\r
+      <UniqueIdentifier>{8f268fa2-b236-4cb5-86dc-ca6612b251a5}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="producer">\r
+      <UniqueIdentifier>{d1c2b767-8787-4ba5-b141-0c17d030bfe0}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="util">\r
+      <UniqueIdentifier>{963cca43-0294-4fdd-a786-b98499c22644}</UniqueIdentifier>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="interop\DeckLinkAPI_i.c">\r
+      <Filter>interop</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="consumer\decklink_consumer.cpp">\r
+      <Filter>consumer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\decklink_producer.cpp">\r
+      <Filter>producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="decklink.cpp" />\r
+    <ClCompile Include="StdAfx.cpp" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="interop\DeckLinkAPI_h.h">\r
+      <Filter>interop</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="consumer\decklink_consumer.h">\r
+      <Filter>consumer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\decklink_producer.h">\r
+      <Filter>producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="StdAfx.h" />\r
+    <ClInclude Include="decklink.h" />\r
+    <ClInclude Include="util\util.h">\r
+      <Filter>util</Filter>\r
+    </ClInclude>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Midl Include="interop\DeckLinkAPI_v7_1.idl">\r
+      <Filter>interop</Filter>\r
+    </Midl>\r
+    <Midl Include="interop\DeckLinkAPI_v7_3.idl">\r
+      <Filter>interop</Filter>\r
+    </Midl>\r
+    <Midl Include="interop\DeckLinkAPI_v7_6.idl">\r
+      <Filter>interop</Filter>\r
+    </Midl>\r
+    <Midl Include="interop\DeckLinkAPI.idl">\r
+      <Filter>interop</Filter>\r
+    </Midl>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
similarity index 80%
rename from core/producer/decklink/decklink_producer.cpp
rename to modules/decklink/producer/decklink_producer.cpp
index 131a495288748eccc20e9742b91c87d04a86ef1c..6b15fc41d6d6a884e55b8eee66c2deec418411a0 100644 (file)
 *\r
 */\r
  \r
-#include "../../stdafx.h"\r
+#include "../stdafx.h"\r
 \r
 #include "decklink_producer.h"\r
 \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
+#include "../interop/DeckLinkAPI_h.h" // TODO: Change this\r
+#include "../util/util.h" // TODO: Change this\r
 \r
 #include <common/diagnostics/graph.h>\r
 #include <common/concurrency/executor.h>\r
@@ -48,7 +48,7 @@
 \r
 #include <functional>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar { \r
 \r
 class decklink_input : public IDeckLinkInputCallback\r
 {\r
@@ -59,7 +59,7 @@ class decklink_input : public IDeckLinkInputCallback
        } co_;\r
 \r
        printer parent_printer_;\r
-       const video_format_desc format_desc_;\r
+       const core::video_format_desc format_desc_;\r
        std::wstring model_name_;\r
        const size_t device_index_;\r
 \r
@@ -72,20 +72,20 @@ class decklink_input : public IDeckLinkInputCallback
 \r
        std::vector<short>                      audio_data_;\r
 \r
-       std::shared_ptr<frame_factory> frame_factory_;\r
+       std::shared_ptr<core::frame_factory> frame_factory_;\r
 \r
-       tbb::concurrent_bounded_queue<safe_ptr<draw_frame>> frame_buffer_;\r
-       safe_ptr<draw_frame> tail_;\r
+       tbb::concurrent_bounded_queue<safe_ptr<core::draw_frame>> frame_buffer_;\r
+       safe_ptr<core::draw_frame> tail_;\r
 \r
 public:\r
 \r
-       decklink_input(const video_format_desc& format_desc, size_t device_index, const std::shared_ptr<frame_factory>& frame_factory, const printer& parent_printer)\r
+       decklink_input(const core::video_format_desc& format_desc, size_t device_index, const std::shared_ptr<core::frame_factory>& frame_factory, const printer& parent_printer)\r
                : parent_printer_(parent_printer)\r
                , format_desc_(format_desc)\r
                , device_index_(device_index)\r
                , model_name_(L"DECKLINK")\r
                , frame_factory_(frame_factory)\r
-               , tail_(draw_frame::empty())\r
+               , tail_(core::draw_frame::empty())\r
        {\r
                frame_buffer_.set_capacity(4);\r
                \r
@@ -169,11 +169,11 @@ public:
                if(FAILED(video->GetBytes(&bytes)))\r
                        return S_OK;\r
 \r
-               pixel_format_desc desc;\r
-               desc.pix_fmt = pixel_format::ycbcr;\r
-               desc.planes.push_back(pixel_format_desc::plane(d_mode_->GetWidth(),   d_mode_->GetHeight(), 1));\r
-               desc.planes.push_back(pixel_format_desc::plane(d_mode_->GetWidth()/2, d_mode_->GetHeight(), 1));\r
-               desc.planes.push_back(pixel_format_desc::plane(d_mode_->GetWidth()/2, d_mode_->GetHeight(), 1));                        \r
+               core::pixel_format_desc desc;\r
+               desc.pix_fmt = core::pixel_format::ycbcr;\r
+               desc.planes.push_back(core::pixel_format_desc::plane(d_mode_->GetWidth(),   d_mode_->GetHeight(), 1));\r
+               desc.planes.push_back(core::pixel_format_desc::plane(d_mode_->GetWidth()/2, d_mode_->GetHeight(), 1));\r
+               desc.planes.push_back(core::pixel_format_desc::plane(d_mode_->GetWidth()/2, d_mode_->GetHeight(), 1));                  \r
                auto frame = frame_factory_->create_frame(desc);\r
 \r
                unsigned char* data = reinterpret_cast<unsigned char*>(bytes);\r
@@ -230,7 +230,7 @@ public:
                return nullptr;\r
        }\r
 \r
-       safe_ptr<draw_frame> get_frame()\r
+       safe_ptr<core::draw_frame> get_frame()\r
        {\r
                frame_buffer_.try_pop(tail_);\r
                return tail_;\r
@@ -242,19 +242,19 @@ public:
        }\r
 };\r
        \r
-class decklink_producer : public frame_producer\r
+class decklink_producer : public core::frame_producer\r
 {      \r
        const size_t device_index_;\r
        printer parent_printer_;\r
 \r
        std::unique_ptr<decklink_input> input_;\r
        \r
-       const video_format_desc format_desc_;\r
+       const core::video_format_desc format_desc_;\r
        \r
        executor executor_;\r
 public:\r
 \r
-       explicit decklink_producer(const video_format_desc& format_desc, size_t device_index)\r
+       explicit decklink_producer(const core::video_format_desc& format_desc, size_t device_index)\r
                : format_desc_(format_desc) \r
                , device_index_(device_index){}\r
 \r
@@ -266,7 +266,7 @@ public:
                });\r
        }\r
 \r
-       virtual void initialize(const safe_ptr<frame_factory>& frame_factory)\r
+       virtual void initialize(const safe_ptr<core::frame_factory>& frame_factory)\r
        {\r
                executor_.start();\r
                executor_.invoke([=]\r
@@ -277,7 +277,7 @@ public:
 \r
        virtual void set_parent_printer(const printer& parent_printer) { parent_printer_ = parent_printer;}\r
        \r
-       virtual safe_ptr<draw_frame> receive()\r
+       virtual safe_ptr<core::draw_frame> receive()\r
        {\r
                return input_->get_frame();\r
        }\r
@@ -288,10 +288,10 @@ public:
        }\r
 };\r
 \r
-safe_ptr<frame_producer> create_decklink_producer(const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_producer> create_decklink_producer(const std::vector<std::wstring>& params)\r
 {\r
        if(params.empty() || !boost::iequals(params[0], "decklink"))\r
-               return frame_producer::empty();\r
+               return core::frame_producer::empty();\r
 \r
        size_t device_index = 1;\r
        if(params.size() > 1)\r
@@ -300,14 +300,14 @@ safe_ptr<frame_producer> create_decklink_producer(const std::vector<std::wstring
                catch(boost::bad_lexical_cast&){}\r
        }\r
 \r
-       video_format_desc format_desc = video_format_desc::get(L"PAL");\r
+       core::video_format_desc format_desc = core::video_format_desc::get(L"PAL");\r
        if(params.size() > 2)\r
        {\r
-               format_desc = video_format_desc::get(params[2]);\r
-               format_desc = format_desc.format != video_format::invalid ? format_desc : video_format_desc::get(L"PAL");\r
+               format_desc = core::video_format_desc::get(params[2]);\r
+               format_desc = format_desc.format != core::video_format::invalid ? format_desc : core::video_format_desc::get(L"PAL");\r
        }\r
 \r
        return make_safe<decklink_producer>(format_desc, device_index);\r
 }\r
 \r
-}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 80%
rename from core/producer/decklink/decklink_producer.h
rename to modules/decklink/producer/decklink_producer.h
index b55a773f982730f677ae11844f6644aec02006b1..6aeaa975f7d57bb79b13a395320d67e759768b07 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "../frame_producer.h"\r
+#include <core/producer/frame_producer.h>\r
 \r
 #include <string>\r
 #include <vector>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar { \r
        \r
-safe_ptr<frame_producer> create_decklink_producer(const std::vector<std::wstring>& params);\r
+safe_ptr<core::frame_producer> create_decklink_producer(const std::vector<std::wstring>& params);\r
 \r
-}}\r
+}\r
diff --git a/modules/decklink/util/util.h b/modules/decklink/util/util.h
new file mode 100644 (file)
index 0000000..803ffe2
--- /dev/null
@@ -0,0 +1,68 @@
+#pragma once\r
+\r
+#include <core/video_format.h>\r
+\r
+#include "../interop/DeckLinkAPI_h.h"\r
+\r
+namespace caspar { \r
+       \r
+static BMDDisplayMode GetDecklinkVideoFormat(core::video_format::type fmt) \r
+{\r
+       switch(fmt)\r
+       {\r
+       case core::video_format::pal:                   return bmdModePAL;\r
+       case core::video_format::ntsc:                  return bmdModeNTSC;\r
+       case core::video_format::x576p2500:             return (BMDDisplayMode)ULONG_MAX;\r
+       case core::video_format::x720p2500:             return (BMDDisplayMode)ULONG_MAX;\r
+       case core::video_format::x720p5000:             return bmdModeHD720p50;\r
+       case core::video_format::x720p5994:             return bmdModeHD720p5994;\r
+       case core::video_format::x720p6000:             return bmdModeHD720p60;\r
+       case core::video_format::x1080p2397:    return bmdModeHD1080p2398;\r
+       case core::video_format::x1080p2400:    return bmdModeHD1080p24;\r
+       case core::video_format::x1080i5000:    return bmdModeHD1080i50;\r
+       case core::video_format::x1080i5994:    return bmdModeHD1080i5994;\r
+       case core::video_format::x1080i6000:    return bmdModeHD1080i6000;\r
+       case core::video_format::x1080p2500:    return bmdModeHD1080p25;\r
+       case core::video_format::x1080p2997:    return bmdModeHD1080p2997;\r
+       case core::video_format::x1080p3000:    return bmdModeHD1080p30;\r
+       default:                                                return (BMDDisplayMode)ULONG_MAX;\r
+       }\r
+}\r
+       \r
+static IDeckLinkDisplayMode* get_display_mode(IDeckLinkOutput* output, BMDDisplayMode format)\r
+{\r
+       IDeckLinkDisplayModeIterator*           iterator;\r
+       IDeckLinkDisplayMode*                           mode;\r
+       \r
+       if(FAILED(output->GetDisplayModeIterator(&iterator)))\r
+               return nullptr;\r
+\r
+       while(SUCCEEDED(iterator->Next(&mode)) && mode != nullptr)\r
+       {       \r
+               if(mode->GetDisplayMode() == format)\r
+                       return mode;\r
+       }\r
+       iterator->Release();\r
+       return nullptr;\r
+}\r
+\r
+static IDeckLinkDisplayMode* get_display_mode(IDeckLinkOutput* output, core::video_format::type fmt)\r
+{\r
+       return get_display_mode(output, GetDecklinkVideoFormat(fmt));\r
+}\r
+\r
+template<typename T>\r
+static std::wstring get_version(T& deckLinkIterator)\r
+{\r
+       IDeckLinkAPIInformation* deckLinkAPIInformation;\r
+       if (FAILED(deckLinkIterator->QueryInterface(IID_IDeckLinkAPIInformation, (void**)&deckLinkAPIInformation)))\r
+               return L"Unknown";\r
+       \r
+       BSTR ver;               \r
+       deckLinkAPIInformation->GetString(BMDDeckLinkAPIVersion, &ver);\r
+       deckLinkAPIInformation->Release();      \r
+               \r
+       return ver;                                     \r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/modules/ffmpeg/StdAfx.cpp b/modules/ffmpeg/StdAfx.cpp
new file mode 100644 (file)
index 0000000..2bd615b
--- /dev/null
@@ -0,0 +1,28 @@
+/*\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
+// stdafx.cpp : source file that includes just the standard includes\r
+//     dma.pch will be the pre-compiled header\r
+//     stdafx.obj will contain the pre-compiled type information\r
+\r
+#include "stdafx.h"\r
+\r
+// TODO: reference any additional headers you need in STDAFX.H\r
+// and not in this file\r
diff --git a/modules/ffmpeg/StdAfx.h b/modules/ffmpeg/StdAfx.h
new file mode 100644 (file)
index 0000000..5c4ac8f
--- /dev/null
@@ -0,0 +1,82 @@
+/*\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
+// stdafx.h : include file for standard system include files,\r
+//  or project specific include files that are used frequently, but\r
+//      are changed infrequently\r
+//\r
+\r
+#pragma once\r
+\r
+#include "../common/compiler/vs/disable_silly_warnings.h"\r
+\r
+#define NOMINMAX\r
+\r
+#if defined(_MSC_VER)\r
+#      ifndef _SCL_SECURE_NO_WARNINGS\r
+#              define _SCL_SECURE_NO_WARNINGS\r
+#      endif\r
+#      ifndef _CRT_SECURE_NO_WARNINGS\r
+#              define _CRT_SECURE_NO_WARNINGS\r
+#      endif\r
+#endif\r
+\r
+#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)\r
+#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_\r
+\r
+#define BOOST_PARAMETER_MAX_ARITY 7\r
+\r
+#ifdef _DEBUG\r
+#include <crtdbg.h>\r
+#endif\r
+\r
+#include <memory>\r
+#include <array>\r
+#include <functional>\r
+#include <algorithm>\r
+#include <vector>\r
+#include <deque>\r
+#include <queue>\r
+#include <string>\r
+#include <math.h>\r
+\r
+#include <tbb/atomic.h>\r
+#include <tbb/concurrent_queue.h>\r
+#include <tbb/concurrent_unordered_map.h>\r
+#include <tbb/parallel_invoke.h>\r
+#include <tbb/parallel_for.h>\r
+#include <tbb/parallel_for_each.h>\r
+\r
+#include <boost/assign.hpp>\r
+#include <boost/filesystem.hpp>\r
+#include <boost/foreach.hpp>\r
+#include <boost/range/algorithm.hpp>\r
+\r
+#include "../common/utility/string.h"\r
+#include "../common/memory/safe_ptr.h"\r
+//#include "../common/concurrency/executor.h" // Can't include this due to MSVC lambda bug\r
+\r
+#include "../common/log/Log.h"\r
+#include "../common/exception/exceptions.h"\r
+#include "../common/exception/win32_exception.h"\r
+\r
+#include <assert.h>\r
+\r
+#endif\r
similarity index 91%
rename from core/consumer/ffmpeg/ffmpeg_consumer.cpp
rename to modules/ffmpeg/consumer/ffmpeg_consumer.cpp
index a91a57da72ef69641f47807bdb916e9417cf0338..45b4f5e523f38e85f7efb3f28af7e940c995a328 100644 (file)
@@ -18,7 +18,7 @@
 *\r
 */\r
  \r
-#include "../../StdAfx.h"\r
+#include "../StdAfx.h"\r
 \r
 #include "ffmpeg_consumer.h"\r
 \r
@@ -50,7 +50,7 @@ extern "C"
 #pragma warning (pop)\r
 #endif\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar { \r
        \r
 struct ffmpeg_consumer::implementation : boost::noncopyable\r
 {              \r
@@ -70,7 +70,7 @@ struct ffmpeg_consumer::implementation : boost::noncopyable
        \r
        AVOutputFormat* fmt_;\r
        std::shared_ptr<AVFormatContext> oc_;\r
-       video_format_desc format_desc_;\r
+       core::video_format_desc format_desc_;\r
 \r
        std::vector<short, tbb::cache_aligned_allocator<short>> audio_input_buffer_;\r
 \r
@@ -113,7 +113,7 @@ public:
                        url_fclose(oc_->pb); // Close the output ffmpeg.\r
        }\r
 \r
-       void initialize(const video_format_desc& format_desc, const printer& parent_printer)\r
+       void initialize(const core::video_format_desc& format_desc, const printer& parent_printer)\r
        {\r
                format_desc_ = format_desc;\r
                parent_printer_ = parent_printer;\r
@@ -241,7 +241,7 @@ public:
                                boost::errinfo_file_name(filename_));            \r
        }\r
   \r
-       void encode_video_frame(const safe_ptr<const read_frame>& frame)\r
+       void encode_video_frame(const safe_ptr<const core::read_frame>& frame)\r
        { \r
                AVCodecContext* c = video_st_->codec;\r
  \r
@@ -335,7 +335,7 @@ public:
                                boost::errinfo_file_name(filename_));\r
        }\r
        \r
-       void encode_audio_frame(const safe_ptr<const read_frame>& frame)\r
+       void encode_audio_frame(const safe_ptr<const core::read_frame>& frame)\r
        {       \r
                if(!frame->audio_data().empty())\r
                        audio_input_buffer_.insert(audio_input_buffer_.end(), frame->audio_data().begin(), frame->audio_data().end());\r
@@ -382,7 +382,7 @@ public:
                return true;\r
        }\r
         \r
-       void send(const safe_ptr<const read_frame>& frame)\r
+       void send(const safe_ptr<const core::read_frame>& frame)\r
        {\r
                active_.get();\r
                active_ = executor_.begin_invoke([=]\r
@@ -398,19 +398,19 @@ public:
 \r
 ffmpeg_consumer::ffmpeg_consumer(const std::wstring& filename) : impl_(new implementation(narrow(filename))){}\r
 ffmpeg_consumer::ffmpeg_consumer(ffmpeg_consumer&& other) : impl_(std::move(other.impl_)){}\r
-void ffmpeg_consumer::send(const safe_ptr<const read_frame>& frame){impl_->send(frame);}\r
+void ffmpeg_consumer::send(const safe_ptr<const core::read_frame>& frame){impl_->send(frame);}\r
 size_t ffmpeg_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
-void ffmpeg_consumer::initialize(const video_format_desc& format_desc, const printer& parent_printer) {impl_->initialize(format_desc, parent_printer);}\r
+void ffmpeg_consumer::initialize(const core::video_format_desc& format_desc, const printer& parent_printer) {impl_->initialize(format_desc, parent_printer);}\r
 std::wstring ffmpeg_consumer::print() const {return impl_->print();}\r
 \r
-safe_ptr<frame_consumer> create_ffmpeg_consumer(const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_consumer> create_ffmpeg_consumer(const std::vector<std::wstring>& params)\r
 {\r
        if(params.size() < 2 || params[0] != L"FILE")\r
-               return frame_consumer::empty();\r
+               return core::frame_consumer::empty();\r
        \r
        // TODO: Ask stakeholders about case where file already exists.\r
        boost::filesystem::remove(boost::filesystem::wpath(env::media_folder() + params[1])); // Delete the file if it exists\r
        return make_safe<ffmpeg_consumer>(env::media_folder() + params[1]);\r
 }\r
 \r
-}}\r
+}\r
similarity index 70%
rename from core/consumer/ffmpeg/ffmpeg_consumer.h
rename to modules/ffmpeg/consumer/ffmpeg_consumer.h
index 70f94cc1779d81951eddb1f5041c9209fd209df8..412d7caabd2bedf0a74425a59e1e7862bf6516e7 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "../../video_format.h"\r
-#include "../../consumer/frame_consumer.h"\r
+#include <core/video_format.h>\r
+#include <core/consumer/frame_consumer.h>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar { \r
        \r
-class ffmpeg_consumer : public frame_consumer\r
+class ffmpeg_consumer : public core::frame_consumer\r
 {\r
 public:        \r
        explicit ffmpeg_consumer(const std::wstring& filename);\r
        ffmpeg_consumer(ffmpeg_consumer&& other);\r
        \r
-       virtual void initialize(const video_format_desc& format_desc, const printer& parent_printer);\r
-       virtual void send(const safe_ptr<const read_frame>&);\r
+       virtual void initialize(const core::video_format_desc& format_desc, const printer& parent_printer);\r
+       virtual void send(const safe_ptr<const core::read_frame>&);\r
        virtual size_t buffer_depth() const;\r
        virtual std::wstring print() const;\r
 private:\r
@@ -39,6 +39,6 @@ private:
        std::shared_ptr<implementation> impl_;\r
 };\r
 \r
-safe_ptr<frame_consumer> create_ffmpeg_consumer(const std::vector<std::wstring>& params);\r
+safe_ptr<core::frame_consumer> create_ffmpeg_consumer(const std::vector<std::wstring>& params);\r
 \r
-}}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/modules/ffmpeg/ffmpeg.cpp b/modules/ffmpeg/ffmpeg.cpp
new file mode 100644 (file)
index 0000000..6a5ecb1
--- /dev/null
@@ -0,0 +1,54 @@
+#include "StdAfx.h"\r
+\r
+#include "consumer/ffmpeg_consumer.h"\r
+#include "producer/ffmpeg_producer.h"\r
+\r
+#include <core/consumer/frame_consumer.h>\r
+#include <core/producer/frame_producer.h>\r
+\r
+#if defined(_MSC_VER)\r
+#pragma warning (disable : 4244)\r
+#endif\r
+\r
+extern "C" \r
+{\r
+       #define __STDC_CONSTANT_MACROS\r
+       #define __STDC_LIMIT_MACROS\r
+       #include <libavformat/avformat.h>\r
+       #include <libswscale/swscale.h>\r
+       #include <libavcodec/avcodec.h>\r
+}\r
+\r
+namespace caspar {\r
+\r
+void init_ffmpeg()\r
+{\r
+       av_register_all();\r
+       avcodec_init();\r
+\r
+       core::register_consumer_factory(create_ffmpeg_consumer);\r
+       core::register_producer_factory(create_ffmpeg_producer);\r
+}\r
+\r
+std::wstring get_avcodec_version()\r
+{\r
+       std::wstringstream str;\r
+       str << ((avcodec_version() >> 16) & 0xFF) << L"." << ((avcodec_version() >> 8) & 0xFF) << L"." << ((avcodec_version() >> 0) & 0xFF);\r
+       return str.str();\r
+}\r
+\r
+std::wstring get_avformat_version()\r
+{\r
+       std::wstringstream str;\r
+       str << ((avformat_version() >> 16) & 0xFF) << L"." << ((avformat_version() >> 8) & 0xFF) << L"." << ((avformat_version() >> 0) & 0xFF);\r
+       return str.str();\r
+}\r
+\r
+std::wstring get_swscale_version()\r
+{\r
+       std::wstringstream str;\r
+       str << ((swscale_version() >> 16) & 0xFF) << L"." << ((swscale_version() >> 8) & 0xFF) << L"." << ((swscale_version() >> 0) & 0xFF);\r
+       return str.str();\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/modules/ffmpeg/ffmpeg.h b/modules/ffmpeg/ffmpeg.h
new file mode 100644 (file)
index 0000000..9e256a9
--- /dev/null
@@ -0,0 +1,11 @@
+#pragma once\r
+\r
+namespace caspar {\r
+\r
+void init_ffmpeg();\r
+\r
+std::wstring get_avcodec_version();\r
+std::wstring get_avformat_version();\r
+std::wstring get_swscale_version();\r
+\r
+}
\ No newline at end of file
diff --git a/modules/ffmpeg/ffmpeg.vcxproj b/modules/ffmpeg/ffmpeg.vcxproj
new file mode 100644 (file)
index 0000000..39f9098
--- /dev/null
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Develop|Win32">\r
+      <Configuration>Develop</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{F6223AF3-BE0B-4B61-8406-98922CE521C2}</ProjectGuid>\r
+    <RootNamespace>ffmpeg</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <ProjectName>ffmpeg</ProjectName>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <UseIntelTBB>true</UseIntelTBB>\r
+    <InstrumentIntelTBB>false</InstrumentIntelTBB>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectName)</TargetName>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <MinimalRebuild>false</MinimalRebuild>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <SmallerTypeCheck>false</SmallerTypeCheck>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_THREADING_TOOLS=1;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PreLinkEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreLinkEvent>\r
+    <Link>\r
+      <AdditionalDependencies>avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <Version>\r
+      </Version>\r
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <IgnoreSpecificDefaultLibraries>LIBC.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <GenerateMapFile>true</GenerateMapFile>\r
+      <MapExports>true</MapExports>\r
+      <SubSystem>Console</SubSystem>\r
+      <OptimizeReferences>\r
+      </OptimizeReferences>\r
+      <EnableCOMDATFolding>\r
+      </EnableCOMDATFolding>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <FixedBaseAddress>false</FixedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+      <TargetMachine>MachineX86</TargetMachine>\r
+    </Link>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;TBB_USE_PERFORMANCE_WARNINGS=1;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PreLinkEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreLinkEvent>\r
+    <Link>\r
+      <AdditionalDependencies>avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <Version>\r
+      </Version>\r
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <IgnoreSpecificDefaultLibraries>LIBC.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <GenerateMapFile>true</GenerateMapFile>\r
+      <MapExports>true</MapExports>\r
+      <SubSystem>Console</SubSystem>\r
+      <OptimizeReferences>\r
+      </OptimizeReferences>\r
+      <EnableCOMDATFolding>\r
+      </EnableCOMDATFolding>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <FixedBaseAddress>false</FixedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+      <TargetMachine>MachineX86</TargetMachine>\r
+    </Link>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="consumer\ffmpeg_consumer.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="ffmpeg.cpp" />\r
+    <ClCompile Include="producer\audio\audio_decoder.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\ffmpeg_producer.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\input.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\video\video_decoder.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="StdAfx.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="consumer\ffmpeg_consumer.h" />\r
+    <ClInclude Include="ffmpeg.h" />\r
+    <ClInclude Include="producer\audio\audio_decoder.h" />\r
+    <ClInclude Include="producer\ffmpeg_producer.h" />\r
+    <ClInclude Include="producer\input.h" />\r
+    <ClInclude Include="producer\video\video_decoder.h" />\r
+    <ClInclude Include="StdAfx.h" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\common\common.vcxproj">\r
+      <Project>{02308602-7fe0-4253-b96e-22134919f56a}</Project>\r
+    </ProjectReference>\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
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/modules/ffmpeg/ffmpeg.vcxproj.filters b/modules/ffmpeg/ffmpeg.vcxproj.filters
new file mode 100644 (file)
index 0000000..f646953
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="consumer">\r
+      <UniqueIdentifier>{4db7d9c3-08ea-4423-a303-f18737629268}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="producer">\r
+      <UniqueIdentifier>{c5a94fd1-4552-4f6d-97cd-24e44e662e0f}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="producer\video">\r
+      <UniqueIdentifier>{4b0f3949-6dc5-4895-837f-4c3ef1759a90}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="producer\audio">\r
+      <UniqueIdentifier>{6937307b-550f-48f8-9cc0-509de0e18ddc}</UniqueIdentifier>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="producer\ffmpeg_producer.cpp">\r
+      <Filter>producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\input.cpp">\r
+      <Filter>producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\video\video_decoder.cpp">\r
+      <Filter>producer\video</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\audio\audio_decoder.cpp">\r
+      <Filter>producer\audio</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="consumer\ffmpeg_consumer.cpp">\r
+      <Filter>consumer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="ffmpeg.cpp" />\r
+    <ClCompile Include="StdAfx.cpp" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="producer\ffmpeg_producer.h">\r
+      <Filter>producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\input.h">\r
+      <Filter>producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\video\video_decoder.h">\r
+      <Filter>producer\video</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\audio\audio_decoder.h">\r
+      <Filter>producer\audio</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="consumer\ffmpeg_consumer.h">\r
+      <Filter>consumer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="StdAfx.h" />\r
+    <ClInclude Include="ffmpeg.h" />\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
similarity index 81%
rename from core/producer/ffmpeg/ffmpeg_producer.cpp
rename to modules/ffmpeg/producer/ffmpeg_producer.cpp
index 66219f24657c2fcba4970e0479e40825d598008c..4ea470ca5655e9f5071e0a94549f5e01293ec3e5 100644 (file)
@@ -1,4 +1,4 @@
-#include "../../stdafx.h"\r
+#include "../stdafx.h"\r
 \r
 #include "ffmpeg_producer.h"\r
 \r
 #include <mixer/audio/audio_transform.h>\r
 \r
 #include <common/env.h>\r
+#include <common/utility/timer.h>\r
 \r
 #include <tbb/parallel_invoke.h>\r
 \r
 #include <deque>\r
 #include <functional>\r
 \r
-namespace caspar { namespace core { namespace ffmpeg{\r
+namespace caspar {\r
        \r
-struct ffmpeg_producer : public frame_producer\r
+struct ffmpeg_producer : public core::frame_producer\r
 {\r
        const std::wstring                                      filename_;\r
        const bool                                                      loop_;\r
@@ -33,20 +34,20 @@ struct ffmpeg_producer : public frame_producer
        std::unique_ptr<audio_decoder>          audio_decoder_;\r
        std::unique_ptr<video_decoder>          video_decoder_;\r
 \r
-       std::deque<safe_ptr<write_frame>>       video_frame_channel_;   \r
-       std::deque<std::vector<short>>          audio_chunk_channel_;\r
+       std::deque<safe_ptr<core::write_frame>> video_frame_channel_;   \r
+       std::deque<std::vector<short>>                  audio_chunk_channel_;\r
 \r
-       std::queue<safe_ptr<draw_frame>>        ouput_channel_;\r
+       std::queue<safe_ptr<core::draw_frame>>  ouput_channel_;\r
                \r
-       safe_ptr<draw_frame>                            last_frame_;\r
-       std::shared_ptr<frame_factory>          frame_factory_;\r
+       safe_ptr<core::draw_frame>                              last_frame_;\r
+       std::shared_ptr<core::frame_factory>    frame_factory_;\r
 \r
        std::unique_ptr<input>                          input_; \r
 public:\r
        explicit ffmpeg_producer(const std::wstring& filename, bool loop) \r
                : filename_(filename)\r
                , loop_(loop) \r
-               , last_frame_(draw_frame(draw_frame::empty()))\r
+               , last_frame_(core::draw_frame(core::draw_frame::empty()))\r
                \r
        {\r
                graph_ = diagnostics::create_graph(boost::bind(&ffmpeg_producer::print, this)); \r
@@ -54,7 +55,7 @@ public:
                graph_->set_color("frame-time",  diagnostics::color(1.0f, 0.0f, 0.0f));\r
        }\r
        \r
-       virtual void initialize(const safe_ptr<frame_factory>& frame_factory)\r
+       virtual void initialize(const safe_ptr<core::frame_factory>& frame_factory)\r
        {\r
                frame_factory_ = frame_factory;\r
                input_.reset(new input(safe_ptr<diagnostics::graph>(graph_), filename_, loop_, std::bind(&ffmpeg_producer::print, this)));\r
@@ -67,7 +68,7 @@ public:
                parent_printer_ = parent_printer;\r
        }\r
 \r
-       virtual safe_ptr<draw_frame> receive()\r
+       virtual safe_ptr<core::draw_frame> receive()\r
        {\r
                perf_timer_.reset();\r
 \r
@@ -120,7 +121,7 @@ public:
 \r
                        while((!video_frame_channel_.empty() || !video_decoder_) && (!audio_chunk_channel_.empty() || !audio_decoder_))\r
                        {\r
-                               std::shared_ptr<write_frame> frame;\r
+                               std::shared_ptr<core::write_frame> frame;\r
 \r
                                if(video_decoder_)\r
                                {\r
@@ -140,7 +141,7 @@ public:
                                        audio_chunk_channel_.pop_front();\r
                                }\r
                                                        \r
-                               ouput_channel_.push(safe_ptr<write_frame>(frame));                              \r
+                               ouput_channel_.push(safe_ptr<core::write_frame>(frame));                                \r
                        }                               \r
 \r
                        if(ouput_channel_.empty() && video_packet.empty() && audio_packet.empty())                      \r
@@ -153,12 +154,12 @@ public:
                if(!ouput_channel_.empty())\r
                {\r
                        result = std::move(ouput_channel_.front());\r
-                       last_frame_ = draw_frame(result);\r
+                       last_frame_ = core::draw_frame(result);\r
                        last_frame_->get_audio_transform().set_gain(0.0); // last_frame should not have audio\r
                        ouput_channel_.pop();\r
                }\r
                else if(input_->is_eof())\r
-                       return draw_frame::eof();\r
+                       return core::draw_frame::eof();\r
 \r
                return result;\r
        }\r
@@ -169,7 +170,7 @@ public:
        }\r
 };\r
 \r
-safe_ptr<frame_producer> create_ffmpeg_producer(const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_producer> create_ffmpeg_producer(const std::vector<std::wstring>& params)\r
 {                      \r
        static const std::vector<std::wstring> extensions = boost::assign::list_of\r
                (L"mpg")(L"mpeg")(L"avi")(L"mov")(L"qt")(L"webm")(L"dv")(L"mp4")(L"f4v")(L"flv")(L"mkv")(L"mka")(L"wmw")(L"wma")(L"ogg")(L"divx")(L"wav")(L"mp3");\r
@@ -181,7 +182,7 @@ safe_ptr<frame_producer> create_ffmpeg_producer(const std::vector<std::wstring>&
                });\r
 \r
        if(ext == extensions.end())\r
-               return frame_producer::empty();\r
+               return core::frame_producer::empty();\r
 \r
        std::wstring path = filename + L"." + *ext;\r
        bool loop = std::find(params.begin(), params.end(), L"LOOP") != params.end();\r
@@ -189,4 +190,4 @@ safe_ptr<frame_producer> create_ffmpeg_producer(const std::vector<std::wstring>&
        return make_safe<ffmpeg_producer>(path, loop);\r
 }\r
 \r
-}}}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/modules/ffmpeg/producer/ffmpeg_producer.h b/modules/ffmpeg/producer/ffmpeg_producer.h
new file mode 100644 (file)
index 0000000..9ac70f1
--- /dev/null
@@ -0,0 +1,14 @@
+#pragma once\r
+\r
+#include <core/producer/frame_producer.h>\r
+\r
+#include <common/memory/safe_ptr.h>\r
+\r
+#include <string>\r
+#include <vector>\r
+\r
+namespace caspar {\r
+       \r
+safe_ptr<core::frame_producer> create_ffmpeg_producer(const std::vector<std::wstring>& params);\r
+\r
+}
\ No newline at end of file
similarity index 95%
rename from core/producer/ffmpeg/input.cpp
rename to modules/ffmpeg/producer/input.cpp
index 00071a75a710b4544d9b682c99a510a053c35fe1..4b8ecc57d4db4b94448f7ba76d6d6d7f8018316f 100644 (file)
@@ -1,8 +1,8 @@
-#include "..\..\stdafx.h"\r
+#include "..\stdafx.h"\r
 \r
 #include "input.h"\r
 \r
-#include "../../video_format.h"\r
+#include <core/video_format.h>\r
 \r
 #include <common/concurrency/executor.h>\r
 #include <common/diagnostics/graph.h>\r
@@ -29,7 +29,7 @@ extern "C"
        #include <libavformat/avformat.h>\r
 }\r
 \r
-namespace caspar { namespace core { namespace ffmpeg{\r
+namespace caspar {\r
                \r
 struct input::implementation : boost::noncopyable\r
 {              \r
@@ -232,4 +232,4 @@ bool input::is_eof() const{return impl_->is_eof();}
 aligned_buffer input::get_video_packet(){return impl_->get_video_packet();}\r
 aligned_buffer input::get_audio_packet(){return impl_->get_audio_packet();}\r
 double input::fps() const { return impl_->fps(); }\r
-}}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 89%
rename from core/producer/ffmpeg/input.h
rename to modules/ffmpeg/producer/input.h
index c0d4ed184dd488f27ccb01d90d690c72b5ad68c3..ca87036044cf651769216e89b5f33f5e1c882449 100644 (file)
@@ -10,7 +10,7 @@
 \r
 struct AVCodecContext;\r
 \r
-namespace caspar { namespace core { namespace ffmpeg{  \r
+namespace caspar {\r
        \r
 typedef std::vector<unsigned char, tbb::cache_aligned_allocator<unsigned char>> aligned_buffer;\r
 \r
@@ -31,5 +31,5 @@ private:
        std::shared_ptr<implementation> impl_;\r
 };\r
 \r
-       }\r
-}}\r
+       \r
+}\r
diff --git a/modules/flash/StdAfx.cpp b/modules/flash/StdAfx.cpp
new file mode 100644 (file)
index 0000000..2bd615b
--- /dev/null
@@ -0,0 +1,28 @@
+/*\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
+// stdafx.cpp : source file that includes just the standard includes\r
+//     dma.pch will be the pre-compiled header\r
+//     stdafx.obj will contain the pre-compiled type information\r
+\r
+#include "stdafx.h"\r
+\r
+// TODO: reference any additional headers you need in STDAFX.H\r
+// and not in this file\r
diff --git a/modules/flash/StdAfx.h b/modules/flash/StdAfx.h
new file mode 100644 (file)
index 0000000..75da809
--- /dev/null
@@ -0,0 +1,83 @@
+/*\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
+// stdafx.h : include file for standard system include files,\r
+//  or project specific include files that are used frequently, but\r
+//      are changed infrequently\r
+//\r
+\r
+#pragma once\r
+\r
+#include "../common/compiler/vs/disable_silly_warnings.h"\r
+\r
+#define NOMINMAX\r
+\r
+#if defined(_MSC_VER)\r
+#      ifndef _SCL_SECURE_NO_WARNINGS\r
+#              define _SCL_SECURE_NO_WARNINGS\r
+#      endif\r
+#      ifndef _CRT_SECURE_NO_WARNINGS\r
+#              define _CRT_SECURE_NO_WARNINGS\r
+#      endif\r
+#endif\r
+\r
+#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)\r
+#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_\r
+\r
+#define BOOST_PARAMETER_MAX_ARITY 7\r
+\r
+#ifdef _DEBUG\r
+#include <crtdbg.h>\r
+#endif\r
+\r
+#include <memory>\r
+#include <array>\r
+#include <functional>\r
+#include <algorithm>\r
+#include <vector>\r
+#include <deque>\r
+#include <queue>\r
+#include <string>\r
+#include <math.h>\r
+\r
+#include <tbb/atomic.h>\r
+#include <tbb/concurrent_queue.h>\r
+#include <tbb/concurrent_unordered_map.h>\r
+#include <tbb/parallel_invoke.h>\r
+#include <tbb/parallel_for.h>\r
+#include <tbb/parallel_for_each.h>\r
+\r
+#include <boost/assign.hpp>\r
+#include <boost/filesystem.hpp>\r
+#include <boost/foreach.hpp>\r
+#include <boost/range/algorithm.hpp>\r
+#include <boost/signals2.hpp>\r
+\r
+#include "../common/utility/string.h"\r
+#include "../common/memory/safe_ptr.h"\r
+//#include "../common/concurrency/executor.h" // Can't include this due to MSVC lambda bug\r
+\r
+#include "../common/log/Log.h"\r
+#include "../common/exception/exceptions.h"\r
+#include "../common/exception/win32_exception.h"\r
+\r
+#include <assert.h>\r
+\r
+#endif\r
diff --git a/modules/flash/flash.cpp b/modules/flash/flash.cpp
new file mode 100644 (file)
index 0000000..7ed22fb
--- /dev/null
@@ -0,0 +1,52 @@
+#include "StdAfx.h"\r
+\r
+#include "flash.h"\r
+\r
+#include "producer/cg_producer.h"\r
+#include "producer/flash_producer.h"\r
+\r
+#include <common/env.h>\r
+\r
+namespace caspar{\r
+\r
+void init_flash()\r
+{\r
+       core::register_producer_factory(create_ct_producer);\r
+}\r
+\r
+std::wstring get_cg_version()\r
+{\r
+       return L"Unknown";\r
+}\r
+\r
+std::wstring g_version = L"Not found";\r
+void setup_version()\r
+{ \r
+#ifdef WIN32\r
+       HKEY   hkey;\r
\r
+       DWORD dwType, dwSize;\r
+       if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Macromedia\\FlashPlayerActiveX"), 0, KEY_QUERY_VALUE, &hkey) == ERROR_SUCCESS)\r
+       {\r
+               wchar_t ver_str[1024];\r
+\r
+               dwType = REG_SZ;\r
+               dwSize = sizeof(ver_str);\r
+               RegQueryValueEx(hkey, TEXT("Version"), NULL, &dwType, (PBYTE)&ver_str, &dwSize);\r
\r
+               g_version = ver_str;\r
+\r
+               RegCloseKey(hkey);\r
+       }\r
+#endif\r
+}\r
+\r
+std::wstring get_flash_version()\r
+{              \r
+       boost::once_flag flag = BOOST_ONCE_INIT;\r
+       boost::call_once(setup_version, flag);\r
+\r
+       return g_version;\r
+}\r
+\r
+}\r
diff --git a/modules/flash/flash.h b/modules/flash/flash.h
new file mode 100644 (file)
index 0000000..5df3d63
--- /dev/null
@@ -0,0 +1,12 @@
+#pragma once\r
+\r
+#include <string>\r
+\r
+namespace caspar{\r
+\r
+void init_flash();\r
+\r
+std::wstring get_cg_version();\r
+std::wstring get_flash_version();\r
+\r
+}
\ No newline at end of file
diff --git a/modules/flash/flash.vcxproj b/modules/flash/flash.vcxproj
new file mode 100644 (file)
index 0000000..e5584d8
--- /dev/null
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Develop|Win32">\r
+      <Configuration>Develop</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{816DEABA-3757-4306-AFE0-C27CF96C4DEA}</ProjectGuid>\r
+    <RootNamespace>flash</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <ProjectName>flash</ProjectName>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <UseIntelTBB>true</UseIntelTBB>\r
+    <InstrumentIntelTBB>false</InstrumentIntelTBB>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectName)</TargetName>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <MinimalRebuild>false</MinimalRebuild>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <SmallerTypeCheck>false</SmallerTypeCheck>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_THREADING_TOOLS=1;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;TBB_USE_PERFORMANCE_WARNINGS=1;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\common\common.vcxproj">\r
+      <Project>{02308602-7fe0-4253-b96e-22134919f56a}</Project>\r
+    </ProjectReference>\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
+  <ItemGroup>\r
+    <Midl Include="interop\Flash9e.IDL">\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+    </Midl>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="flash.cpp" />\r
+    <ClCompile Include="interop\Flash9e_i.c">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\cg_producer.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\FlashAxContainer.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\flash_producer.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="StdAfx.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="flash.h" />\r
+    <ClInclude Include="interop\axflash.h" />\r
+    <ClInclude Include="interop\TimerHelper.h" />\r
+    <ClInclude Include="producer\cg_producer.h" />\r
+    <ClInclude Include="producer\FlashAxContainer.h" />\r
+    <ClInclude Include="producer\flash_producer.h" />\r
+    <ClInclude Include="StdAfx.h" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/modules/flash/flash.vcxproj.filters b/modules/flash/flash.vcxproj.filters
new file mode 100644 (file)
index 0000000..31e8b46
--- /dev/null
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="interop">\r
+      <UniqueIdentifier>{bd73f842-a8f5-4d98-92cf-81c623283dde}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="producer">\r
+      <UniqueIdentifier>{448da3f4-8d88-4c18-856b-8f8ecc190d1e}</UniqueIdentifier>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Midl Include="interop\Flash9e.IDL">\r
+      <Filter>interop</Filter>\r
+    </Midl>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="interop\Flash9e_i.c">\r
+      <Filter>interop</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\flash_producer.cpp">\r
+      <Filter>producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\FlashAxContainer.cpp">\r
+      <Filter>producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\cg_producer.cpp">\r
+      <Filter>producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="flash.cpp" />\r
+    <ClCompile Include="StdAfx.cpp" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="interop\TimerHelper.h">\r
+      <Filter>interop</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="interop\axflash.h">\r
+      <Filter>interop</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\cg_producer.h">\r
+      <Filter>producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\flash_producer.h">\r
+      <Filter>producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\FlashAxContainer.h">\r
+      <Filter>producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="StdAfx.h" />\r
+    <ClInclude Include="flash.h" />\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
similarity index 96%
rename from core/producer/flash/FlashAxContainer.cpp
rename to modules/flash/producer/FlashAxContainer.cpp
index fbd7886b8c53edc3d96a13a2874992548d4230fb..48239fe94041ac6f0c3ddbebb7b96df3d672efef 100644 (file)
 *\r
 */\r
  \r
-#include "..\..\stdafx.h"\r
+#include "../stdafx.h"\r
 \r
 #include "FlashAxContainer.h"\r
-#include "TimerHelper.h"\r
+#include "../interop/TimerHelper.h"\r
 \r
 #include <common/log/log.h>\r
 \r
similarity index 95%
rename from core/producer/flash/FlashAxContainer.h
rename to modules/flash/producer/FlashAxContainer.h
index 3bb9fbe5c92ca54209da90b7d532ac561538a2da..7f88b5fa886fa89a2e093c7313b2d3cb625ddc40 100644 (file)
 #include <functional>\r
 #include <vector>\r
 \r
-#include "../../video_format.h"\r
-#include "axflash.h"\r
+#include <core/video_format.h>\r
+#include "../interop/axflash.h"\r
 //#import "progid:ShockwaveFlash.ShockwaveFlash.9" no_namespace, named_guids\r
 \r
 #include <comdef.h>\r
 \r
-#include "TimerHelper.h"\r
+#include "../interop/TimerHelper.h"\r
 \r
 #include <InitGuid.h>\r
 #include <ddraw.h>\r
similarity index 84%
rename from core/producer/flash/cg_producer.cpp
rename to modules/flash/producer/cg_producer.cpp
index 08bb68b698d50c80de712b66886e32fcef76fc51..721c9fa7cb174659d4a2f4a94532736040674def 100644 (file)
@@ -1,4 +1,4 @@
-#include "../../StdAfx.h"\r
+#include "../StdAfx.h"\r
 \r
 #include <common/env.h>\r
 \r
 using boost::format;\r
 using boost::io::group;\r
                \r
-namespace caspar { namespace core { namespace flash {\r
+namespace caspar {\r
        \r
 struct cg_producer::implementation : boost::noncopyable\r
 {\r
        printer parent_printer_;\r
        safe_ptr<flash_producer> flash_producer_;\r
-       std::shared_ptr<frame_factory> frame_factory_;\r
+       std::shared_ptr<core::frame_factory> frame_factory_;\r
 public:\r
        implementation() \r
                : flash_producer_(flash_producer(env::template_host())){}\r
@@ -27,7 +27,7 @@ public:
        {\r
                flash_producer_ = flash_producer(env::template_host());\r
                flash_producer_->set_parent_printer(parent_printer_);\r
-               flash_producer_->initialize(safe_ptr<frame_factory>(frame_factory_));\r
+               flash_producer_->initialize(safe_ptr<core::frame_factory>(frame_factory_));\r
        }\r
 \r
        void add(int layer, const std::wstring& filename,  bool play_on_load, const std::wstring& label, const std::wstring& data)\r
@@ -72,12 +72,12 @@ public:
                flash_producer_->param((boost::wformat(L"<invoke name=\"Invoke\" returntype=\"xml\"><arguments><array><property id=\"0\"><number>%1%</number></property></array><string>%2%</string></arguments></invoke>") % layer % label).str());\r
        }\r
 \r
-       safe_ptr<draw_frame> receive()\r
+       safe_ptr<core::draw_frame> receive()\r
        {\r
                return flash_producer_->receive();\r
        }\r
                \r
-       void initialize(const safe_ptr<frame_factory>& frame_factory)\r
+       void initialize(const safe_ptr<core::frame_factory>& frame_factory)\r
        {\r
                frame_factory_ = frame_factory;\r
                flash_producer_->set_parent_printer(parent_printer_);\r
@@ -95,7 +95,7 @@ public:
        }\r
 };\r
        \r
-safe_ptr<cg_producer> get_default_cg_producer(const safe_ptr<channel>& channel, int render_layer)\r
+safe_ptr<cg_producer> get_default_cg_producer(const safe_ptr<core::channel>& channel, int render_layer)\r
 {      \r
        try\r
        {\r
@@ -109,11 +109,11 @@ safe_ptr<cg_producer> get_default_cg_producer(const safe_ptr<channel>& channel,
        }\r
 }\r
 \r
-safe_ptr<frame_producer> create_ct_producer(const std::vector<std::wstring>& params) \r
+safe_ptr<core::frame_producer> create_ct_producer(const std::vector<std::wstring>& params) \r
 {\r
        std::wstring filename = env::media_folder() + L"\\" + params[0] + L".ct";\r
        if(!boost::filesystem::exists(filename))\r
-               return frame_producer::empty();\r
+               return core::frame_producer::empty();\r
 \r
        auto producer = make_safe<cg_producer>();\r
        producer->add(0, filename, 1);\r
@@ -123,7 +123,7 @@ safe_ptr<frame_producer> create_ct_producer(const std::vector<std::wstring>& par
 \r
 cg_producer::cg_producer() : impl_(new implementation()){}\r
 cg_producer::cg_producer(cg_producer&& other) : impl_(std::move(other.impl_)){}\r
-safe_ptr<draw_frame> cg_producer::receive(){return impl_->receive();}\r
+safe_ptr<core::draw_frame> cg_producer::receive(){return impl_->receive();}\r
 void cg_producer::clear(){impl_->clear();}\r
 void cg_producer::add(int layer, const std::wstring& template_name,  bool play_on_load, const std::wstring& startFromLabel, const std::wstring& data){impl_->add(layer, template_name, play_on_load, startFromLabel, data);}\r
 void cg_producer::remove(int layer){impl_->remove(layer);}\r
@@ -132,12 +132,8 @@ void cg_producer::stop(int layer, unsigned int mix_out_duration){impl_->stop(lay
 void cg_producer::next(int layer){impl_->next(layer);}\r
 void cg_producer::update(int layer, const std::wstring& data){impl_->update(layer, data);}\r
 void cg_producer::invoke(int layer, const std::wstring& label){impl_->invoke(layer, label);}\r
-void cg_producer::initialize(const safe_ptr<frame_factory>& frame_factory){impl_->initialize(frame_factory);}\r
+void cg_producer::initialize(const safe_ptr<core::frame_factory>& frame_factory){impl_->initialize(frame_factory);}\r
 void cg_producer::set_parent_printer(const printer& parent_printer) { impl_->set_parent_printer(parent_printer);}\r
 std::wstring cg_producer::print() const{return impl_->print();}\r
 \r
-std::wstring get_cg_version()\r
-{\r
-       return L"Unknown";\r
-}\r
-}}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 54%
rename from core/producer/flash/cg_producer.h
rename to modules/flash/producer/cg_producer.h
index f937aa551d3d656641be07094384452929e35355..f089b7571f3d5b1b042fab92dddafdf877e6ab61 100644 (file)
@@ -1,15 +1,15 @@
 #pragma once\r
 \r
-#include "../frame_producer.h"\r
-#include "../frame_producer_device.h"\r
-#include "../../video_format.h"\r
-#include "../../channel.h"\r
+#include <core/producer/frame_producer.h>\r
+#include <core/producer/frame_producer_device.h>\r
+#include <core/video_format.h>\r
+#include <core/channel.h>\r
 \r
 #include <string>\r
 \r
-namespace caspar { namespace core { namespace flash{\r
+namespace caspar {\r
                \r
-class cg_producer : public frame_producer\r
+class cg_producer : public core::frame_producer\r
 {\r
 public:\r
        static const unsigned int DEFAULT_LAYER = 9999;\r
@@ -17,8 +17,8 @@ public:
        explicit cg_producer();\r
        cg_producer(cg_producer&& other);\r
        \r
-       virtual safe_ptr<draw_frame> receive();\r
-       virtual void initialize(const safe_ptr<frame_factory>& frame_factory);\r
+       virtual safe_ptr<core::draw_frame> receive();\r
+       virtual void initialize(const safe_ptr<core::frame_factory>& frame_factory);\r
        virtual void set_parent_printer(const printer& parent_printer);\r
 \r
        void clear();\r
@@ -36,11 +36,8 @@ private:
        struct implementation;\r
        std::shared_ptr<implementation> impl_;\r
 };\r
+safe_ptr<cg_producer> get_default_cg_producer(const safe_ptr<core::channel>& channel, int layer_index = cg_producer::DEFAULT_LAYER);\r
 \r
-std::wstring get_cg_version();\r
+safe_ptr<core::frame_producer> create_ct_producer(const std::vector<std::wstring>& params);\r
 \r
-safe_ptr<cg_producer> get_default_cg_producer(const safe_ptr<channel>& channel, int layer_index = cg_producer::DEFAULT_LAYER);\r
-\r
-safe_ptr<frame_producer> create_ct_producer(const std::vector<std::wstring>& params);\r
-\r
-}}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 78%
rename from core/producer/flash/flash_producer.cpp
rename to modules/flash/producer/flash_producer.cpp
index 10039c4aee97cdf4d1cc77a46b070f581256d3b9..e661ca0b6eaef3845904b768837a46259c8f6e4d 100644 (file)
@@ -18,7 +18,7 @@
 *\r
 */\r
  \r
-#include "..\..\stdafx.h"\r
+#include "../stdafx.h"\r
 \r
 #if defined(_MSC_VER)\r
 #pragma warning (disable : 4146)\r
@@ -41,9 +41,9 @@
 #include <functional>\r
 #include <boost/thread.hpp>\r
 \r
-namespace caspar { namespace core { namespace flash {\r
+namespace caspar {\r
                \r
-bool interlaced(double fps, const video_format_desc& format_desc)\r
+bool interlaced(double fps, const core::video_format_desc& format_desc)\r
 {\r
        return abs(fps/2.0 - format_desc.fps) < 0.1;\r
 }\r
@@ -58,16 +58,16 @@ class flash_renderer
        \r
        printer parent_printer_;\r
        const std::wstring filename_;\r
-       const video_format_desc format_desc_;\r
+       const core::video_format_desc format_desc_;\r
 \r
-       std::shared_ptr<frame_factory> frame_factory_;\r
+       std::shared_ptr<core::frame_factory> frame_factory_;\r
        \r
        BYTE* bmp_data_;        \r
        std::shared_ptr<void> hdc_;\r
        std::shared_ptr<void> bmp_;\r
 \r
        CComObject<caspar::flash::FlashAxContainer>* ax_;\r
-       safe_ptr<draw_frame> head_;\r
+       safe_ptr<core::draw_frame> head_;\r
        \r
        timer timer_;\r
 \r
@@ -80,7 +80,7 @@ class flash_renderer
        }\r
 \r
 public:\r
-       flash_renderer(const safe_ptr<diagnostics::graph>& graph, const std::shared_ptr<frame_factory>& frame_factory, const std::wstring& filename, const printer& parent_printer) \r
+       flash_renderer(const safe_ptr<diagnostics::graph>& graph, const std::shared_ptr<core::frame_factory>& frame_factory, const std::wstring& filename, const printer& parent_printer) \r
                : parent_printer_(parent_printer)\r
                , graph_(graph)\r
                , filename_(filename)\r
@@ -89,7 +89,7 @@ public:
                , bmp_data_(nullptr)\r
                , hdc_(CreateCompatibleDC(0), DeleteDC)\r
                , ax_(nullptr)\r
-               , head_(draw_frame::empty())\r
+               , head_(core::draw_frame::empty())\r
        {\r
                graph_->add_guide("frame-time", 0.5f);\r
                graph_->set_color("frame-time", diagnostics::color(1.0f, 0.0f, 0.0f));  \r
@@ -153,14 +153,14 @@ public:
                        CASPAR_LOG(warning) << print() << " Invalid frame-rate: " << ax_->GetFPS() << L". Should be either " << format_desc_.fps << L" or " << format_desc_.fps*2.0 << L".";\r
        }\r
        \r
-       safe_ptr<draw_frame> render_frame(bool has_underflow)\r
+       safe_ptr<core::draw_frame> render_frame(bool has_underflow)\r
        {\r
                if(ax_->IsEmpty())\r
-                       return draw_frame::empty();\r
+                       return core::draw_frame::empty();\r
 \r
                auto frame = render_simple_frame(has_underflow);\r
                if(interlaced(ax_->GetFPS(), format_desc_))\r
-                       frame = draw_frame::interlace(frame, render_simple_frame(has_underflow), format_desc_.mode);\r
+                       frame = core::draw_frame::interlace(frame, render_simple_frame(has_underflow), format_desc_.mode);\r
                return frame;\r
        }\r
 \r
@@ -171,7 +171,7 @@ public:
        \r
 private:\r
 \r
-       safe_ptr<draw_frame> render_simple_frame(bool underflow)\r
+       safe_ptr<core::draw_frame> render_simple_frame(bool underflow)\r
        {\r
                if(underflow)\r
                        graph_->add_tag("underflow");\r
@@ -205,12 +205,12 @@ struct flash_producer::implementation
 \r
        std::shared_ptr<diagnostics::graph> graph_;\r
 \r
-       safe_ptr<draw_frame> tail_;\r
-       tbb::concurrent_bounded_queue<safe_ptr<draw_frame>> frame_buffer_;\r
+       safe_ptr<core::draw_frame> tail_;\r
+       tbb::concurrent_bounded_queue<safe_ptr<core::draw_frame>> frame_buffer_;\r
 \r
        std::shared_ptr<flash_renderer> renderer_;\r
-       std::shared_ptr<frame_factory> frame_factory_;\r
-       video_format_desc format_desc_;\r
+       std::shared_ptr<core::frame_factory> frame_factory_;\r
+       core::video_format_desc format_desc_;\r
                        \r
        executor executor_;\r
                \r
@@ -224,7 +224,7 @@ struct flash_producer::implementation
 public:\r
        implementation(const std::wstring& filename) \r
                : filename_(filename)           \r
-               , tail_(draw_frame::empty())            \r
+               , tail_(core::draw_frame::empty())              \r
                , executor_(print())\r
        {       \r
                if(!boost::filesystem::exists(filename))\r
@@ -244,7 +244,7 @@ public:
                });\r
        }\r
        \r
-       virtual void initialize(const safe_ptr<frame_factory>& frame_factory)\r
+       virtual void initialize(const safe_ptr<core::frame_factory>& frame_factory)\r
        {\r
                frame_factory_ = frame_factory;\r
                format_desc_ = frame_factory->get_video_format_desc();\r
@@ -257,10 +257,10 @@ public:
                parent_printer_ = parent_printer;\r
        }\r
 \r
-       virtual safe_ptr<draw_frame> receive()\r
+       virtual safe_ptr<core::draw_frame> receive()\r
        {               \r
                if(!renderer_)\r
-                       return draw_frame::empty();\r
+                       return core::draw_frame::empty();\r
                \r
                graph_->set_value("output-buffer", static_cast<float>(frame_buffer_.size())/static_cast<float>(frame_buffer_.capacity()));\r
                if(!frame_buffer_.try_pop(tail_))\r
@@ -273,9 +273,9 @@ public:
 \r
                        try\r
                        {\r
-                               auto frame = draw_frame::empty();\r
+                               auto frame = core::draw_frame::empty();\r
                                do{frame = renderer_->render_frame(frame_buffer_.size() < frame_buffer_.capacity()-2);}\r
-                               while(frame_buffer_.try_push(frame) && frame == draw_frame::empty());\r
+                               while(frame_buffer_.try_push(frame) && frame == core::draw_frame::empty());\r
                                graph_->set_value("output-buffer", static_cast<float>(frame_buffer_.size())/static_cast<float>(frame_buffer_.capacity()));      \r
                                fps_.fetch_and_store(static_cast<int>(renderer_->fps()*100.0));\r
                        }\r
@@ -296,7 +296,7 @@ public:
                        if(!renderer_)\r
                        {\r
                                renderer_.reset(new flash_renderer(safe_ptr<diagnostics::graph>(graph_), frame_factory_, filename_, [=]{return print();}));\r
-                               while(frame_buffer_.try_push(draw_frame::empty())){}            \r
+                               while(frame_buffer_.try_push(core::draw_frame::empty())){}              \r
                        }\r
 \r
                        try\r
@@ -314,9 +314,9 @@ public:
 \r
 flash_producer::flash_producer(flash_producer&& other) : impl_(std::move(other.impl_)){}\r
 flash_producer::flash_producer(const std::wstring& filename) : impl_(new implementation(filename)){}\r
-safe_ptr<draw_frame> flash_producer::receive(){return impl_->receive();}\r
+safe_ptr<core::draw_frame> flash_producer::receive(){return impl_->receive();}\r
 void flash_producer::param(const std::wstring& param){impl_->param(param);}\r
-void flash_producer::initialize(const safe_ptr<frame_factory>& frame_factory) { impl_->initialize(frame_factory);}\r
+void flash_producer::initialize(const safe_ptr<core::frame_factory>& frame_factory) { impl_->initialize(frame_factory);}\r
 void flash_producer::set_parent_printer(const printer& parent_printer){impl_->set_parent_printer(parent_printer);}\r
 std::wstring flash_producer::print() const {return impl_->print();}\r
 \r
@@ -331,34 +331,4 @@ std::wstring flash_producer::find_template(const std::wstring& template_name)
        return L"";\r
 }\r
 \r
-std::wstring g_version = L"Not found";\r
-void setup_version()\r
-{ \r
-#ifdef WIN32\r
-       HKEY   hkey;\r
\r
-       DWORD dwType, dwSize;\r
-       if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Macromedia\\FlashPlayerActiveX"), 0, KEY_QUERY_VALUE, &hkey) == ERROR_SUCCESS)\r
-       {\r
-               wchar_t ver_str[1024];\r
-\r
-               dwType = REG_SZ;\r
-               dwSize = sizeof(ver_str);\r
-               RegQueryValueEx(hkey, TEXT("Version"), NULL, &dwType, (PBYTE)&ver_str, &dwSize);\r
\r
-               g_version = ver_str;\r
-\r
-               RegCloseKey(hkey);\r
-       }\r
-#endif\r
-}\r
-\r
-std::wstring get_flash_version()\r
-{              \r
-       boost::once_flag flag = BOOST_ONCE_INIT;\r
-       boost::call_once(setup_version, flag);\r
-\r
-       return g_version;\r
-}\r
-\r
-}}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 78%
rename from core/producer/flash/flash_producer.h
rename to modules/flash/producer/flash_producer.h
index 8ec58a63144d84e66bf341a351d4941f9ee2a004..8f726933809941631a97f925785ffbf844c92f4e 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "../frame_producer.h"\r
+#include <core/producer/frame_producer.h>\r
 \r
 #include <memory>\r
 \r
-namespace caspar { namespace core { namespace flash {\r
+namespace caspar {\r
 \r
-class flash_producer : public frame_producer\r
+class flash_producer : public core::frame_producer\r
 {\r
 public:\r
        explicit flash_producer(const std::wstring& filename);\r
        flash_producer(flash_producer&& other);\r
 \r
-       virtual safe_ptr<draw_frame> receive();\r
-       virtual void initialize(const safe_ptr<frame_factory>& frame_factory);\r
+       virtual safe_ptr<core::draw_frame> receive();\r
+       virtual void initialize(const safe_ptr<core::frame_factory>& frame_factory);\r
        virtual void set_parent_printer(const printer& parent_printer);\r
        virtual std::wstring print() const;\r
 \r
@@ -44,6 +44,4 @@ private:
        std::shared_ptr<implementation> impl_;\r
 };\r
 \r
-std::wstring get_flash_version();\r
-\r
-}}}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/modules/image/image.cpp b/modules/image/image.cpp
new file mode 100644 (file)
index 0000000..565b6b5
--- /dev/null
@@ -0,0 +1,24 @@
+#include "image.h"\r
+\r
+#include "producer/image_producer.h"\r
+\r
+#include <core/producer/frame_producer.h>\r
+\r
+#include <common/utility/string.h>\r
+\r
+#include <FreeImage.h>\r
+\r
+namespace caspar\r
+{\r
+\r
+void init_image()\r
+{\r
+       core::register_producer_factory(create_image_producer);\r
+}\r
+\r
+std::wstring get_image_version()\r
+{\r
+       return widen(std::string(FreeImage_GetVersion()));\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/modules/image/image.h b/modules/image/image.h
new file mode 100644 (file)
index 0000000..b1b5d58
--- /dev/null
@@ -0,0 +1,11 @@
+#pragma once\r
+\r
+#include <string>\r
+\r
+namespace caspar{\r
+\r
+void init_image();\r
+\r
+std::wstring get_image_version();\r
+\r
+}
\ No newline at end of file
diff --git a/modules/image/image.vcxproj b/modules/image/image.vcxproj
new file mode 100644 (file)
index 0000000..fe74721
--- /dev/null
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Develop|Win32">\r
+      <Configuration>Develop</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{3E11FF65-A9DA-4F80-87F2-A7C6379ED5E2}</ProjectGuid>\r
+    <RootNamespace>image</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <ProjectName>image</ProjectName>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <UseIntelTBB>true</UseIntelTBB>\r
+    <InstrumentIntelTBB>false</InstrumentIntelTBB>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\FreeImage\Dist\;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectName)</TargetName>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <MinimalRebuild>false</MinimalRebuild>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <SmallerTypeCheck>false</SmallerTypeCheck>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_THREADING_TOOLS=1;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;TBB_USE_PERFORMANCE_WARNINGS=1;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\common\common.vcxproj">\r
+      <Project>{02308602-7fe0-4253-b96e-22134919f56a}</Project>\r
+    </ProjectReference>\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
+  <ItemGroup>\r
+    <ClCompile Include="image.cpp" />\r
+    <ClCompile Include="producer\image_producer.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\image_scroll_producer.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    </ClCompile>\r
+    <ClCompile Include="util\image_loader.cpp" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="image.h" />\r
+    <ClInclude Include="producer\image_producer.h" />\r
+    <ClInclude Include="producer\image_scroll_producer.h" />\r
+    <ClInclude Include="util\image_loader.h" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/modules/image/image.vcxproj.filters b/modules/image/image.vcxproj.filters
new file mode 100644 (file)
index 0000000..7c277d2
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="producer">\r
+      <UniqueIdentifier>{46bdb484-2321-419b-a1c4-4b8d5d49fba9}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="util">\r
+      <UniqueIdentifier>{6abd09ae-2ad7-41fa-bfa5-f4614a07be8c}</UniqueIdentifier>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="producer\image_producer.cpp">\r
+      <Filter>producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="producer\image_scroll_producer.cpp">\r
+      <Filter>producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="image.cpp" />\r
+    <ClCompile Include="util\image_loader.cpp">\r
+      <Filter>util</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="producer\image_producer.h">\r
+      <Filter>producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="producer\image_scroll_producer.h">\r
+      <Filter>producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="image.h" />\r
+    <ClInclude Include="util\image_loader.h">\r
+      <Filter>util</Filter>\r
+    </ClInclude>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
similarity index 67%
rename from core/producer/image/image_producer.cpp
rename to modules/image/producer/image_producer.cpp
index f3cbd23e8d8d99bb77268ae6858417ff145b45a9..339d6c5837c0fddca88b889a0413bbdada482aa5 100644 (file)
@@ -1,7 +1,6 @@
-#include "../../StdAfx.h"\r
-\r
 #include "image_producer.h"\r
-#include "image_loader.h"\r
+\r
+#include "../util/image_loader.h"\r
 \r
 #include <core/video_format.h>\r
 \r
 #include <common/env.h>\r
 \r
 #include <boost/assign.hpp>\r
+#include <boost/filesystem.hpp>\r
 \r
 #include <algorithm>\r
 \r
 using namespace boost::assign;\r
 \r
-namespace caspar { namespace core { namespace image{\r
+namespace caspar {\r
 \r
-struct image_producer : public frame_producer\r
+struct image_producer : public core::frame_producer\r
 {      \r
        printer parent_printer_;\r
-       std::shared_ptr<frame_factory> frame_factory_;\r
+       std::shared_ptr<core::frame_factory> frame_factory_;\r
        std::wstring filename_;\r
-       safe_ptr<draw_frame> frame_;\r
+       safe_ptr<core::draw_frame> frame_;\r
        \r
        image_producer(const std::wstring& filename) \r
-               : filename_(filename), frame_(draw_frame::empty())      {}\r
+               : filename_(filename), frame_(core::draw_frame::empty())        {}\r
        \r
-       virtual safe_ptr<draw_frame> receive(){return frame_;}\r
+       virtual safe_ptr<core::draw_frame> receive(){return frame_;}\r
 \r
-       virtual void initialize(const safe_ptr<frame_factory>& frame_factory)\r
+       virtual void initialize(const safe_ptr<core::frame_factory>& frame_factory)\r
        {\r
                frame_factory_ = frame_factory;\r
                auto bitmap = load_image(filename_);\r
@@ -51,7 +51,7 @@ struct image_producer : public frame_producer
        }\r
 };\r
 \r
-safe_ptr<frame_producer> create_image_producer(const  std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_producer> create_image_producer(const std::vector<std::wstring>& params)\r
 {\r
        static const std::vector<std::wstring> extensions = list_of(L"png")(L"tga")(L"bmp")(L"jpg")(L"jpeg");\r
        std::wstring filename = env::media_folder() + L"\\" + params[0];\r
@@ -62,14 +62,10 @@ safe_ptr<frame_producer> create_image_producer(const  std::vector<std::wstring>&
                });\r
 \r
        if(ext == extensions.end())\r
-               return frame_producer::empty();\r
+               return core::frame_producer::empty();\r
 \r
        return make_safe<image_producer>(filename + L"." + *ext);\r
 }\r
 \r
-std::wstring get_image_version()\r
-{\r
-       return widen(std::string(FreeImage_GetVersion()));\r
-}\r
 \r
-}}}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/modules/image/producer/image_producer.h b/modules/image/producer/image_producer.h
new file mode 100644 (file)
index 0000000..9ea4a96
--- /dev/null
@@ -0,0 +1,12 @@
+#pragma once\r
+\r
+#include <core/producer/frame_producer.h>\r
+\r
+#include <string>\r
+#include <vector>\r
+\r
+namespace caspar { \r
+\r
+safe_ptr<core::frame_producer> create_image_producer(const std::vector<std::wstring>& params);\r
+\r
+}
\ No newline at end of file
similarity index 96%
rename from core/producer/image/image_scroll_producer.cpp
rename to modules/image/producer/image_scroll_producer.cpp
index 92ad2820c8602c37691a87f0f9f0bda7dadd3608..f69f8a1746f0015325f387d965213b5ae8336161 100644 (file)
@@ -1,5 +1,3 @@
-//#include "../../StdAfx.h"\r
-//\r
 //#include "image_scroll_producer.h"\r
 //\r
 //#include "image_loader.h"\r
similarity index 72%
rename from core/producer/image/image_scroll_producer.h
rename to modules/image/producer/image_scroll_producer.h
index 108543c649956b3e772368f7144439b604060836..d6006f87d9bb5eb36943fdf6186c5b6d2ed5678b 100644 (file)
@@ -5,8 +5,8 @@
 #include <string>\r
 #include <vector>\r
 \r
-namespace caspar { namespace core { namespace image {\r
+namespace caspar {\r
        \r
 safe_ptr<frame_producer> create_image_scroll_producer(const std::vector<std::wstring>& params);\r
 \r
-}}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 91%
rename from core/producer/image/image_loader.cpp
rename to modules/image/util/image_loader.cpp
index 0a1f0148c34f8361003f8b00effb8238f3d5fbb7..2e86d5b6e3998ba43e23fa3b10385364426a9823 100644 (file)
@@ -1,8 +1,7 @@
-#include "..\..\StdAfx.h"\r
-\r
 #include "image_loader.h"\r
 \r
 #include <common/exception/Exceptions.h>\r
+#include <common/utility/string.h>\r
 \r
 #if defined(_MSC_VER)\r
 #pragma warning (disable : 4714) // marked as __forceinline not inlined\r
@@ -12,8 +11,8 @@
 #include <boost/exception/errinfo_file_name.hpp>\r
 #include <boost/thread/once.hpp>\r
 \r
-namespace caspar { namespace core { namespace image{\r
-       \r
+namespace caspar { \r
+\r
 std::shared_ptr<FIBITMAP> load_image(const std::string& filename)\r
 {\r
        struct FreeImage_initializer\r
@@ -50,4 +49,4 @@ std::shared_ptr<FIBITMAP> load_image(const std::wstring& filename)
        return load_image(narrow(filename));\r
 }\r
 \r
-}}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 75%
rename from core/producer/image/image_loader.h
rename to modules/image/util/image_loader.h
index ecca8072068884c230fc65a8784f230102c77c71..ffb829a6dafb63b8bfc997822c4522d685416da9 100644 (file)
@@ -5,9 +5,9 @@
 #include <memory>\r
 #include <string>\r
 \r
-namespace caspar { namespace core { namespace image{\r
+namespace caspar { \r
 \r
 std::shared_ptr<FIBITMAP> load_image(const std::string& filename);\r
 std::shared_ptr<FIBITMAP> load_image(const std::wstring& filename);\r
 \r
-}}}\r
+}\r
similarity index 80%
rename from core/consumer/oal/oal_consumer.cpp
rename to modules/oal/consumer/oal_consumer.cpp
index 4beef7a94bff175d6310e40d216b44170ba17160..03fa4c71a13f8bbc1c400399ee59adff90a13ce3 100644 (file)
 *\r
 */\r
  \r
-#include "../../StdAfx.h"\r
-\r
 #include "oal_consumer.h"\r
 \r
 #include <common/diagnostics/graph.h>\r
 #include <common/utility/timer.h>\r
+#include <common/log/log.h>\r
+\r
 #include <core/video_format.h>\r
 \r
 #include <mixer/frame/read_frame.h>\r
@@ -32,7 +32,9 @@
 \r
 #include <boost/circular_buffer.hpp>\r
 \r
-namespace caspar { namespace core {\r
+#include <tbb/concurrent_queue.h>\r
+\r
+namespace caspar {\r
 \r
 struct oal_consumer::implementation : public sf::SoundStream, boost::noncopyable\r
 {\r
@@ -44,7 +46,7 @@ struct oal_consumer::implementation : public sf::SoundStream, boost::noncopyable
        boost::circular_buffer<std::vector<short>> container_;\r
        tbb::atomic<bool> is_running_;\r
 \r
-       video_format_desc format_desc_;\r
+       core::video_format_desc format_desc_;\r
 public:\r
        implementation() \r
                : graph_(diagnostics::create_graph(narrow(print())))\r
@@ -64,7 +66,7 @@ public:
                CASPAR_LOG(info) << print() << L" Shutting down.";      \r
        }\r
 \r
-       void initialize(const video_format_desc& format_desc, const printer& parent_printer)\r
+       void initialize(const core::video_format_desc& format_desc, const printer& parent_printer)\r
        {\r
                format_desc_ = format_desc;\r
                parent_printer_ = parent_printer;\r
@@ -75,7 +77,7 @@ public:
                CASPAR_LOG(info) << print() << " Sucessfully initialized.";\r
        }\r
 \r
-       void send(const safe_ptr<const read_frame>& frame)\r
+       void send(const safe_ptr<const core::read_frame>& frame)\r
        {                               \r
                if(!frame->audio_data().empty())\r
                        input_.push(std::vector<short>(frame->audio_data().begin(), frame->audio_data().end()));        \r
@@ -108,16 +110,16 @@ public:
 \r
 oal_consumer::oal_consumer(oal_consumer&& other) : impl_(std::move(other.impl_)){}\r
 oal_consumer::oal_consumer() : impl_(new implementation()){}\r
-void oal_consumer::send(const safe_ptr<const read_frame>& frame){impl_->send(frame);}\r
+void oal_consumer::send(const safe_ptr<const core::read_frame>& frame){impl_->send(frame);}\r
 size_t oal_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
-void oal_consumer::initialize(const video_format_desc& format_desc, const printer& parent_printer){impl_->initialize(format_desc, parent_printer);}\r
+void oal_consumer::initialize(const core::video_format_desc& format_desc, const printer& parent_printer){impl_->initialize(format_desc, parent_printer);}\r
 std::wstring oal_consumer::print() const { return impl_->print(); }\r
 \r
-safe_ptr<frame_consumer> create_oal_consumer(const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_consumer> create_oal_consumer(const std::vector<std::wstring>& params)\r
 {\r
        if(params.size() < 1 || params[0] != L"OAL")\r
-               return frame_consumer::empty();\r
+               return core::frame_consumer::empty();\r
 \r
        return make_safe<oal_consumer>();\r
 }\r
-}}\r
+}\r
similarity index 68%
rename from core/consumer/oal/oal_consumer.h
rename to modules/oal/consumer/oal_consumer.h
index 3db5e87c1b4b627fcbbc34f6ee3a3400cf997638..a0e1988d96d948ccdb5858052fe8b4528e6bd523 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "../../video_format.h"\r
-#include "../../consumer/frame_consumer.h"\r
+#include <core/video_format.h>\r
+#include <core/consumer/frame_consumer.h>\r
 \r
-namespace caspar { namespace core {\r
+#include <vector>\r
+\r
+namespace caspar {\r
        \r
-class oal_consumer : public frame_consumer\r
+class oal_consumer : public core::frame_consumer\r
 {\r
 public:        \r
        explicit oal_consumer();\r
        oal_consumer(oal_consumer&& other);\r
 \r
-       virtual void initialize(const video_format_desc& format_desc, const printer& parent_printer);   \r
+       virtual void initialize(const core::video_format_desc& format_desc, const printer& parent_printer);     \r
 \r
-       virtual void send(const safe_ptr<const read_frame>&);\r
+       virtual void send(const safe_ptr<const core::read_frame>&);\r
        virtual size_t buffer_depth() const;\r
        virtual std::wstring print() const;\r
 private:\r
@@ -40,6 +42,6 @@ private:
        std::shared_ptr<implementation> impl_;\r
 };\r
 \r
-safe_ptr<frame_consumer> create_oal_consumer(const std::vector<std::wstring>& params);\r
+safe_ptr<core::frame_consumer> create_oal_consumer(const std::vector<std::wstring>& params);\r
 \r
-}}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/modules/oal/oal.cpp b/modules/oal/oal.cpp
new file mode 100644 (file)
index 0000000..2a39531
--- /dev/null
@@ -0,0 +1,15 @@
+#include "oal.h"\r
+\r
+#include "consumer/oal_consumer.h"\r
+\r
+#include <core/consumer/frame_consumer.h>\r
+\r
+namespace caspar\r
+{\r
+\r
+void init_oal()\r
+{\r
+       core::register_consumer_factory(create_oal_consumer);\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/modules/oal/oal.h b/modules/oal/oal.h
new file mode 100644 (file)
index 0000000..c7c40f7
--- /dev/null
@@ -0,0 +1,7 @@
+#pragma once\r
+\r
+namespace caspar{\r
+\r
+void init_oal();\r
+\r
+}
\ No newline at end of file
diff --git a/modules/oal/oal.vcxproj b/modules/oal/oal.vcxproj
new file mode 100644 (file)
index 0000000..54a045e
--- /dev/null
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Develop|Win32">\r
+      <Configuration>Develop</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{82ED7ED6-8A15-40EC-A8AF-F5E712E0DA68}</ProjectGuid>\r
+    <RootNamespace>oal</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <ProjectName>oal</ProjectName>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <UseIntelTBB>true</UseIntelTBB>\r
+    <InstrumentIntelTBB>false</InstrumentIntelTBB>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\SFML-1.6\include;..\..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectName)</TargetName>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <MinimalRebuild>false</MinimalRebuild>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <SmallerTypeCheck>false</SmallerTypeCheck>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_THREADING_TOOLS=1;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;TBB_USE_PERFORMANCE_WARNINGS=1;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\common\common.vcxproj">\r
+      <Project>{02308602-7fe0-4253-b96e-22134919f56a}</Project>\r
+    </ProjectReference>\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
+  <ItemGroup>\r
+    <ClCompile Include="consumer\oal_consumer.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    </ClCompile>\r
+    <ClCompile Include="oal.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="consumer\oal_consumer.h" />\r
+    <ClInclude Include="oal.h" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/modules/oal/oal.vcxproj.filters b/modules/oal/oal.vcxproj.filters
new file mode 100644 (file)
index 0000000..4f510c2
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="consumer">\r
+      <UniqueIdentifier>{2de4befc-0e04-496c-be98-83b7d4a76e8a}</UniqueIdentifier>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="oal.cpp" />\r
+    <ClCompile Include="consumer\oal_consumer.cpp">\r
+      <Filter>consumer</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="oal.h" />\r
+    <ClInclude Include="consumer\oal_consumer.h">\r
+      <Filter>consumer</Filter>\r
+    </ClInclude>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
similarity index 89%
rename from core/consumer/ogl/ogl_consumer.cpp
rename to modules/ogl/consumer/ogl_consumer.cpp
index 8801458ca48effd0d27e62b3028a38501a725b81..4c8b8caf89b577244ac1f0030e47bf77a7ee16f2 100644 (file)
 *    along with CasparCG.  If not, see <http://www.gnu.org/licenses/>.\r
 *\r
 */\r
\r
-#include "../../StdAfx.h"\r
+\r
+#define NOMINMAX\r
+\r
+#include <windows.h>\r
+#include <Glee.h>\r
+#include <SFML/Window.hpp>\r
 \r
 #include "ogl_consumer.h"\r
 \r
 \r
 #include <boost/thread.hpp>\r
 \r
-#include <Glee.h>\r
-#include <SFML/Window.hpp>\r
-\r
-#include <windows.h>\r
-\r
 #include <algorithm>\r
+#include <array>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar {\r
 \r
 struct ogl_consumer::implementation : boost::noncopyable\r
 {              \r
@@ -65,7 +65,7 @@ struct ogl_consumer::implementation : boost::noncopyable
        const unsigned int screen_index_;\r
                                \r
        const stretch stretch_;\r
-       video_format_desc format_desc_;\r
+       core::video_format_desc format_desc_;\r
        \r
        sf::Window window_;\r
        \r
@@ -93,7 +93,7 @@ public:
                CASPAR_LOG(info) << print() << L" Shutting down.";      \r
        }\r
 \r
-       void initialize(const video_format_desc& format_desc, const printer& parent_printer)\r
+       void initialize(const core::video_format_desc& format_desc, const printer& parent_printer)\r
        {\r
                if(!GLEE_VERSION_2_1)\r
                        BOOST_THROW_EXCEPTION(not_supported() << msg_info("Missing OpenGL 2.1 support."));\r
@@ -219,7 +219,7 @@ public:
                return std::make_pair(width, height);\r
        }\r
 \r
-       void render(const safe_ptr<const read_frame>& frame)\r
+       void render(const safe_ptr<const core::read_frame>& frame)\r
        {                       \r
                glBindTexture(GL_TEXTURE_2D, texture_);\r
                glBindBuffer(GL_PIXEL_UNPACK_BUFFER, pbos_[0]);\r
@@ -233,7 +233,7 @@ public:
                auto ptr = glMapBuffer(GL_PIXEL_UNPACK_BUFFER, GL_WRITE_ONLY);\r
                if(ptr)\r
                {\r
-                       std::copy_n(frame->image_data().begin(), frame->image_data().size(), reinterpret_cast<char*>(ptr));\r
+                       std::copy(frame->image_data().begin(), frame->image_data().end(), reinterpret_cast<char*>(ptr));\r
                        glUnmapBuffer(GL_PIXEL_UNPACK_BUFFER); // release the mapped buffer\r
                }\r
 \r
@@ -254,7 +254,7 @@ public:
                clock_.tick(1.0/format_desc_.fps);\r
        }\r
                \r
-       void send(const safe_ptr<const read_frame>& frame)\r
+       void send(const safe_ptr<const core::read_frame>& frame)\r
        {\r
                active_.get();\r
                active_ = executor_.begin_invoke([=]\r
@@ -278,15 +278,15 @@ public:
 \r
 ogl_consumer::ogl_consumer(ogl_consumer&& other) : impl_(std::move(other.impl_)){}\r
 ogl_consumer::ogl_consumer(unsigned int screen_index, stretch stretch, bool windowed) : impl_(new implementation(screen_index, stretch, windowed)){}\r
-void ogl_consumer::send(const safe_ptr<const read_frame>& frame){impl_->send(frame);}\r
+void ogl_consumer::send(const safe_ptr<const core::read_frame>& frame){impl_->send(frame);}\r
 size_t ogl_consumer::buffer_depth() const{return impl_->buffer_depth();}\r
-void ogl_consumer::initialize(const video_format_desc& format_desc, const printer& parent_printer){impl_->initialize(format_desc, parent_printer);}\r
+void ogl_consumer::initialize(const core::video_format_desc& format_desc, const printer& parent_printer){impl_->initialize(format_desc, parent_printer);}\r
 std::wstring ogl_consumer::print() const {return impl_->print();}\r
 \r
-safe_ptr<frame_consumer> create_ogl_consumer(const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_consumer> create_ogl_consumer(const std::vector<std::wstring>& params)\r
 {\r
        if(params.size() < 1 || params[0] != L"OGL")\r
-               return frame_consumer::empty();\r
+               return core::frame_consumer::empty();\r
        \r
        unsigned int screen_index = 0;\r
        stretch stretch = stretch::fill;\r
@@ -301,4 +301,4 @@ safe_ptr<frame_consumer> create_ogl_consumer(const std::vector<std::wstring>& pa
        return make_safe<ogl_consumer>(screen_index, stretch, windowed);\r
 }\r
 \r
-}}\r
+}
\ No newline at end of file
similarity index 69%
rename from core/consumer/ogl/ogl_consumer.h
rename to modules/ogl/consumer/ogl_consumer.h
index 30b74a1400b0f226e2ed772bf1151e33ec2735b6..8ebaf21577c032f4e067a755e881be45c7c814de 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "../../consumer/frame_consumer.h"\r
-#include "../../video_format.h"\r
+#include <core/consumer/frame_consumer.h>\r
+#include <core/video_format.h>\r
 \r
-namespace caspar { namespace core {\r
-\r
-struct ogl_error : virtual caspar_exception{};\r
+#include <vector>\r
 \r
+namespace caspar {\r
+       \r
 enum stretch\r
 {\r
        none,\r
@@ -34,14 +34,14 @@ enum stretch
        uniform_to_fill\r
 };\r
 \r
-class ogl_consumer : public frame_consumer\r
+class ogl_consumer : public core::frame_consumer\r
 {\r
 public:        \r
        explicit ogl_consumer(unsigned int screen_index = 0, stretch stretch = stretch::fill, bool windowed = false);\r
        ogl_consumer(ogl_consumer&& other);\r
        \r
-       virtual void initialize(const video_format_desc& format_desc, const printer& parent_printer);\r
-       virtual void send(const safe_ptr<const read_frame>&);\r
+       virtual void initialize(const core::video_format_desc& format_desc, const printer& parent_printer);\r
+       virtual void send(const safe_ptr<const core::read_frame>&);\r
        virtual size_t buffer_depth() const;\r
        virtual std::wstring print() const;\r
 private:\r
@@ -49,6 +49,6 @@ private:
        std::shared_ptr<implementation> impl_;\r
 };\r
 \r
-safe_ptr<frame_consumer> create_ogl_consumer(const std::vector<std::wstring>& params);\r
+safe_ptr<core::frame_consumer> create_ogl_consumer(const std::vector<std::wstring>& params);\r
 \r
-}}
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/modules/ogl/ogl.cpp b/modules/ogl/ogl.cpp
new file mode 100644 (file)
index 0000000..9d356fb
--- /dev/null
@@ -0,0 +1,15 @@
+#include "ogl.h"\r
+\r
+#include "consumer/ogl_consumer.h"\r
+\r
+#include <core/consumer/frame_consumer.h>\r
+\r
+namespace caspar\r
+{\r
+\r
+void init_ogl()\r
+{\r
+       core::register_consumer_factory(create_ogl_consumer);\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/modules/ogl/ogl.h b/modules/ogl/ogl.h
new file mode 100644 (file)
index 0000000..8c2a3a5
--- /dev/null
@@ -0,0 +1,7 @@
+#pragma once\r
+\r
+namespace caspar{\r
+\r
+void init_ogl();\r
+\r
+}
\ No newline at end of file
diff --git a/modules/ogl/ogl.vcxproj b/modules/ogl/ogl.vcxproj
new file mode 100644 (file)
index 0000000..f8de4ac
--- /dev/null
@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Develop|Win32">\r
+      <Configuration>Develop</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{88F974F0-D09F-4788-8CF8-F563209E60C1}</ProjectGuid>\r
+    <RootNamespace>ogl</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <ProjectName>ogl</ProjectName>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <UseIntelTBB>true</UseIntelTBB>\r
+    <InstrumentIntelTBB>false</InstrumentIntelTBB>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\GLee5_4\;..\..\dependencies\tbb30_20100406oss\include\;..\..\dependencies\SFML-1.6\include;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\GLee5_4\;..\..\dependencies\tbb30_20100406oss\include\;..\..\dependencies\SFML-1.6\include;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\GLee5_4\;..\..\dependencies\tbb30_20100406oss\include\;..\..\dependencies\SFML-1.6\include;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\GLee5_4\;..\..\dependencies\tbb30_20100406oss\include\;..\..\dependencies\SFML-1.6\include;$(IncludePath)</IncludePath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectName)</TargetName>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <MinimalRebuild>false</MinimalRebuild>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <SmallerTypeCheck>false</SmallerTypeCheck>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PreLinkEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreLinkEvent>\r
+    <Link>\r
+      <AdditionalDependencies>sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <Version>\r
+      </Version>\r
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <IgnoreSpecificDefaultLibraries>LIBC.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <GenerateMapFile>true</GenerateMapFile>\r
+      <MapExports>true</MapExports>\r
+      <SubSystem>Console</SubSystem>\r
+      <OptimizeReferences>\r
+      </OptimizeReferences>\r
+      <EnableCOMDATFolding>\r
+      </EnableCOMDATFolding>\r
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>\r
+      <FixedBaseAddress>false</FixedBaseAddress>\r
+      <DataExecutionPrevention>\r
+      </DataExecutionPrevention>\r
+      <TargetMachine>MachineX86</TargetMachine>\r
+    </Link>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_THREADING_TOOLS=1;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>_SCL_SECURE_NO_WARNINGS;TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;TBB_USE_PERFORMANCE_WARNINGS=1;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\common\common.vcxproj">\r
+      <Project>{02308602-7fe0-4253-b96e-22134919f56a}</Project>\r
+    </ProjectReference>\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
+  <ItemGroup>\r
+    <ClCompile Include="consumer\ogl_consumer.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    </ClCompile>\r
+    <ClCompile Include="ogl.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="consumer\ogl_consumer.h" />\r
+    <ClInclude Include="ogl.h" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/modules/ogl/ogl.vcxproj.filters b/modules/ogl/ogl.vcxproj.filters
new file mode 100644 (file)
index 0000000..58bce99
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="consumer">\r
+      <UniqueIdentifier>{013ef3ed-0241-481f-b887-a54e4749045f}</UniqueIdentifier>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="ogl.cpp" />\r
+    <ClCompile Include="consumer\ogl_consumer.cpp">\r
+      <Filter>consumer</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="ogl.h" />\r
+    <ClInclude Include="consumer\ogl_consumer.h">\r
+      <Filter>consumer</Filter>\r
+    </ClInclude>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
diff --git a/modules/silverlight/StdAfx.cpp b/modules/silverlight/StdAfx.cpp
new file mode 100644 (file)
index 0000000..2bd615b
--- /dev/null
@@ -0,0 +1,28 @@
+/*\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
+// stdafx.cpp : source file that includes just the standard includes\r
+//     dma.pch will be the pre-compiled header\r
+//     stdafx.obj will contain the pre-compiled type information\r
+\r
+#include "stdafx.h"\r
+\r
+// TODO: reference any additional headers you need in STDAFX.H\r
+// and not in this file\r
diff --git a/modules/silverlight/StdAfx.h b/modules/silverlight/StdAfx.h
new file mode 100644 (file)
index 0000000..75da809
--- /dev/null
@@ -0,0 +1,83 @@
+/*\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
+// stdafx.h : include file for standard system include files,\r
+//  or project specific include files that are used frequently, but\r
+//      are changed infrequently\r
+//\r
+\r
+#pragma once\r
+\r
+#include "../common/compiler/vs/disable_silly_warnings.h"\r
+\r
+#define NOMINMAX\r
+\r
+#if defined(_MSC_VER)\r
+#      ifndef _SCL_SECURE_NO_WARNINGS\r
+#              define _SCL_SECURE_NO_WARNINGS\r
+#      endif\r
+#      ifndef _CRT_SECURE_NO_WARNINGS\r
+#              define _CRT_SECURE_NO_WARNINGS\r
+#      endif\r
+#endif\r
+\r
+#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)\r
+#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_\r
+\r
+#define BOOST_PARAMETER_MAX_ARITY 7\r
+\r
+#ifdef _DEBUG\r
+#include <crtdbg.h>\r
+#endif\r
+\r
+#include <memory>\r
+#include <array>\r
+#include <functional>\r
+#include <algorithm>\r
+#include <vector>\r
+#include <deque>\r
+#include <queue>\r
+#include <string>\r
+#include <math.h>\r
+\r
+#include <tbb/atomic.h>\r
+#include <tbb/concurrent_queue.h>\r
+#include <tbb/concurrent_unordered_map.h>\r
+#include <tbb/parallel_invoke.h>\r
+#include <tbb/parallel_for.h>\r
+#include <tbb/parallel_for_each.h>\r
+\r
+#include <boost/assign.hpp>\r
+#include <boost/filesystem.hpp>\r
+#include <boost/foreach.hpp>\r
+#include <boost/range/algorithm.hpp>\r
+#include <boost/signals2.hpp>\r
+\r
+#include "../common/utility/string.h"\r
+#include "../common/memory/safe_ptr.h"\r
+//#include "../common/concurrency/executor.h" // Can't include this due to MSVC lambda bug\r
+\r
+#include "../common/log/Log.h"\r
+#include "../common/exception/exceptions.h"\r
+#include "../common/exception/win32_exception.h"\r
+\r
+#include <assert.h>\r
+\r
+#endif\r
similarity index 95%
rename from core/producer/silverlight/XcpControlHost.cpp
rename to modules/silverlight/interop/XcpControlHost.cpp
index b79d75fe06a8871577ce3a72a25610765dec92b0..f2b34c61948edb3dc462318487f9335fae86836d 100644 (file)
@@ -1,4 +1,4 @@
-// XcpControlHost.cpp : Implementation of XcpControlHost\r
+#include "../StdAfx.h"\r
 \r
 #include "XcpControlHost.h"\r
 #include "XcpPropertyBag.h"\r
similarity index 93%
rename from core/producer/silverlight/XcpPropertyBag.cpp
rename to modules/silverlight/interop/XcpPropertyBag.cpp
index 3d5f7c8b259cfd7714303cde27c71d35fea8abc8..3a9a689c22da64d60a10d0f1aae58ac83de09c1d 100644 (file)
@@ -1,3 +1,5 @@
+#include "../StdAfx.h"\r
+\r
 #include "XcpPropertyBag.h"\r
 \r
 #ifdef _MSC_VER\r
similarity index 80%
rename from core/producer/silverlight/silverlight_producer.cpp
rename to modules/silverlight/producer/silverlight_producer.cpp
index 83b582fc6cd905b0b1f8e9947da44715739c171e..6b29311dfb10dc97bb8ebe3d1eb2b26234f403c4 100644 (file)
@@ -18,7 +18,7 @@
 *\r
 */\r
  \r
-#include "..\..\stdafx.h"\r
+#include "../stdafx.h"\r
 \r
 #if defined(_MSC_VER)\r
 #pragma warning (disable : 4714) // marked as __forceinline not inlined\r
@@ -27,7 +27,7 @@
 \r
 #include "silverlight_producer.h"\r
 \r
-#include "XcpControlHost.h"\r
+#include "../interop/XcpControlHost.h"\r
 \r
 #include <core/video_format.h>\r
 \r
 \r
 #include <common/concurrency/executor.h>\r
 #include <common/env.h>\r
-#include <common/gl/gl_check.h>\r
 \r
 #include <boost/filesystem.hpp>\r
 \r
-#include <Glee.h>\r
 #include <SFML/Graphics.hpp>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar {\r
                \r
 class silverlight_renderer\r
 {\r
@@ -55,12 +53,12 @@ class silverlight_renderer
        \r
        int id_;\r
 \r
-       std::shared_ptr<frame_factory> frame_factory_;\r
-       video_format_desc format_desc_;\r
+       const std::shared_ptr<core::frame_factory> frame_factory_;\r
+       const core::video_format_desc format_desc_;\r
        \r
        CComObject<XcpControlHost>* host_;\r
        tbb::spin_mutex mutex_;\r
-       safe_ptr<draw_frame> last_frame_;\r
+       safe_ptr<core::draw_frame> last_frame_;\r
 \r
        sf::RenderWindow window_;\r
                        \r
@@ -70,10 +68,10 @@ class silverlight_renderer
        unsigned char* bmp_data_;\r
 \r
 public:\r
-       silverlight_renderer(const std::shared_ptr<frame_factory>& frame_factory) \r
+       silverlight_renderer(const std::shared_ptr<core::frame_factory>& frame_factory) \r
                : frame_factory_(frame_factory)\r
                , format_desc_(frame_factory->get_video_format_desc())\r
-               , last_frame_(draw_frame::empty())\r
+               , last_frame_(core::draw_frame::empty())\r
                , host_(nullptr)\r
                , id_(rand())\r
                , window_(sf::VideoMode(format_desc_.width, format_desc_.height, 32), boost::lexical_cast<std::string>(id_), sf::Style::None)\r
@@ -128,14 +126,14 @@ public:
                last_frame_ = frame;\r
        }\r
                \r
-       safe_ptr<draw_frame> get_frame()\r
+       safe_ptr<core::draw_frame> get_frame()\r
        {               \r
                tbb::spin_mutex::scoped_lock lock(mutex_);\r
                return last_frame_;\r
        }\r
 };\r
 \r
-struct silverlight_producer : public frame_producer\r
+struct silverlight_producer : public core::frame_producer\r
 {                              \r
        std::wstring print() const{ return L"silverlight[]"; }  \r
 \r
@@ -148,7 +146,7 @@ public:
        silverlight_producer()\r
        {}\r
        \r
-       virtual void initialize(const safe_ptr<frame_factory>& frame_factory)\r
+       virtual void initialize(const safe_ptr<core::frame_factory>& frame_factory)\r
        {\r
                executor_.start();\r
                executor_.invoke([=]\r
@@ -157,7 +155,12 @@ public:
                });\r
        }\r
 \r
-       virtual safe_ptr<draw_frame> receive()\r
+       void set_parent_printer(const printer& parent_printer)\r
+       {\r
+\r
+       }\r
+\r
+       virtual safe_ptr<core::draw_frame> receive()\r
        {\r
                executor_.begin_invoke([=]\r
                {\r
@@ -168,15 +171,15 @@ public:
        }\r
 };\r
 \r
-safe_ptr<frame_producer> create_silverlight_producer(const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_producer> create_silverlight_producer(const std::vector<std::wstring>& params)\r
 {\r
        //std::wstring filename = env::template_folder() + L"\\" + params[0] + L".xap";\r
        //if(!boost::filesystem::exists(filename))\r
        //      return frame_producer::empty();\r
        if(params[0] != L"SILVER")\r
-               return frame_producer::empty();\r
+               return core::frame_producer::empty();\r
 \r
        return make_safe<silverlight_producer>();\r
 }\r
 \r
-}}
\ No newline at end of file
+}
\ No newline at end of file
similarity index 80%
rename from core/producer/silverlight/silverlight_producer.h
rename to modules/silverlight/producer/silverlight_producer.h
index 54a60bac56b403ab2f7e179803d0c8a77f41d30b..8273a24fce5697fef9eb54128ea6483d8a676f78 100644 (file)
 */\r
 #pragma once\r
 \r
-#include "../frame_producer.h"\r
+#include <core/producer/frame_producer.h>\r
 \r
 #include <string>\r
 #include <vector>\r
 \r
-namespace caspar { namespace core {\r
+namespace caspar {\r
        \r
-safe_ptr<frame_producer> create_silverlight_producer(const std::vector<std::wstring>& params);\r
+safe_ptr<core::frame_producer> create_silverlight_producer(const std::vector<std::wstring>& params);\r
 \r
-}}\r
+}\r
diff --git a/modules/silverlight/silverlight.cpp b/modules/silverlight/silverlight.cpp
new file mode 100644 (file)
index 0000000..d995f7b
--- /dev/null
@@ -0,0 +1,16 @@
+#include "stdafx.h"\r
+\r
+#include "silverlight.h"\r
+\r
+#include "producer/silverlight_producer.h"\r
+\r
+#include <core/producer/frame_producer.h>\r
+\r
+namespace caspar{\r
+\r
+void init_silverlight()\r
+{\r
+       core::register_producer_factory(create_silverlight_producer);\r
+}\r
+\r
+}
\ No newline at end of file
diff --git a/modules/silverlight/silverlight.h b/modules/silverlight/silverlight.h
new file mode 100644 (file)
index 0000000..44d5423
--- /dev/null
@@ -0,0 +1,7 @@
+#pragma once\r
+\r
+namespace caspar {\r
+\r
+void init_silverlight();\r
+\r
+}
\ No newline at end of file
diff --git a/modules/silverlight/silverlight.vcxproj b/modules/silverlight/silverlight.vcxproj
new file mode 100644 (file)
index 0000000..48988e6
--- /dev/null
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Develop|Win32">\r
+      <Configuration>Develop</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{B964D953-8882-454C-A935-DB711D697E39}</ProjectGuid>\r
+    <RootNamespace>silverlight</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <ProjectName>silverlight</ProjectName>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>false</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <UseIntelTBB>true</UseIntelTBB>\r
+    <InstrumentIntelTBB>false</InstrumentIntelTBB>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC71.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</IntDir>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;..\..\dependencies\SFML-1.6\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;..\..\dependencies\SFML-1.6\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;..\..\dependencies\SFML-1.6\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\;..\..\dependencies\boost_1_44_0\;..\..\dependencies\ffmpeg 0.6\include\;..\..\dependencies\tbb30_20100406oss\include\;..\..\dependencies\SFML-1.6\include\;$(IncludePath)</IncludePath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\..\dependencies\boost_1_44_0\stage\lib\;..\..\dependencies\ffmpeg 0.6\lib\;..\..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectDir)bin\$(Configuration)\</OutDir>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(ProjectName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(ProjectName)</TargetName>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <MinimalRebuild>false</MinimalRebuild>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <SmallerTypeCheck>false</SmallerTypeCheck>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>true</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_THREADING_TOOLS=1;NDEBUG;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
+    <PreBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PreBuildEvent>\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>\r
+      <AdditionalIncludeDirectories>../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <ExceptionHandling>Async</ExceptionHandling>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>\r
+      <RuntimeTypeInfo>true</RuntimeTypeInfo>\r
+      <PrecompiledHeader>Use</PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>\r
+      <PreprocessorDefinitions>TBB_USE_CAPTURED_EXCEPTION=0;TBB_USE_ASSERT=1;TBB_USE_PERFORMANCE_WARNINGS=1;_VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <TreatWarningAsError>true</TreatWarningAsError>\r
+      <OmitFramePointers>true</OmitFramePointers>\r
+      <FloatingPointModel>Fast</FloatingPointModel>\r
+      <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
+    </ClCompile>\r
+    <PostBuildEvent>\r
+      <Command>\r
+      </Command>\r
+    </PostBuildEvent>\r
+    <Lib />\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="..\..\common\common.vcxproj">\r
+      <Project>{02308602-7fe0-4253-b96e-22134919f56a}</Project>\r
+    </ProjectReference>\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
+  <ItemGroup>\r
+    <ClCompile Include="interop\XcpControlHost.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="interop\xcpctrl_i.c">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+    </ClCompile>\r
+    <ClCompile Include="interop\xcpctrl_p.c">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+    </ClCompile>\r
+    <ClCompile Include="interop\XcpPropertyBag.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\silverlight_producer.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="silverlight.cpp" />\r
+    <ClCompile Include="StdAfx.cpp">\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="interop\XcpControlHost.h" />\r
+    <ClInclude Include="interop\xcpctrl.h" />\r
+    <ClInclude Include="interop\xcpctrl_h.h" />\r
+    <ClInclude Include="interop\XcpPropertyBag.h" />\r
+    <ClInclude Include="producer\silverlight_producer.h" />\r
+    <ClInclude Include="silverlight.h" />\r
+    <ClInclude Include="StdAfx.h" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Midl Include="interop\xcpctrl.idl">\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">true</ExcludedFromBuild>\r
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>\r
+    </Midl>\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/modules/silverlight/silverlight.vcxproj.filters b/modules/silverlight/silverlight.vcxproj.filters
new file mode 100644 (file)
index 0000000..bd1460a
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="interop">\r
+      <UniqueIdentifier>{4f739737-1661-40dd-afc7-5cc64598f500}</UniqueIdentifier>\r
+    </Filter>\r
+    <Filter Include="producer">\r
+      <UniqueIdentifier>{d33ae2d6-7928-46bb-940b-c7c76c601329}</UniqueIdentifier>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="producer\silverlight_producer.cpp">\r
+      <Filter>producer</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="interop\xcpctrl_i.c">\r
+      <Filter>interop</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="interop\xcpctrl_p.c">\r
+      <Filter>interop</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="interop\XcpPropertyBag.cpp">\r
+      <Filter>interop</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="interop\XcpControlHost.cpp">\r
+      <Filter>interop</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="silverlight.cpp" />\r
+    <ClCompile Include="StdAfx.cpp" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="producer\silverlight_producer.h">\r
+      <Filter>producer</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="interop\xcpctrl.h">\r
+      <Filter>interop</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="interop\xcpctrl_h.h">\r
+      <Filter>interop</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="interop\XcpPropertyBag.h">\r
+      <Filter>interop</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="interop\XcpControlHost.h">\r
+      <Filter>interop</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="silverlight.h" />\r
+    <ClInclude Include="StdAfx.h" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <Midl Include="interop\xcpctrl.idl">\r
+      <Filter>interop</Filter>\r
+    </Midl>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
index c2570bd19caf3c0fb2e7edaf88c4d1d45c604c94..01477c88c6d66b917189ce1f95c77f1071bb71e7 100644 (file)
 #include "AMCPCommandsImpl.h"\r
 #include "AMCPProtocolStrategy.h"\r
 \r
-#include "../media.h"\r
-\r
 #include <common/env.h>\r
 \r
 #include <core/producer/frame_producer.h>\r
 #include <core/video_format.h>\r
-#include <core/producer/flash/flash_producer.h>\r
+#include <modules/flash/flash.h>\r
+#include <modules/flash/producer/flash_producer.h>\r
+#include <modules/flash/producer/cg_producer.h>\r
 #include <core/producer/transition/transition_producer.h>\r
-#include <core/producer/flash/cg_producer.h>\r
 \r
 #include <mixer/image/image_transform.h>\r
 #include <mixer/audio/audio_transform.h>\r
@@ -511,9 +510,9 @@ bool LoadbgCommand::DoExecute()
                if(pFP == frame_producer::empty())\r
                        BOOST_THROW_EXCEPTION(file_not_found() << msg_info(_parameters.size() > 0 ? narrow(_parameters[0]) : ""));\r
 \r
-               pFP = safe_ptr<core::frame_producer>(transition_producer(pFP, transitionInfo));\r
+               auto pFP2 = make_safe<core::transition_producer>(pFP, transitionInfo);\r
                bool autoPlay = std::find(_parameters.begin(), _parameters.end(), TEXT("AUTOPLAY")) != _parameters.end();\r
-               GetChannel()->producer().load(GetLayerIndex(), pFP, autoPlay); // TODO: LOOP\r
+               GetChannel()->producer().load(GetLayerIndex(), pFP2, autoPlay); // TODO: LOOP\r
        \r
                CASPAR_LOG(info) << "Loaded " << _parameters[0] << TEXT(" successfully to background");\r
                SetReplyString(TEXT("202 LOADBG OK\r\n"));\r
@@ -709,14 +708,14 @@ bool CGCommand::DoExecuteAdd() {
                }\r
        }\r
 \r
-       std::wstring fullFilename = core::flash::flash_producer::find_template(env::template_folder() + _parameters[2]);\r
+       std::wstring fullFilename = flash_producer::find_template(env::template_folder() + _parameters[2]);\r
        if(!fullFilename.empty())\r
        {\r
                std::wstring extension = boost::filesystem::wpath(fullFilename).extension();\r
                std::wstring filename = _parameters[2];\r
                filename.append(extension);\r
 \r
-               core::flash::get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(core::flash::cg_producer::DEFAULT_LAYER))->add(layer, filename, bDoStart, label, (pDataString!=0) ? pDataString : TEXT(""));\r
+               get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(cg_producer::DEFAULT_LAYER))->add(layer, filename, bDoStart, label, (pDataString!=0) ? pDataString : TEXT(""));\r
                SetReplyString(TEXT("202 CG OK\r\n"));\r
        }\r
        else\r
@@ -737,7 +736,7 @@ bool CGCommand::DoExecutePlay()
                        return false;\r
                }\r
                int layer = _ttoi(_parameters[1].c_str());\r
-               core::flash::get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(core::flash::cg_producer::DEFAULT_LAYER))->play(layer);\r
+               get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(cg_producer::DEFAULT_LAYER))->play(layer);\r
        }\r
        else\r
        {\r
@@ -759,7 +758,7 @@ bool CGCommand::DoExecuteStop()
                        return false;\r
                }\r
                int layer = _ttoi(_parameters[1].c_str());\r
-               core::flash::get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(core::flash::cg_producer::DEFAULT_LAYER))->stop(layer, 0);\r
+               get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(cg_producer::DEFAULT_LAYER))->stop(layer, 0);\r
        }\r
        else \r
        {\r
@@ -781,7 +780,7 @@ bool CGCommand::DoExecuteNext()
                        return false;\r
                }\r
                int layer = _ttoi(_parameters[1].c_str());\r
-               core::flash::get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(core::flash::cg_producer::DEFAULT_LAYER))->next(layer);\r
+               get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(cg_producer::DEFAULT_LAYER))->next(layer);\r
        }\r
        else \r
        {\r
@@ -803,7 +802,7 @@ bool CGCommand::DoExecuteRemove()
                        return false;\r
                }\r
                int layer = _ttoi(_parameters[1].c_str());\r
-               core::flash::get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(core::flash::cg_producer::DEFAULT_LAYER))->remove(layer);\r
+               get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(cg_producer::DEFAULT_LAYER))->remove(layer);\r
        }\r
        else \r
        {\r
@@ -817,7 +816,7 @@ bool CGCommand::DoExecuteRemove()
 \r
 bool CGCommand::DoExecuteClear() \r
 {\r
-       core::flash::get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(core::flash::cg_producer::DEFAULT_LAYER))->clear();\r
+       get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(cg_producer::DEFAULT_LAYER))->clear();\r
        SetReplyString(TEXT("202 CG OK\r\n"));\r
        return true;\r
 }\r
@@ -833,7 +832,7 @@ bool CGCommand::DoExecuteUpdate()
                }\r
                int layer = _ttoi(_parameters[1].c_str());\r
                //TODO: Implement indirect data loading from file. Same as in Add\r
-               core::flash::get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(core::flash::cg_producer::DEFAULT_LAYER))->update(layer, _parameters[2]);\r
+               get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(cg_producer::DEFAULT_LAYER))->update(layer, _parameters[2]);\r
        }\r
        else \r
        {\r
@@ -855,7 +854,7 @@ bool CGCommand::DoExecuteInvoke()
                        return false;\r
                }\r
                int layer = _ttoi(_parameters[1].c_str());\r
-               core::flash::get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(core::flash::cg_producer::DEFAULT_LAYER))->invoke(layer, _parameters[2]);\r
+               get_default_cg_producer(safe_ptr<core::channel>(GetChannel()), GetLayerIndex(cg_producer::DEFAULT_LAYER))->invoke(layer, _parameters[2]);\r
        }\r
        else \r
        {\r
@@ -870,7 +869,7 @@ bool CGCommand::DoExecuteInvoke()
 bool CGCommand::DoExecuteInfo() \r
 {\r
        // TODO\r
-       //core::flash::get_default_cg_producer(GetChannel())->Info();\r
+       //get_default_cg_producer(GetChannel())->Info();\r
        SetReplyString(TEXT("600 CG FAILED\r\n"));\r
        return true;\r
 }\r
@@ -1067,9 +1066,9 @@ bool VersionCommand::DoExecute()
        if(_parameters.size() > 0)\r
        {\r
                if(_parameters[0] == L"FLASH")\r
-                       replyString = TEXT("201 VERSION OK\r\n FLASH: ") + flash::get_flash_version() + TEXT("\r\n");\r
+                       replyString = TEXT("201 VERSION OK\r\n FLASH: ") + get_flash_version() + TEXT("\r\n");\r
                else if(_parameters[0] == L"TEMPLATEHOST")\r
-                       replyString = TEXT("201 VERSION OK\r\n TEMPLATEHOST: ") + flash::get_cg_version() + TEXT("\r\n");\r
+                       replyString = TEXT("201 VERSION OK\r\n TEMPLATEHOST: ") + get_cg_version() + TEXT("\r\n");\r
                else if(_parameters[0] != L"SERVER")\r
                        replyString = TEXT("403 VERSION ERROR\r\n");\r
        }\r
index ea5b825ef5770bd71f30971071dd501d963af74f..e70d66116a595c2ccfbd30d4f3728a42d3ad5fef 100644 (file)
@@ -24,7 +24,7 @@
 #include "CIICommandsImpl.h"\r
 #include <sstream>\r
 #include <algorithm>\r
-#include <core/producer/flash/cg_producer.h>\r
+#include <modules/flash/producer/cg_producer.h>\r
 \r
 namespace caspar { namespace protocol { namespace cii {\r
 \r
@@ -140,7 +140,7 @@ void MiscellaneousCommand::Execute()
 \r
        //TODO: Need to be checked for validity\r
        else if(state_ == 1)\r
-               core::flash::get_default_cg_producer(pCIIStrategy_->GetChannel())->add(layer_, filename_, false, TEXT(""), xmlData_);\r
+               get_default_cg_producer(pCIIStrategy_->GetChannel())->add(layer_, filename_, false, TEXT(""), xmlData_);\r
 }\r
 \r
 \r
@@ -154,11 +154,11 @@ void KeydataCommand::Execute()
 \r
        //TODO: Need to be checked for validity\r
        else if(state_ == 1)\r
-               core::flash::get_default_cg_producer(pCIIStrategy_->GetChannel())->stop(layer_, 0);\r
+               get_default_cg_producer(pCIIStrategy_->GetChannel())->stop(layer_, 0);\r
        else if(state_ == 2)\r
-               core::flash::get_default_cg_producer(pCIIStrategy_->GetChannel())->clear();\r
+               get_default_cg_producer(pCIIStrategy_->GetChannel())->clear();\r
        else if(state_ == 3)\r
-               core::flash::get_default_cg_producer(pCIIStrategy_->GetChannel())->play(layer_);\r
+               get_default_cg_producer(pCIIStrategy_->GetChannel())->play(layer_);\r
 }\r
 \r
 void KeydataCommand::Setup(const std::vector<std::wstring>& parameters) {\r
index ae9803ff40e71ed79ab226c92b98dc957c338d9d..80560bdf08bda37917e171853173ffb7c339ac9e 100644 (file)
 #include <string>\r
 #include <sstream>\r
 #include <algorithm>\r
-#include "../media.h"\r
 #include "CIIProtocolStrategy.h"\r
 #include "CIICommandsimpl.h"\r
-#include <core/producer/flash/flash_producer.h>\r
+#include <modules/flash/producer/flash_producer.h>\r
 #include <core/producer/transition/transition_producer.h>\r
 #include <core/producer/frame_producer.h>\r
 #include <common/env.h>\r
@@ -175,14 +174,14 @@ void CIIProtocolStrategy::WriteTemplateData(const std::wstring& templateName, co
                fullTemplateFilename += TEXT("\\");\r
        }\r
        fullTemplateFilename += templateName;\r
-       fullTemplateFilename = core::flash::flash_producer::find_template(fullTemplateFilename);\r
+       fullTemplateFilename = flash_producer::find_template(fullTemplateFilename);\r
        if(fullTemplateFilename.empty())\r
        {\r
                CASPAR_LOG(error) << "Failed to save instance of " << templateName << TEXT(" as ") << titleName << TEXT(", template ") << fullTemplateFilename << " not found";\r
                return;\r
        }\r
        \r
-       auto producer = core::flash::flash_producer(env::template_folder()+TEXT("CG.fth"));\r
+       auto producer = flash_producer(env::template_folder()+TEXT("CG.fth"));\r
 \r
        std::wstringstream flashParam;\r
        flashParam << TEXT("<invoke name=\"Add\" returntype=\"xml\"><arguments><number>1</number><string>") << currentProfile_ << '/' <<  templateName << TEXT("</string><number>0</number><true/><string> </string><string><![CDATA[ ") << xmlData << TEXT(" ]]></string></arguments></invoke>");\r
@@ -216,7 +215,7 @@ void CIIProtocolStrategy::DisplayMediaFile(const std::wstring& filename)
        transition.duration = 12;\r
 \r
        auto pFP = create_producer(boost::assign::list_of(filename));\r
-       auto pTransition = safe_ptr<core::frame_producer>(transition_producer(pFP, transition));\r
+       auto pTransition = make_safe<core::transition_producer>(pFP, transition);\r
 \r
        try\r
        {\r
index c5dac09e8f529337471c2f493461e52bb734b091..2ddd55c18a3b73b9ce8b87d3a33d4f7f9edcc5ee 100644 (file)
@@ -22,7 +22,7 @@
 \r
 #include "CLKProtocolStrategy.h"\r
 \r
-#include <core/producer\flash\cg_producer.h>\r
+#include <modules/flash/producer/cg_producer.h>\r
 \r
 #include <string>\r
 #include <sstream>\r
@@ -115,7 +115,7 @@ void CLKProtocolStrategy::Parse(const TCHAR* pData, int charCount, IO::ClientInf
 \r
                        if(currentCommand_.command_ == CLKCommand::CLKReset) \r
                        {\r
-                               core::flash::get_default_cg_producer(pChannel_)->clear();\r
+                               get_default_cg_producer(pChannel_)->clear();\r
                                bClockLoaded_ = false;\r
                                \r
                                CASPAR_LOG(info) << L"CLK: Recieved and executed reset-command";\r
@@ -124,11 +124,11 @@ void CLKProtocolStrategy::Parse(const TCHAR* pData, int charCount, IO::ClientInf
                        {\r
                                if(!bClockLoaded_) \r
                                {\r
-                                       core::flash::get_default_cg_producer(pChannel_)->add(0, TEXT("hawrysklocka/clock"), true, TEXT(""), currentCommand_.GetData());\r
+                                       get_default_cg_producer(pChannel_)->add(0, TEXT("hawrysklocka/clock"), true, TEXT(""), currentCommand_.GetData());\r
                                        bClockLoaded_ = true;\r
                                }\r
                                else \r
-                                       core::flash::get_default_cg_producer(pChannel_)->update(0, currentCommand_.GetData());\r
+                                       get_default_cg_producer(pChannel_)->update(0, currentCommand_.GetData());\r
                                \r
                                CASPAR_LOG(debug) << L"CLK: Clockdata sent: " << currentCommand_.GetData();\r
                                CASPAR_LOG(debug) << L"CLK: Executed valid command: " << currentCommandString_.str();\r
diff --git a/protocol/media.cpp b/protocol/media.cpp
deleted file mode 100644 (file)
index b816d84..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-#include "StdAfx.h"\r
-\r
-#include "media.h"\r
-\r
-#include <common/exception/exceptions.h>\r
-\r
-#include <core/producer/color/color_producer.h>\r
-#include <core/producer/ffmpeg/ffmpeg_producer.h>\r
-#include <core/producer/flash/cg_producer.h>\r
-#include <core/producer/image/image_producer.h>\r
-#include <core/producer/decklink/decklink_producer.h>\r
-#include <core/producer/silverlight/silverlight_producer.h>\r
-\r
-#include <core/consumer/bluefish/bluefish_consumer.h>\r
-#include <core/consumer/decklink/decklink_consumer.h>\r
-#include <core/consumer/ogl/ogl_consumer.h>\r
-#include <core/consumer/oal/oal_consumer.h>\r
-#include <core/consumer/ffmpeg/ffmpeg_consumer.h>\r
-//#include "../producer/image/image_scroll_producer.h"\r
-\r
-#include <common/exception/exceptions.h>\r
-\r
-#include <boost/assign.hpp>\r
-#include <boost/filesystem.hpp>\r
-\r
-using namespace boost::assign;\r
-\r
-namespace caspar { namespace protocol { \r
-       \r
-using namespace core;\r
-\r
-safe_ptr<core::frame_producer> create_producer(const std::vector<std::wstring>& params)\r
-{              \r
-       typedef std::function<safe_ptr<core::frame_producer>(const std::vector<std::wstring>&)> factory_t;\r
-\r
-       const auto factories = list_of<factory_t>\r
-               (&core::flash::create_ct_producer)\r
-       //      (&image::create_image_scroll_producer)\r
-               (&core::ffmpeg::create_ffmpeg_producer)\r
-               (&core::image::create_image_producer)\r
-               (&core::create_decklink_producer)\r
-               (&core::create_color_producer)\r
-               //(&core::create_silverlight_producer)\r
-               ;\r
-\r
-       if(params.empty())\r
-               BOOST_THROW_EXCEPTION(invalid_argument() << arg_name_info("params") << arg_value_info(""));\r
-\r
-       auto producer = frame_producer::empty();\r
-       std::any_of(factories.begin(), factories.end(), [&](const factory_t& factory) -> bool\r
-               {\r
-                       try\r
-                       {\r
-                               producer = factory(params);\r
-                       }\r
-                       catch(...)\r
-                       {\r
-                               CASPAR_LOG_CURRENT_EXCEPTION();\r
-                       }\r
-                       return producer != frame_producer::empty();\r
-               });\r
-\r
-       if(producer == frame_producer::empty())\r
-               BOOST_THROW_EXCEPTION(file_not_found() << msg_info("No match found for supplied commands. Check syntax."));\r
-\r
-       return producer;\r
-}\r
-\r
-safe_ptr<core::frame_consumer> create_consumer(const std::vector<std::wstring>& params)\r
-{              \r
-       typedef std::function<safe_ptr<core::frame_consumer>(const std::vector<std::wstring>&)> factory_t;\r
-\r
-       const auto factories = list_of<factory_t>\r
-               (&core::create_bluefish_consumer)\r
-               (&core::create_decklink_consumer)\r
-               (&core::create_oal_consumer)\r
-               (&core::create_ogl_consumer)\r
-               (&core::create_ffmpeg_consumer);\r
-\r
-       if(params.empty())\r
-               BOOST_THROW_EXCEPTION(invalid_argument() << arg_name_info("params") << arg_value_info(""));\r
-\r
-       auto consumer = frame_consumer::empty();\r
-       std::any_of(factories.begin(), factories.end(), [&](const factory_t& factory) -> bool\r
-               {\r
-                       try\r
-                       {\r
-                               consumer = factory(params);\r
-                       }\r
-                       catch(...)\r
-                       {\r
-                               CASPAR_LOG_CURRENT_EXCEPTION();\r
-                       }\r
-                       return consumer != frame_consumer::empty();\r
-               });\r
-       \r
-       if(consumer == frame_consumer::empty())\r
-               BOOST_THROW_EXCEPTION(file_not_found() << msg_info("No match found for supplied commands. Check syntax."));\r
-\r
-       return consumer;\r
-}\r
-\r
-}}\r
diff --git a/protocol/media.h b/protocol/media.h
deleted file mode 100644 (file)
index f605f4a..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once\r
-\r
-#include <core/producer/frame_producer.h>\r
-#include <core/consumer/frame_consumer.h>\r
-\r
-#include <string>\r
-#include <vector>\r
-\r
-namespace caspar { namespace protocol { \r
-       \r
-safe_ptr<core::frame_producer> create_producer(const std::vector<std::wstring>& params);\r
-safe_ptr<core::frame_consumer> create_consumer(const std::vector<std::wstring>& params);\r
-\r
-}}\r
index 3894d2d42eb736851db8ced34b82a224d3a9e638..398019f99f1f48bc63830004a8e25af0fc5384c9 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup Label="ProjectConfigurations">\r
-    <ProjectConfiguration Include="Amplify|Win32">\r
-      <Configuration>Amplify</Configuration>\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
       <Platform>Win32</Platform>\r
     </ProjectConfiguration>\r
     <ProjectConfiguration Include="Debug|Win32">\r
@@ -28,6 +28,9 @@
     <ProjectReference Include="..\mixer\mixer.vcxproj">\r
       <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
     </ProjectReference>\r
+    <ProjectReference Include="..\modules\flash\flash.vcxproj">\r
+      <Project>{816deaba-3757-4306-afe0-c27cf96c4dea}</Project>\r
+    </ProjectReference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="amcp\AMCPCommand.h" />\r
@@ -39,7 +42,6 @@
     <ClInclude Include="cii\CIIProtocolStrategy.h" />\r
     <ClInclude Include="clk\CLKCommand.h" />\r
     <ClInclude Include="clk\CLKProtocolStrategy.h" />\r
-    <ClInclude Include="media.h" />\r
     <ClInclude Include="StdAfx.h" />\r
     <ClInclude Include="util\AsyncEventServer.h" />\r
     <ClInclude Include="util\ClientInfo.h" />\r
     <ClCompile Include="amcp\AMCPCommandQueue.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)'=='Amplify|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="amcp\AMCPCommandsImpl.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)'=='Amplify|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="amcp\AMCPProtocolStrategy.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)'=='Amplify|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="cii\CIICommandsImpl.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)'=='Amplify|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="cii\CIIProtocolStrategy.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)'=='Amplify|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="clk\CLKCommand.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)'=='Amplify|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="clk\CLKProtocolStrategy.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)'=='Amplify|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="media.cpp" />\r
     <ClCompile Include="StdAfx.cpp">\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">Create</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">Create</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">Create</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>\r
     </ClCompile>\r
     <ClCompile Include="util\AsyncEventServer.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)'=='Amplify|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="util\SocketInfo.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)'=='Amplify|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="util\Thread.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)'=='Amplify|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
   </ItemGroup>\r
     <WholeProgramOptimization>true</WholeProgramOptimization>\r
     <CharacterSet>Unicode</CharacterSet>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'" Label="Configuration">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
     <ConfigurationType>StaticLibrary</ConfigurationType>\r
     <UseDebugLibraries>false</UseDebugLibraries>\r
     <WholeProgramOptimization>true</WholeProgramOptimization>\r
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'" Label="PropertySheets">\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
   </ImportGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <IncludePath>../;..\dependencies/tbb30_20100406oss/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
-    <OutDir>$(ProjectDir)$(Configuration)\</OutDir>\r
+    <OutDir>$(ProjectDir)\bin\$(Configuration)\</OutDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <IncludePath>../;..\dependencies/tbb30_20100406oss/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
-    <OutDir>$(ProjectDir)$(Configuration)\</OutDir>\r
+    <OutDir>$(ProjectDir)\bin\$(Configuration)\</OutDir>\r
+    <IntDir>$(ProjectDir)\bin\$(Configuration)\</IntDir>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
     <IncludePath>../;..\dependencies/tbb30_20100406oss/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
-    <OutDir>$(ProjectDir)$(Configuration)\</OutDir>\r
+    <OutDir>$(ProjectDir)\bin\$(Configuration)\</OutDir>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
     <IncludePath>../;..\dependencies/tbb30_20100406oss/include;..\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
-    <OutDir>$(ProjectDir)$(Configuration)\</OutDir>\r
+    <OutDir>$(ProjectDir)\bin\$(Configuration)\</OutDir>\r
   </PropertyGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
     <ClCompile>\r
       <SubSystem>Windows</SubSystem>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
     </Link>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <ClCompile>\r
       <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
       <OptimizeReferences>true</OptimizeReferences>\r
     </Link>\r
+    <Lib>\r
+      <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration>\r
+    </Lib>\r
   </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
     <ClCompile>\r
       <WarningLevel>Level1</WarningLevel>\r
       <PrecompiledHeader>Use</PrecompiledHeader>\r
       <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
       <OptimizeReferences>true</OptimizeReferences>\r
     </Link>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
     <ClCompile>\r
       <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
       <OptimizeReferences>true</OptimizeReferences>\r
     </Link>\r
+    <Lib />\r
   </ItemDefinitionGroup>\r
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
   <ImportGroup Label="ExtensionTargets">\r
index 155994fbf964ac91923c0b0da5953efdb0ef7285..8fa39c4bf1056d0ddce0bfca8574c14e36a0b52d 100644 (file)
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup>\r
-    <Filter Include="Source Files">\r
-      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
-      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
-    </Filter>\r
-    <Filter Include="Afx">\r
-      <UniqueIdentifier>{0289b005-5045-4798-b83e-72a4c7c1e412}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source Files\amcp">\r
+    <Filter Include="amcp">\r
       <UniqueIdentifier>{93331f26-581b-4d15-81a6-0aae31ad3958}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source Files\cii">\r
+    <Filter Include="cii">\r
       <UniqueIdentifier>{abb11aa5-fa66-4e76-8ea6-38f01f6e7dff}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source Files\clk">\r
+    <Filter Include="clk">\r
       <UniqueIdentifier>{9ed5b10f-d494-4460-b868-e36357b3e04d}</UniqueIdentifier>\r
     </Filter>\r
-    <Filter Include="Source Files\util">\r
+    <Filter Include="util">\r
       <UniqueIdentifier>{ac6eb3ad-c1d7-4bae-a03d-b1fd752a0305}</UniqueIdentifier>\r
     </Filter>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="amcp\AMCPCommand.h">\r
-      <Filter>Source Files\amcp</Filter>\r
+      <Filter>amcp</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="amcp\AMCPProtocolStrategy.h">\r
+      <Filter>amcp</Filter>\r
     </ClInclude>\r
     <ClInclude Include="amcp\AMCPCommandQueue.h">\r
-      <Filter>Source Files\amcp</Filter>\r
+      <Filter>amcp</Filter>\r
     </ClInclude>\r
     <ClInclude Include="amcp\AMCPCommandsImpl.h">\r
-      <Filter>Source Files\amcp</Filter>\r
+      <Filter>amcp</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="amcp\AMCPProtocolStrategy.h">\r
-      <Filter>Source Files\amcp</Filter>\r
+    <ClInclude Include="util\AsyncEventServer.h">\r
+      <Filter>util</Filter>\r
     </ClInclude>\r
     <ClInclude Include="cii\CIICommand.h">\r
-      <Filter>Source Files\cii</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="cii\CIICommandsImpl.h">\r
-      <Filter>Source Files\cii</Filter>\r
+      <Filter>cii</Filter>\r
     </ClInclude>\r
     <ClInclude Include="cii\CIIProtocolStrategy.h">\r
-      <Filter>Source Files\cii</Filter>\r
+      <Filter>cii</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="clk\CLKCommand.h">\r
-      <Filter>Source Files\clk</Filter>\r
+    <ClInclude Include="cii\CIICommandsImpl.h">\r
+      <Filter>cii</Filter>\r
     </ClInclude>\r
     <ClInclude Include="clk\CLKProtocolStrategy.h">\r
-      <Filter>Source Files\clk</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="StdAfx.h">\r
-      <Filter>Afx</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="media.h">\r
-      <Filter>Source Files</Filter>\r
+      <Filter>clk</Filter>\r
     </ClInclude>\r
-    <ClInclude Include="util\AsyncEventServer.h">\r
-      <Filter>Source Files\util</Filter>\r
+    <ClInclude Include="clk\CLKCommand.h">\r
+      <Filter>clk</Filter>\r
     </ClInclude>\r
     <ClInclude Include="util\ClientInfo.h">\r
-      <Filter>Source Files\util</Filter>\r
+      <Filter>util</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="util\Thread.h">\r
+      <Filter>util</Filter>\r
     </ClInclude>\r
     <ClInclude Include="util\ProtocolStrategy.h">\r
-      <Filter>Source Files\util</Filter>\r
+      <Filter>util</Filter>\r
     </ClInclude>\r
     <ClInclude Include="util\SocketInfo.h">\r
-      <Filter>Source Files\util</Filter>\r
-    </ClInclude>\r
-    <ClInclude Include="util\Thread.h">\r
-      <Filter>Source Files\util</Filter>\r
+      <Filter>util</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="StdAfx.h" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClCompile Include="amcp\AMCPCommandQueue.cpp">\r
-      <Filter>Source Files\amcp</Filter>\r
+      <Filter>amcp</Filter>\r
     </ClCompile>\r
     <ClCompile Include="amcp\AMCPCommandsImpl.cpp">\r
-      <Filter>Source Files\amcp</Filter>\r
+      <Filter>amcp</Filter>\r
     </ClCompile>\r
     <ClCompile Include="amcp\AMCPProtocolStrategy.cpp">\r
-      <Filter>Source Files\amcp</Filter>\r
+      <Filter>amcp</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="util\AsyncEventServer.cpp">\r
+      <Filter>util</Filter>\r
     </ClCompile>\r
     <ClCompile Include="cii\CIICommandsImpl.cpp">\r
-      <Filter>Source Files\cii</Filter>\r
+      <Filter>cii</Filter>\r
     </ClCompile>\r
     <ClCompile Include="cii\CIIProtocolStrategy.cpp">\r
-      <Filter>Source Files\cii</Filter>\r
+      <Filter>cii</Filter>\r
     </ClCompile>\r
     <ClCompile Include="clk\CLKCommand.cpp">\r
-      <Filter>Source Files\clk</Filter>\r
+      <Filter>clk</Filter>\r
     </ClCompile>\r
     <ClCompile Include="clk\CLKProtocolStrategy.cpp">\r
-      <Filter>Source Files\clk</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="StdAfx.cpp">\r
-      <Filter>Afx</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="media.cpp">\r
-      <Filter>Source Files</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="util\AsyncEventServer.cpp">\r
-      <Filter>Source Files\util</Filter>\r
+      <Filter>clk</Filter>\r
     </ClCompile>\r
     <ClCompile Include="util\SocketInfo.cpp">\r
-      <Filter>Source Files\util</Filter>\r
+      <Filter>util</Filter>\r
     </ClCompile>\r
     <ClCompile Include="util\Thread.cpp">\r
-      <Filter>Source Files\util</Filter>\r
+      <Filter>util</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="StdAfx.cpp" />\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file
index d07d44f33664ccd38b42f0f225ec2d747ccec857..1c5f9a69a4abcebc58766c237e2113e1a85a334f 100644 (file)
 #include "..\util\thread.h"\r
 \r
 #include "ProtocolStrategy.h"\r
-#include "SocketInfo.h"\r
 \r
 #include <tbb\mutex.h>\r
 \r
 namespace caspar {\r
 namespace IO {\r
 \r
+class SocketInfo;\r
+typedef std::shared_ptr<SocketInfo> SocketInfoPtr;\r
+\r
 typedef std::function<void(caspar::IO::SocketInfoPtr)> ClientDisconnectEvent;\r
 \r
 class AsyncEventServer : public IRunnable\r
index 9ae02f45b72a76f275a14661a2cabf2662f5a3e6..dee5f5884a2a373167b35dfba501227e52cc12fa 100644 (file)
@@ -1,24 +1,31 @@
 #include "bootstrapper.h"\r
 \r
-#include <core/channel.h>\r
+#include <common/env.h>\r
+#include <common/exception/exceptions.h>\r
+#include <common/utility/string.h>\r
 \r
-#include <core/consumer/oal/oal_consumer.h>\r
-#include <core/consumer/bluefish/bluefish_consumer.h>\r
-#include <core/consumer/decklink/decklink_consumer.h>\r
-#include <core/consumer/ogl/ogl_consumer.h>\r
-#include <core/consumer/ffmpeg/ffmpeg_consumer.h>\r
+#include <core/channel.h>\r
 \r
-#include <core/producer/flash/FlashAxContainer.h>\r
+#include <modules/bluefish/bluefish.h>\r
+#include <modules/decklink/decklink.h>\r
+#include <modules/ffmpeg/ffmpeg.h>\r
+#include <modules/flash/flash.h>\r
+#include <modules/oal/oal.h>\r
+#include <modules/ogl/ogl.h>\r
+#include <modules/silverlight/silverlight.h>\r
+#include <modules/image/image.h>\r
+\r
+#include <modules/oal/consumer/oal_consumer.h>\r
+#include <modules/bluefish/consumer/bluefish_consumer.h>\r
+#include <modules/decklink/consumer/decklink_consumer.h>\r
+#include <modules/ogl/consumer/ogl_consumer.h>\r
+#include <modules/ffmpeg/consumer/ffmpeg_consumer.h>\r
 \r
 #include <protocol/amcp/AMCPProtocolStrategy.h>\r
 #include <protocol/cii/CIIProtocolStrategy.h>\r
 #include <protocol/CLK/CLKProtocolStrategy.h>\r
 #include <protocol/util/AsyncEventServer.h>\r
 \r
-#include <common/env.h>\r
-#include <common/exception/exceptions.h>\r
-#include <common/utility/string.h>\r
-\r
 #include <boost/algorithm/string.hpp>\r
 #include <boost/lexical_cast.hpp>\r
 #include <boost/filesystem.hpp>\r
@@ -38,11 +45,17 @@ struct bootstrapper::implementation : boost::noncopyable
 \r
        implementation()                                                                                                \r
        {                       \r
+               init_ffmpeg();\r
+               init_bluefish();\r
+               init_decklink();\r
+               init_flash();\r
+               init_oal();\r
+               init_ogl();\r
+               init_silverlight();\r
+               init_image();\r
+\r
                setup_channels(env::properties());\r
                setup_controllers(env::properties());\r
-       \r
-               if(!flash::FlashAxContainer::CheckForFlashSupport())\r
-                       CASPAR_LOG(error) << "No flashplayer activex-control installed. Flash support will be disabled";\r
        }\r
 \r
        ~implementation()\r
index f7497fa882c7cd310554b3cd1eb873bd665edae3..713695882c0243bd0561ffc26c9ae9283b6200b6 100644 (file)
@@ -18,7 +18,8 @@
 *\r
 */\r
 \r
-#include <Windows.h>\r
+#include <windows.h>\r
+#include <conio.h>\r
 \r
 #include <tbb/tbbmalloc_proxy.h>\r
 #include <tbb/task_scheduler_observer.h>\r
        #include <crtdbg.h>\r
 #endif\r
 \r
-#include <conio.h>\r
-\r
 #include "bootstrapper.h"\r
 \r
-#include <core/producer/flash/flash_producer.h>\r
-#include <core/producer/flash/cg_producer.h>\r
-#include <core/producer/image/image_producer.h>\r
-#include <core/consumer/decklink/decklink_consumer.h>\r
-#include <core/consumer/bluefish/bluefish_consumer.h>\r
+#include <modules/bluefish/bluefish.h>\r
 \r
+#include <modules/decklink/decklink.h>\r
+#include <modules/flash/flash.h>\r
+#include <modules/ffmpeg/ffmpeg.h>\r
+#include <modules/image/image.h>\r
+\r
+#include <common/env.h>\r
 #include <common/exception/win32_exception.h>\r
 #include <common/exception/exceptions.h>\r
 #include <common/log/log.h>\r
-#include <common/env.h>\r
 #include <common/utility/assert.h>\r
 \r
 #include <mixer/gpu/ogl_device.h>\r
 \r
 #include <protocol/amcp/AMCPProtocolStrategy.h>\r
 \r
-#include <GLee.h>\r
-\r
 #include <boost/foreach.hpp>\r
 \r
-#if defined(_MSC_VER)\r
-#pragma warning (disable : 4244)\r
-#endif\r
-\r
-extern "C" \r
-{\r
-       #define __STDC_CONSTANT_MACROS\r
-       #define __STDC_LIMIT_MACROS\r
-       #include <libavformat/avformat.h>\r
-       #include <libswscale/swscale.h>\r
-       #include <libavcodec/avcodec.h>\r
-}\r
-\r
-#include <atlbase.h>\r
+#include <Glee.h>\r
 \r
 using namespace caspar;\r
 using namespace caspar::core;\r
 using namespace caspar::protocol;\r
 \r
+#include <atlbase.h>\r
+\r
 // NOTE: This is needed in order to make CComObject work since this is not a real ATL project.\r
 CComModule _AtlModule;\r
 extern __declspec(selectany) CAtlModule* _pAtlModule = &_AtlModule;\r
@@ -117,9 +104,9 @@ void print_version()
 {      \r
        CASPAR_LOG(info) << L"Copyright (c) 2010 Sveriges Television AB, www.casparcg.com, <info@casparcg.com>";\r
        CASPAR_LOG(info) << L"Starting CasparCG Video and Graphics Playout Server " << env::version();\r
-       CASPAR_LOG(info) << L"Flash " << flash::get_flash_version();\r
-       CASPAR_LOG(info) << L"Flash-Template-Host " << flash::get_cg_version();\r
-       CASPAR_LOG(info) << L"FreeImage " << image::get_image_version();\r
+       CASPAR_LOG(info) << L"Flash " << get_flash_version();\r
+       CASPAR_LOG(info) << L"Flash-Template-Host " << get_cg_version();\r
+       CASPAR_LOG(info) << L"FreeImage " << get_image_version();\r
        \r
        std::wstring decklink_devices;\r
        BOOST_FOREACH(auto& device, get_decklink_device_list())\r
@@ -131,9 +118,9 @@ void print_version()
                bluefish_devices += L"\t" + device;\r
        CASPAR_LOG(info) << L"Bluefish " << get_bluefish_version() << (bluefish_devices.empty() ? L"" : L"\n\tDevices:\n" + bluefish_devices);\r
 \r
-       CASPAR_LOG(info) << L"FFMPEG-avcodec " << ((avcodec_version() >> 16) & 0xFF) << L"." << ((avcodec_version() >> 8) & 0xFF) << L"." << ((avcodec_version() >> 0) & 0xFF);\r
-       CASPAR_LOG(info) << L"FFMPEG-swscale " << ((avformat_version() >> 16) & 0xFF) << L"." << ((avformat_version() >> 8) & 0xFF) << L"." << ((avformat_version() >> 0) & 0xFF);\r
-       CASPAR_LOG(info) << L"FFMPEG-avformat " << ((swscale_version() >> 16) & 0xFF) << L"." << ((swscale_version() >> 8) & 0xFF) << L"." << ((swscale_version() >> 0) & 0xFF);\r
+       CASPAR_LOG(info) << L"FFMPEG-avcodec "  << get_avcodec_version();\r
+       CASPAR_LOG(info) << L"FFMPEG-swscale "  << get_avformat_version();\r
+       CASPAR_LOG(info) << L"FFMPEG-avformat " << get_swscale_version();\r
        CASPAR_LOG(info) << L"OpenGL " << ogl_device::create()->invoke([]{return reinterpret_cast<const char*>(glGetString(GL_VERSION));})\r
                                         << L" "           << ogl_device::create()->invoke([]{return reinterpret_cast<const char*>(glGetString(GL_VENDOR));});\r
 \r
@@ -143,50 +130,44 @@ void print_version()
        {\r
                wchar_t p_name_str[1024];\r
                wchar_t csd_ver_str[1024];\r
-               wchar_t csd_build_str[1024];\r
 \r
                dwType = REG_SZ;\r
                dwSize = sizeof(p_name_str);\r
 \r
-               RegQueryValueEx(hkey, TEXT("ProductName"), NULL, &dwType, (PBYTE)&p_name_str, &dwSize);\r
-               RegQueryValueEx(hkey, TEXT("CSDVersion"), NULL, &dwType, (PBYTE)&csd_ver_str, &dwSize);\r
-               RegQueryValueEx(hkey, TEXT("CSDBuildNumber"), NULL, &dwType, (PBYTE)&csd_build_str, &dwSize);\r
\r
+               if(RegQueryValueEx(hkey, TEXT("ProductName"), NULL, &dwType, (PBYTE)&p_name_str, &dwSize) == ERROR_SUCCESS &&\r
+                  RegQueryValueEx(hkey, TEXT("CSDVersion"), NULL, &dwType, (PBYTE)&csd_ver_str, &dwSize) == ERROR_SUCCESS)             \r
+               {\r
+                       CASPAR_LOG(info) << p_name_str << L" " << csd_ver_str << L"." << L"\n";\r
+               }\r
+               else\r
+                       CASPAR_LOG(warning) << "Could not read OS info." << L"\n";\r
+                \r
                RegCloseKey(hkey);\r
-\r
-               CASPAR_LOG(info) << p_name_str << L" " << csd_ver_str << L"." << csd_build_str << L"\n";\r
        }\r
 }\r
  \r
 int main(int argc, wchar_t* argv[])\r
 {      \r
-       try \r
-       {\r
-               win32_handler_tbb_installer win32_handler_tbb_installer;\r
-               win32_exception::install_handler();\r
-\r
-               env::initialize("caspar.config");\r
-\r
-               // Init FFMPEG\r
-               av_register_all();\r
-               avcodec_init();\r
-\r
-               // Increase time precision\r
-               timeBeginPeriod(1);\r
-\r
-               // Start caspar\r
-\r
-               setup_console_window();\r
-\r
        #ifdef _DEBUG\r
                _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_ALWAYS_DF );\r
                _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_DEBUG );\r
                _CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_DEBUG );\r
                _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_DEBUG );\r
 \r
-               MessageBox(nullptr, TEXT("Now is the time to connect for remote debugging..."), TEXT("Debug"), MB_OK | MB_TOPMOST);\r
+               if(env::properties().get("configuration.debugging.remote", false))\r
+                       MessageBox(nullptr, TEXT("Now is the time to connect for remote debugging..."), TEXT("Debug"), MB_OK | MB_TOPMOST);\r
        #endif\r
-                                        \r
+               \r
+       // Increase time precision\r
+       timeBeginPeriod(1);\r
+       win32_handler_tbb_installer win32_handler_tbb_installer;\r
+       win32_exception::install_handler();\r
+\r
+       try \r
+       {\r
+               env::initialize("caspar.config");\r
+               \r
+               setup_console_window();                                                  \r
                log::add_file_sink(env::log_folder());\r
 \r
                print_version();\r
index 6f0fac729ca1f31917c78b89b885bfd39c451b6f..374e4095f6f571a2b8a7d4926bdf6e88475854b8 100644 (file)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup Label="ProjectConfigurations">\r
-    <ProjectConfiguration Include="Amplify|Win32">\r
-      <Configuration>Amplify</Configuration>\r
+    <ProjectConfiguration Include="Profile|Win32">\r
+      <Configuration>Profile</Configuration>\r
       <Platform>Win32</Platform>\r
     </ProjectConfiguration>\r
     <ProjectConfiguration Include="Debug|Win32">\r
@@ -22,7 +22,7 @@
     <ClCompile Include="boostrapper.cpp" />\r
     <ClCompile Include="main.cpp">\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>\r
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">NotUsing</PrecompiledHeader>\r
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">NotUsing</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">NotUsing</PrecompiledHeader>\r
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>\r
     </ClCompile>\r
     <ProjectReference Include="..\mixer\mixer.vcxproj">\r
       <Project>{477e12a4-1b28-4ff7-b46d-76606bdd1891}</Project>\r
     </ProjectReference>\r
+    <ProjectReference Include="..\modules\bluefish\bluefish.vcxproj">\r
+      <Project>{69313d25-9f54-4fc9-9872-628a4dd79464}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\modules\decklink\decklink.vcxproj">\r
+      <Project>{d3611658-8f54-43cf-b9af-a5cf8c1102ea}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\modules\ffmpeg\ffmpeg.vcxproj">\r
+      <Project>{f6223af3-be0b-4b61-8406-98922ce521c2}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\modules\flash\flash.vcxproj">\r
+      <Project>{816deaba-3757-4306-afe0-c27cf96c4dea}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\modules\image\image.vcxproj">\r
+      <Project>{3e11ff65-a9da-4f80-87f2-a7c6379ed5e2}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\modules\oal\oal.vcxproj">\r
+      <Project>{82ed7ed6-8a15-40ec-a8af-f5e712e0da68}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\modules\ogl\ogl.vcxproj">\r
+      <Project>{88f974f0-d09f-4788-8cf8-f563209e60c1}</Project>\r
+    </ProjectReference>\r
+    <ProjectReference Include="..\modules\silverlight\silverlight.vcxproj">\r
+      <Project>{b964d953-8882-454c-a935-db711d697e39}</Project>\r
+    </ProjectReference>\r
     <ProjectReference Include="..\protocol\protocol.vcxproj">\r
       <Project>{2040b361-1fb6-488e-84a5-38a580da90de}</Project>\r
     </ProjectReference>\r
     <None Include="caspar.config">\r
       <SubType>Designer</SubType>\r
     </None>\r
-    <None Include="My Amplifier Results\r003hs\r003hs.ampl" />\r
-    <None Include="My Amplifier Results\r004hs\r004hs.ampl" />\r
-    <None Include="My Amplifier Results\r006hs\r006hs.ampl" />\r
-    <None Include="My Amplifier Results\r007cc\r007cc.ampl" />\r
-    <None Include="My Amplifier Results\r008lw\r008lw.ampl" />\r
-    <None Include="My Amplifier Results\r009hs\r009hs.ampl" />\r
-    <None Include="My Inspector Results\r000ti3\r000ti3.insp" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="bootstrapper.h" />\r
@@ -73,7 +90,7 @@
     <WholeProgramOptimization>true</WholeProgramOptimization>\r
     <CharacterSet>Unicode</CharacterSet>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'" Label="Configuration">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="Configuration">\r
     <ConfigurationType>Application</ConfigurationType>\r
     <UseDebugLibraries>false</UseDebugLibraries>\r
     <WholeProgramOptimization>true</WholeProgramOptimization>\r
   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'" Label="PropertySheets">\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'" Label="PropertySheets">\r
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
   </ImportGroup>\r
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'" Label="PropertySheets">\r
     <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>\r
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">$(Configuration)\</IntDir>\r
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(Configuration)\</IntDir>\r
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(Configuration)\</IntDir>\r
     <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
-    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
+    <IncludePath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <IncludePath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">..\dependencies\BluefishSDK_V5_8_0_31\Inc\;..\dependencies\boost_1_44_0\;..\dependencies\ffmpeg 0.6\include\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\include\;..\dependencies\tbb30_20100406oss\include\;$(IncludePath)</IncludePath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
-    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
+    <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
     <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">C:\Program\Microsoft DirectX SDK (June 2010)\Lib\x86;..\dependencies\BluefishSDK_V5_8_0_31\Lib\;..\dependencies\boost_1_44_0\stage\lib\;..\dependencies\ffmpeg 0.6\lib\;..\dependencies\FreeImage\Dist\;..\dependencies\GLee5_4\;..\dependencies\SFML-1.6\lib\;..\dependencies\tbb30_20100406oss\lib\ia32\vc10\;$(LibraryPath)</LibraryPath>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\$(Configuration)\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\$(Configuration)\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">$(SolutionDir)\$(Configuration)\</OutDir>\r
-    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(SolutionDir)\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)\bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)\bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(SolutionDir)\bin\$(Configuration)\</OutDir>\r
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(SolutionDir)\bin\$(Configuration)\</OutDir>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionName)</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionName)</TargetName>\r
-    <TargetName Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">$(SolutionName)</TargetName>\r
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">$(SolutionName)</TargetName>\r
     <TargetName Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">$(SolutionName)</TargetName>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
     <LinkIncremental>false</LinkIncremental>\r
   </PropertyGroup>\r
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
     <LinkIncremental>true</LinkIncremental>\r
   </PropertyGroup>\r
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Develop|Win32'">\r
       <ForcedIncludeFiles>common/compiler/vs/disable_silly_warnings.h</ForcedIncludeFiles>\r
     </ClCompile>\r
     <Link>\r
-      <AdditionalDependencies>sfml-system-d.lib;sfml-audio-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;sfml-system-d.lib;OpenGL32.lib;FreeImage.lib;GLee.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;swscale-0.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Bluevelvet3_d.lib;BlueHancUtils_d.lib;sfml-system-d.lib;sfml-audio-d.lib;sfml-window-d.lib;sfml-graphics-d.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib</AdditionalDependencies>\r
       <Version>\r
       </Version>\r
       <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
-      <IgnoreSpecificDefaultLibraries>LIBC.LIB;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>\r
+      <IgnoreSpecificDefaultLibraries>LIBC.lib</IgnoreSpecificDefaultLibraries>\r
       <GenerateDebugInformation>true</GenerateDebugInformation>\r
       <ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>\r
       <GenerateMapFile>false</GenerateMapFile>\r
       </Command>\r
     </PreLinkEvent>\r
     <Link>\r
-      <AdditionalDependencies>sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;sfml-system.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Bluevelvet3.lib;BlueHancUtils.lib;sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib</AdditionalDependencies>\r
       <Version>\r
       </Version>\r
       <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       <DataExecutionPrevention>\r
       </DataExecutionPrevention>\r
       <TargetMachine>MachineX86</TargetMachine>\r
-      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>\r
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>\r
     </Link>\r
     <PostBuildEvent>\r
       <Command>copy $(SolutionDir)\dlls\*.dll $(OutDir)\</Command>\r
     </PostBuildEvent>\r
   </ItemDefinitionGroup>\r
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Amplify|Win32'">\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">\r
     <PreBuildEvent>\r
       <Command>\r
       </Command>\r
       </Command>\r
     </PreLinkEvent>\r
     <Link>\r
-      <AdditionalDependencies>sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;sfml-system.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Bluevelvet3.lib;BlueHancUtils.lib;sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib</AdditionalDependencies>\r
       <Version>\r
       </Version>\r
       <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
       </Command>\r
     </PreLinkEvent>\r
     <Link>\r
-      <AdditionalDependencies>sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <AdditionalDependencies>Bluevelvet3.lib;BlueHancUtils.lib;sfml-system.lib;sfml-audio.lib;sfml-window.lib;sfml-graphics.lib;OpenGL32.lib;FreeImage.lib;Winmm.lib;Ws2_32.lib;avformat-52.lib;avcodec-52.lib;avutil-50.lib;SWSCALE-0.lib;tbb.lib;Glee.lib</AdditionalDependencies>\r
       <Version>\r
       </Version>\r
       <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
index fb4cb6bd21f02867cbd1d624d69a35c5d020531f..6a05762fa8c85ff2a864426f40d2c1c7c84f8cd4 100644 (file)
@@ -1,51 +1,13 @@
 <?xml version="1.0" encoding="utf-8"?>\r
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <ItemGroup>\r
-    <ClCompile Include="main.cpp">\r
-      <Filter>Source</Filter>\r
-    </ClCompile>\r
-    <ClCompile Include="boostrapper.cpp">\r
-      <Filter>Source</Filter>\r
-    </ClCompile>\r
+    <ClCompile Include="main.cpp" />\r
+    <ClCompile Include="boostrapper.cpp" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <None Include="caspar.config" />\r
-    <None Include="My Amplifier Results\r006hs\r006hs.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r007cc\r007cc.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r008lw\r008lw.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Inspector Results\r000ti3\r000ti3.insp">\r
-      <Filter>My Inspector Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r009hs\r009hs.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r003hs\r003hs.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
-    <None Include="My Amplifier Results\r004hs\r004hs.ampl">\r
-      <Filter>My Amplifier Results</Filter>\r
-    </None>\r
   </ItemGroup>\r
   <ItemGroup>\r
-    <Filter Include="My Amplifier Results">\r
-      <UniqueIdentifier>{4df636fc-0183-410c-8d76-2d0e06c29ca3}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="My Inspector Results">\r
-      <UniqueIdentifier>{54aa3e52-b5b4-4451-84e3-3b5d5ddcee0e}</UniqueIdentifier>\r
-    </Filter>\r
-    <Filter Include="Source">\r
-      <UniqueIdentifier>{069a6bcd-e304-44a5-9f32-eac8e2f304af}</UniqueIdentifier>\r
-    </Filter>\r
-  </ItemGroup>\r
-  <ItemGroup>\r
-    <ClInclude Include="bootstrapper.h">\r
-      <Filter>Source</Filter>\r
-    </ClInclude>\r
+    <ClInclude Include="bootstrapper.h" />\r
   </ItemGroup>\r
 </Project>
\ No newline at end of file
index 1a191a74010975731d1889fc277cde245ad67a64..be6d4e933071ab5869b13849f2903d9544d4af6d 100644 (file)
@@ -1,4 +1,4 @@
 #define CASPAR_GEN L"2"\r
 #define CASPAR_MAYOR L"0"\r
-#define CASPAR_MINOR L"0"\r
+#define CASPAR_MINOR L"2"\r
 #define CASPAR_REV L"$WCREV$"
\ No newline at end of file