From 01eec3efb6e581ccf42c66d09b60333ca7604f3e Mon Sep 17 00:00:00 2001 From: ronag Date: Fri, 25 Nov 2011 15:58:56 +0000 Subject: [PATCH] 2.0.2: playlist_producer: Added as a simple example/template how to make a playlist producer. I leave it open to anyone else to develop it. git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.2@1655 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d --- core/core.vcxproj | 7 +++++++ core/core.vcxproj.filters | 9 +++++++++ core/producer/frame_producer.cpp | 14 ++++++++++++++ core/producer/frame_producer.h | 1 + protocol/cii/CIIProtocolStrategy.cpp | 2 +- shell/casparcg.config | 6 +++--- 6 files changed, 35 insertions(+), 4 deletions(-) diff --git a/core/core.vcxproj b/core/core.vcxproj index c79e4a08e..9c971c921 100644 --- a/core/core.vcxproj +++ b/core/core.vcxproj @@ -253,6 +253,7 @@ + @@ -309,6 +310,12 @@ ../../StdAfx.h ../../StdAfx.h + + ../../stdafx.h + ../../stdafx.h + ../../stdafx.h + ../../stdafx.h + ../StdAfx.h diff --git a/core/core.vcxproj.filters b/core/core.vcxproj.filters index b9995b672..9e786645c 100644 --- a/core/core.vcxproj.filters +++ b/core/core.vcxproj.filters @@ -34,6 +34,9 @@ {35d7835f-f813-4b4b-8d8d-8a35dfef68d3} + + {80ce21ca-5ecd-48c1-97d2-c20ea8e2f2b6} + @@ -127,6 +130,9 @@ source\mixer\audio + + source\producer\playlist + @@ -205,5 +211,8 @@ source\producer\frame + + source\producer\playlist + \ No newline at end of file diff --git a/core/producer/frame_producer.cpp b/core/producer/frame_producer.cpp index 454c8ee22..7b0c23276 100644 --- a/core/producer/frame_producer.cpp +++ b/core/producer/frame_producer.cpp @@ -25,6 +25,7 @@ #include "frame/frame_transform.h" #include "color/color_producer.h" +#include "playlist/playlist_producer.h" #include "separated/separated_producer.h" #include @@ -185,6 +186,9 @@ safe_ptr do_create_producer(const safe_ptr& if(producer == frame_producer::empty()) producer = create_color_producer(my_frame_factory, params); + if(producer == frame_producer::empty()) + producer = create_playlist_producer(my_frame_factory, params); + return producer; } @@ -224,4 +228,14 @@ safe_ptr create_producer(const safe_ptr& my return producer; } + +safe_ptr create_producer(const safe_ptr& factory, const std::wstring& params) +{ + std::wstringstream iss(params); + std::vector tokens; + typedef std::istream_iterator > iterator; + std::copy(iterator(iss), iterator(), std::back_inserter(tokens)); + return create_producer(factory, tokens); +} + }} \ No newline at end of file diff --git a/core/producer/frame_producer.h b/core/producer/frame_producer.h index 21c2ab26e..c271501d6 100644 --- a/core/producer/frame_producer.h +++ b/core/producer/frame_producer.h @@ -70,6 +70,7 @@ safe_ptr receive_and_follow(safe_ptr& producer, int typedef std::function(const safe_ptr&, const std::vector&)> producer_factory_t; void register_producer_factory(const producer_factory_t& factory); // Not thread-safe. safe_ptr create_producer(const safe_ptr&, const std::vector& params); +safe_ptr create_producer(const safe_ptr&, const std::wstring& params); safe_ptr create_destroy_proxy(safe_ptr&& producer); template diff --git a/protocol/cii/CIIProtocolStrategy.cpp b/protocol/cii/CIIProtocolStrategy.cpp index f07685553..1a381ca82 100644 --- a/protocol/cii/CIIProtocolStrategy.cpp +++ b/protocol/cii/CIIProtocolStrategy.cpp @@ -213,7 +213,7 @@ void CIIProtocolStrategy::DisplayMediaFile(const std::wstring& filename) transition.type = transition::mix; transition.duration = 12; - auto pFP = create_producer(GetChannel()->mixer(), boost::assign::list_of(filename)); + auto pFP = create_producer(GetChannel()->mixer(), filename); auto pTransition = create_transition_producer(GetChannel()->get_video_format_desc().field_mode, pFP, transition); try diff --git a/shell/casparcg.config b/shell/casparcg.config index a06fb8ab2..0884567ab 100644 --- a/shell/casparcg.config +++ b/shell/casparcg.config @@ -1,10 +1,10 @@ - L:\casparcg\_media\ + C:\casparmedia\_media\ L:\casparcg\_log\ L:\casparcg\_data\ - L:\casparcg\_templates\ + C:\casparmedia\_templates\ true true @@ -13,7 +13,7 @@ PAL - + -- 2.39.2