<ClInclude Include="mixer\image\blending_glsl.h" />\r
<ClInclude Include="mixer\image\blend_modes.h" />\r
<ClInclude Include="mixer\image\image_shader.h" />\r
+ <ClInclude Include="producer\playlist\playlist_producer.h" />\r
<ClInclude Include="video_channel.h" />\r
<ClInclude Include="consumer\output.h" />\r
<ClInclude Include="consumer\frame_consumer.h" />\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\playlist\playlist_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="video_channel.cpp" />\r
<ClCompile Include="consumer\frame_consumer.cpp">\r
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Profile|Win32'">../StdAfx.h</PrecompiledHeaderFile>\r
<Filter Include="source\consumer">\r
<UniqueIdentifier>{35d7835f-f813-4b4b-8d8d-8a35dfef68d3}</UniqueIdentifier>\r
</Filter>\r
+ <Filter Include="source\producer\playlist">\r
+ <UniqueIdentifier>{80ce21ca-5ecd-48c1-97d2-c20ea8e2f2b6}</UniqueIdentifier>\r
+ </Filter>\r
</ItemGroup>\r
<ItemGroup>\r
<ClInclude Include="producer\transition\transition_producer.h">\r
<ClInclude Include="mixer\audio\audio_util.h">\r
<Filter>source\mixer\audio</Filter>\r
</ClInclude>\r
+ <ClInclude Include="producer\playlist\playlist_producer.h">\r
+ <Filter>source\producer\playlist</Filter>\r
+ </ClInclude>\r
</ItemGroup>\r
<ItemGroup>\r
<ClCompile Include="producer\transition\transition_producer.cpp">\r
<ClCompile Include="producer\frame\frame_transform.cpp">\r
<Filter>source\producer\frame</Filter>\r
</ClCompile>\r
+ <ClCompile Include="producer\playlist\playlist_producer.cpp">\r
+ <Filter>source\producer\playlist</Filter>\r
+ </ClCompile>\r
</ItemGroup>\r
</Project>
\ No newline at end of file
#include "frame/frame_transform.h"\r
\r
#include "color/color_producer.h"\r
+#include "playlist/playlist_producer.h"\r
#include "separated/separated_producer.h"\r
\r
#include <common/memory/safe_ptr.h>\r
if(producer == frame_producer::empty())\r
producer = create_color_producer(my_frame_factory, params);\r
\r
+ if(producer == frame_producer::empty())\r
+ producer = create_playlist_producer(my_frame_factory, params);\r
+\r
return producer;\r
}\r
\r
return producer;\r
}\r
\r
+\r
+safe_ptr<core::frame_producer> create_producer(const safe_ptr<frame_factory>& factory, const std::wstring& params)\r
+{\r
+ std::wstringstream iss(params);\r
+ std::vector<std::wstring> tokens;\r
+ typedef std::istream_iterator<std::wstring, wchar_t, std::char_traits<wchar_t> > iterator;\r
+ std::copy(iterator(iss), iterator(), std::back_inserter(tokens));\r
+ return create_producer(factory, tokens);\r
+}\r
+\r
}}
\ No newline at end of file
typedef std::function<safe_ptr<core::frame_producer>(const safe_ptr<frame_factory>&, const std::vector<std::wstring>&)> producer_factory_t;\r
void register_producer_factory(const producer_factory_t& factory); // Not thread-safe.\r
safe_ptr<core::frame_producer> create_producer(const safe_ptr<frame_factory>&, const std::vector<std::wstring>& params);\r
+safe_ptr<core::frame_producer> create_producer(const safe_ptr<frame_factory>&, const std::wstring& params);\r
safe_ptr<core::frame_producer> create_destroy_proxy(safe_ptr<core::frame_producer>&& producer);\r
\r
template<typename T>\r
transition.type = transition::mix;\r
transition.duration = 12;\r
\r
- auto pFP = create_producer(GetChannel()->mixer(), boost::assign::list_of(filename));\r
+ auto pFP = create_producer(GetChannel()->mixer(), filename);\r
auto pTransition = create_transition_producer(GetChannel()->get_video_format_desc().field_mode, pFP, transition);\r
\r
try\r
<?xml version="1.0" encoding="utf-8"?>\r
<configuration>\r
<paths>\r
- <media-path>L:\casparcg\_media\</media-path>\r
+ <media-path>C:\casparmedia\_media\</media-path>\r
<log-path>L:\casparcg\_log\</log-path>\r
<data-path>L:\casparcg\_data\</data-path>\r
- <template-path>L:\casparcg\_templates\</template-path>\r
+ <template-path>C:\casparmedia\_templates\</template-path>\r
</paths>\r
<blend-modes>true</blend-modes>\r
<auto-transcode>true</auto-transcode>\r
<channel>\r
<video-mode>PAL</video-mode>\r
<consumers>\r
- <decklink></decklink>\r
+ <screen></screen>\r
</consumers>\r
</channel>\r
</channels>\r