#include <common/exception/exceptions.h>\r
\r
#include <tbb/concurrent_queue.h>\r
-#include <boost/thread.hpp>\r
\r
#pragma warning(push)\r
#pragma warning(disable : 4996)\r
\r
namespace caspar { namespace core { namespace decklink {\r
\r
- unsigned long GetDecklinkVideoFormat(video_format::type fmt) \r
+static unsigned long GetDecklinkVideoFormat(video_format::type fmt) \r
+{\r
+ switch(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 ULONG_MAX;\r
- case video_format::x720p2500: return 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 ULONG_MAX;\r
- }\r
+ case video_format::pal: return bmdModePAL;\r
+ //case video_format::ntsc: return bmdModeNTSC;\r
+ //case video_format::x576p2500: return ULONG_MAX;\r
+ case video_format::x720p2500: return 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 ULONG_MAX;\r
}\r
+}\r
\r
}}}
\ No newline at end of file
<ClInclude Include="processor\draw_frame.h" />\r
<ClInclude Include="processor\write_frame.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
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../StdAfx.h</PrecompiledHeaderFile>\r
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|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
+ </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
<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
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="consumer\decklink\DeckLinkAPI_h.h">\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
</ItemGroup>\r
<ItemGroup>\r
<ClCompile Include="consumer\decklink\DeckLinkAPI_i.c">\r
<ClCompile Include="producer\layer.cpp">\r
<Filter>Source</Filter>\r
</ClCompile>\r
+ <ClCompile Include="producer\decklink\decklink_producer.cpp">\r
+ <Filter>Source\producer\decklink</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
<ItemGroup>\r
<Midl Include="consumer\decklink\DeckLinkAPI_v7_3.idl">\r
std::wstring color_str_;\r
\r
public:\r
- explicit color_producer(color_producer&& other) \r
- : frame_(std::move(other.frame_))\r
- , color_str_(std::move(other.color_str_)){}\r
\r
explicit color_producer(const std::wstring& color) : color_str_(color), frame_(draw_frame::empty())\r
{\r
#include "../../video_format.h"\r
#include "../../processor/draw_frame.h"\r
\r
+#include <common/env.h>\r
+\r
#include <tbb/parallel_invoke.h>\r
\r
#include <boost/optional.hpp>\r
safe_ptr<frame_producer> create_ffmpeg_producer(const std::vector<std::wstring>& params)\r
{ \r
static const std::vector<std::wstring> extensions = list_of(L"mpg")(L"avi")(L"mov")(L"dv")(L"wav")(L"mp3")(L"mp4")(L"f4v")(L"flv");\r
- std::wstring filename = params[0];\r
+ std::wstring filename = env::media_folder() + L"\\" + params[0];\r
\r
auto ext = std::find_if(extensions.begin(), extensions.end(), [&](const std::wstring& ex) -> bool\r
{ \r
#include "../../processor/draw_frame.h"\r
#include "../../video_format.h"\r
\r
+#include <common/env.h>\r
+\r
#include <boost/assign.hpp>\r
\r
#include <algorithm>\r
safe_ptr<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 = params[0];\r
+ std::wstring filename = env::media_folder() + L"\\" + params[0];\r
\r
auto ext = std::find_if(extensions.begin(), extensions.end(), [&](const std::wstring& ex) -> bool\r
{ \r
//Perform loading of the clip\r
try\r
{\r
- _parameters[0] = env::media_folder() + L"\\" + _parameters[0];\r
+ _parameters[0] = _parameters[0];\r
auto pFP = load_media(_parameters); \r
GetChannel()->preview(GetLayerIndex(), pFP);\r
\r
//Perform loading of the clip\r
try\r
{\r
- _parameters[0] = env::media_folder() + L"\\" + _parameters[0];\r
+ _parameters[0] = _parameters[0];\r
auto pFP = load_media(_parameters);\r
if(pFP == frame_producer::empty())\r
BOOST_THROW_EXCEPTION(file_not_found() << msg_info(_parameters.size() > 0 ? narrow(_parameters[0]) : ""));\r
{\r
std::wstringstream replyString;\r
\r
- std::wstring filename = env::media_folder()+_parameters[0];\r
+ std::wstring filename = _parameters[0];\r
\r
// TODO:\r
\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 "../producer/image/image_scroll_producer.h"\r
\r
#include <common/exception/exceptions.h>\r
(&core::image::create_image_producer)\r
// (&image::create_image_scroll_producer)\r
(&core::ffmpeg::create_ffmpeg_producer)\r
+ (&core::create_decklink_producer)\r
(&core::create_color_producer);\r
\r
if(params.empty())\r
<ClCompile Include="media.cpp" />\r
<ClCompile Include="StdAfx.cpp">\r
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|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
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
</ImportGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
- <IncludePath>../common;../core;$(IncludePath)</IncludePath>\r
+ <IncludePath>../;../../../dependencies/tbb30_20100406oss/include;..\..\..\\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r
</PropertyGroup>\r
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
<IncludePath>../;../../../dependencies/tbb30_20100406oss/include;..\..\..\\dependencies\boost_1_44_0;$(IncludePath)</IncludePath>\r