From 68ffc456932845e2c9e293d313add41e3034195c Mon Sep 17 00:00:00 2001 From: hellgore Date: Tue, 4 Sep 2012 14:53:57 +0000 Subject: [PATCH] Merged sfw playing through template host instead of via ffmpeg git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.1.0@3231 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d --- modules/ffmpeg/producer/util/util.cpp | 2 +- modules/flash/flash.cpp | 1 + modules/flash/producer/cg_proxy.cpp | 23 +++++++++++++++++++---- modules/flash/producer/cg_proxy.h | 3 ++- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/modules/ffmpeg/producer/util/util.cpp b/modules/ffmpeg/producer/util/util.cpp index 301699fa3..0d526cbd1 100644 --- a/modules/ffmpeg/producer/util/util.cpp +++ b/modules/ffmpeg/producer/util/util.cpp @@ -493,7 +493,7 @@ std::wstring print_mode(int width, int height, double fps, bool interlaced) bool is_valid_file(const std::wstring filename) { - static const std::vector invalid_exts = boost::assign::list_of(L".png")(L".tga")(L".bmp")(L".jpg")(L".jpeg")(L".gif")(L".tiff")(L".tif")(L".jp2")(L".jpx")(L".j2k")(L".j2c"); + static const std::vector invalid_exts = boost::assign::list_of(L".png")(L".tga")(L".bmp")(L".jpg")(L".jpeg")(L".gif")(L".tiff")(L".tif")(L".jp2")(L".jpx")(L".j2k")(L".j2c")(L".swf")(L".ct"); static std::vector valid_exts = boost::assign::list_of(L".m2t")(L".mov")(L".mp4")(L".dv")(L".flv")(L".mpg")(L".wav")(L".mp3")(L".dnxhd")(L".h264")(L".prores"); auto ext = boost::to_lower_copy(boost::filesystem::path(filename).extension().wstring()); diff --git a/modules/flash/flash.cpp b/modules/flash/flash.cpp index ba0730812..5517d8609 100644 --- a/modules/flash/flash.cpp +++ b/modules/flash/flash.cpp @@ -33,6 +33,7 @@ namespace caspar { namespace flash { void init() { core::register_producer_factory(create_ct_producer); + core::register_producer_factory(create_swf_producer); } std::wstring cg_version() diff --git a/modules/flash/producer/cg_proxy.cpp b/modules/flash/producer/cg_proxy.cpp index 1e6086866..6867145aa 100644 --- a/modules/flash/producer/cg_proxy.cpp +++ b/modules/flash/producer/cg_proxy.cpp @@ -160,23 +160,38 @@ cg_proxy create_cg_proxy(const spl::shared_ptr& video_chann return cg_proxy(std::move(flash_producer)); } -spl::shared_ptr create_ct_producer(const spl::shared_ptr frame_factory, const core::video_format_desc& format_desc, const std::vector& params) +spl::shared_ptr create_cg_producer_and_autoplay_file( + const spl::shared_ptr frame_factory, + const core::video_format_desc& format_desc, + const std::vector& params, + const std::wstring& filename) { - std::wstring filename = env::media_folder() + L"\\" + params[0] + L".ct"; if(!boost::filesystem::exists(filename)) return core::frame_producer::empty(); boost::filesystem::path path(filename); path = boost::filesystem3::complete(path); - filename = path.wstring(); + auto filename2 = path.wstring(); auto flash_producer = flash::create_producer(frame_factory, format_desc, boost::assign::list_of()); auto producer = flash_producer; - cg_proxy(producer).add(0, filename, 1); + cg_proxy(producer).add(0, filename2, 1); return producer; } +spl::shared_ptr create_ct_producer(const spl::shared_ptr frame_factory, const core::video_format_desc& format_desc, const std::vector& params) +{ + return create_cg_producer_and_autoplay_file( + frame_factory, format_desc, params, env::media_folder() + L"\\" + params[0] + L".ct"); +} + +spl::shared_ptr create_swf_producer(const spl::shared_ptr frame_factory, const core::video_format_desc& format_desc, const std::vector& params) +{ + return create_cg_producer_and_autoplay_file( + frame_factory, format_desc, params, env::media_folder() + L"\\" + params[0] + L".swf"); +} + cg_proxy::cg_proxy(const spl::shared_ptr& frame_producer) : impl_(new impl(frame_producer)){} cg_proxy::cg_proxy(cg_proxy&& other) : impl_(std::move(other.impl_)){} void cg_proxy::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);} diff --git a/modules/flash/producer/cg_proxy.h b/modules/flash/producer/cg_proxy.h index 4803d816c..98228cdbf 100644 --- a/modules/flash/producer/cg_proxy.h +++ b/modules/flash/producer/cg_proxy.h @@ -59,5 +59,6 @@ private: cg_proxy create_cg_proxy(const spl::shared_ptr& video_channel, int layer_index = cg_proxy::DEFAULT_LAYER); spl::shared_ptr create_ct_producer(const spl::shared_ptr frame_factory, const core::video_format_desc& format_desc, const std::vector& params); +spl::shared_ptr create_swf_producer(const spl::shared_ptr frame_factory, const core::video_format_desc& format_desc, const std::vector& params); -}} \ No newline at end of file +}} -- 2.39.2