]> git.sesse.net Git - casparcg/commitdiff
2.0.2: Renamed PARAM to CAll. Added CALL based alternative syntax to CG commands...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 26 Nov 2011 11:10:49 +0000 (11:10 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 26 Nov 2011 11:10:49 +0000 (11:10 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.2@1668 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

29 files changed:
common/compiler/vs/disable_silly_warnings.h
core/consumer/frame_consumer.h
core/producer/color/color_producer.cpp
core/producer/frame_producer.cpp
core/producer/frame_producer.h
core/producer/layer.cpp
core/producer/layer.h
core/producer/playlist/playlist_producer.cpp
core/producer/separated/separated_producer.cpp
core/producer/stage.cpp
core/producer/stage.h
core/producer/transition/transition_producer.cpp
modules/bluefish/consumer/bluefish_consumer.cpp
modules/decklink/consumer/decklink_consumer.cpp
modules/decklink/producer/decklink_producer.cpp
modules/ffmpeg/ffmpeg.cpp
modules/ffmpeg/producer/ffmpeg_producer.cpp
modules/flash/producer/cg_producer.cpp
modules/flash/producer/cg_producer.h
modules/flash/producer/flash_producer.cpp
modules/image/consumer/image_consumer.cpp
modules/image/producer/image_producer.cpp
modules/image/producer/image_scroll_producer.cpp
modules/oal/consumer/oal_consumer.cpp
modules/ogl/consumer/ogl_consumer.cpp
protocol/amcp/AMCPCommandsImpl.cpp
protocol/amcp/AMCPCommandsImpl.h
protocol/amcp/AMCPProtocolStrategy.cpp
protocol/cii/CIIProtocolStrategy.cpp

index 095e4826d77d3f9aa728a8ba62fb37bc2bacd598..492b9283938fd58b5c8c9827d0bfc412e823071a 100644 (file)
@@ -30,5 +30,6 @@
 #pragma warning (disable : 4702) //  unreachable code\r
 #pragma warning (disable : 4714) // marked as __forceinline not inlined\r
 #pragma warning (disable : 4505) //  unreferenced local function has been removed\r
+#pragma warning (disable : 4481) //  nonstandard extension used: override specifier 'override'\r
 #endif\r
 \r
index 2fde6f778c780c41bfd77499ca067c3c889fa18d..090c2ff2181b8f7c661cbac0afe56d8a44a5c24f 100644 (file)
@@ -48,12 +48,11 @@ struct frame_consumer : boost::noncopyable
        {\r
                struct empty_frame_consumer : public frame_consumer\r
                {\r
-                       core::video_format_desc format_desc;\r
-                       virtual bool send(const safe_ptr<read_frame>&){return false;}\r
-                       virtual void initialize(const video_format_desc&, int, int){}\r
-                       virtual std::wstring print() const {return L"empty";}\r
-                       virtual bool has_synchronization_clock() const {return false;}\r
-                       virtual size_t buffer_depth() const {return 0;};\r
+                       virtual bool send(const safe_ptr<read_frame>&) override {return false;}\r
+                       virtual void initialize(const video_format_desc&, int, int) override{}\r
+                       virtual std::wstring print() const override {return L"empty";}\r
+                       virtual bool has_synchronization_clock() const override {return false;}\r
+                       virtual size_t buffer_depth() const override {return 0;};\r
                };\r
                static safe_ptr<frame_consumer> consumer = make_safe<empty_frame_consumer>();\r
                return consumer;\r
index a6793b2dec052cb64e382853ed381ecc2d198f75..b6b738c8d00e3c49fd274485b1b3386c0fe72a18 100644 (file)
@@ -46,9 +46,20 @@ public:
 \r
        // frame_producer\r
                        \r
-       virtual safe_ptr<basic_frame> receive(int) { return frame_; }   \r
-       virtual safe_ptr<basic_frame> last_frame() const { return frame_; }     \r
-       virtual std::wstring print() const { return L"color[" + color_str_ + L"]"; }\r
+       virtual safe_ptr<basic_frame> receive(int) override\r
+       {\r
+               return frame_;\r
+       }       \r
+\r
+       virtual safe_ptr<basic_frame> last_frame() const override\r
+       {\r
+               return frame_; \r
+       }       \r
+\r
+       virtual std::wstring print() const override\r
+       {\r
+               return L"color[" + color_str_ + L"]";\r
+       }\r
 };\r
 \r
 std::wstring get_hex_color(const std::wstring& str)\r
index 7b0c2327665d7aefd88efe6bca673b47d8ef510b..382099ac329a1a9c706a4f5396e4592dac93552c 100644 (file)
@@ -91,13 +91,13 @@ public:
                }\r
        }\r
 \r
-       virtual safe_ptr<basic_frame>           receive(int hints)                                                                                              {return (*producer_)->receive(hints);}\r
-       virtual safe_ptr<basic_frame>           last_frame() const                                                                                              {return (*producer_)->last_frame();}\r
-       virtual std::wstring                            print() const                                                                                                   {return (*producer_)->print();}\r
-       virtual std::wstring                            param(const std::wstring& str)                                                                  {return (*producer_)->param(str);}\r
-       virtual safe_ptr<frame_producer>        get_following_producer() const                                                                  {return (*producer_)->get_following_producer();}\r
-       virtual void                                            set_leading_producer(const safe_ptr<frame_producer>& producer)  {(*producer_)->set_leading_producer(producer);}\r
-       virtual int64_t                                         nb_frames() const                                                                                               {return (*producer_)->nb_frames();}\r
+       virtual safe_ptr<basic_frame>           receive(int hints) override                                                                                             {return (*producer_)->receive(hints);}\r
+       virtual safe_ptr<basic_frame>           last_frame() const override                                                                                             {return (*producer_)->last_frame();}\r
+       virtual std::wstring                            print() const override                                                                                                  {return (*producer_)->print();}\r
+       virtual std::wstring                            call(const std::wstring& str) override                                                                  {return (*producer_)->call(str);}\r
+       virtual safe_ptr<frame_producer>        get_following_producer() const override                                                                 {return (*producer_)->get_following_producer();}\r
+       virtual void                                            set_leading_producer(const safe_ptr<frame_producer>& producer) override {(*producer_)->set_leading_producer(producer);}\r
+       virtual int64_t                                         nb_frames() const override                                                                                              {return (*producer_)->nb_frames();}\r
 };\r
 \r
 safe_ptr<core::frame_producer> create_destroy_proxy(safe_ptr<core::frame_producer>&& producer)\r
index c271501d66106d94bda0def7e09978f327d333e5..5e70c458801e300bf98e0f7a3386fc6bf99640f7 100644 (file)
@@ -52,7 +52,7 @@ public:
 \r
        virtual std::wstring print() const = 0; // nothrow\r
 \r
-       virtual std::wstring param(const std::wstring&){return L"";}\r
+       virtual std::wstring call(const std::wstring&) {return L"";}\r
 \r
        virtual safe_ptr<frame_producer> get_following_producer() const {return frame_producer::empty();}  // nothrow\r
        virtual void set_leading_producer(const safe_ptr<frame_producer>&) {}  // nothrow\r
index deed583ed365b2164f4b01e3836dbbb0a9ffe1bc..0051ef3443e49dc2d2aecc4212aa45716dc2e0a3 100644 (file)
@@ -133,9 +133,9 @@ public:
                return status;\r
        }\r
 \r
-       std::wstring param(bool foreground, const std::wstring& param)\r
+       std::wstring call(bool foreground, const std::wstring& param)\r
        {\r
-               return (foreground ? foreground_ : background_)->param(param);\r
+               return (foreground ? foreground_ : background_)->call(param);\r
        }\r
 \r
        bool empty() const\r
@@ -173,5 +173,5 @@ safe_ptr<basic_frame> layer::receive() {return impl_->receive();}
 safe_ptr<frame_producer> layer::foreground() const { return impl_->foreground_;}\r
 safe_ptr<frame_producer> layer::background() const { return impl_->background_;}\r
 bool layer::empty() const {return impl_->empty();}\r
-std::wstring layer::param(bool foreground, const std::wstring& param){return impl_->param(foreground, param);}\r
+std::wstring layer::call(bool foreground, const std::wstring& param){return impl_->call(foreground, param);}\r
 }}
\ No newline at end of file
index d04def0c5c45afdaa49400e76421ed39980ba5b9..625064f81dd49b71f0f00accf03ec21722e47447 100644 (file)
@@ -55,7 +55,7 @@ public:
        void play(); // nothrow\r
        void pause(); // nothrow\r
        void stop(); // nothrow\r
-       std::wstring param(bool foreground, const std::wstring& param);\r
+       std::wstring call(bool foreground, const std::wstring& param);\r
 \r
        bool is_paused() const;\r
        int64_t frame_number() const;\r
index 0ed1eb9d2b746f8a63b0765c9316d558a97ae739..df811646831edc67b9ef5360a69a455b0a5189bb 100644 (file)
@@ -46,8 +46,10 @@ struct playlist_producer : public frame_producer
                , loop_(loop)\r
        {\r
        }\r
+\r
+       // frame_producer\r
        \r
-       virtual safe_ptr<basic_frame> receive(int hints)\r
+       virtual safe_ptr<basic_frame> receive(int hints) override\r
        {\r
                if(current_ == frame_producer::empty() && !producers_.empty())\r
                {\r
@@ -67,22 +69,22 @@ struct playlist_producer : public frame_producer
                return last_frame_ = frame;\r
        }\r
 \r
-       virtual safe_ptr<core::basic_frame> last_frame() const\r
+       virtual safe_ptr<core::basic_frame> last_frame() const override\r
        {\r
                return disable_audio(last_frame_);\r
        }\r
 \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        {\r
                return L"playlist[]";\r
        }       \r
 \r
-       virtual int64_t nb_frames() const \r
+       virtual int64_t nb_frames() const  override\r
        {\r
                return std::numeric_limits<int>::max();\r
        }\r
 \r
-       virtual std::wstring param(const std::wstring& param)\r
+       virtual std::wstring call(const std::wstring& param) override\r
        {               \r
                static const boost::wregex push_front_exp       (L"PUSH_FRONT (?<PARAM>.+)");           \r
                static const boost::wregex push_back_exp        (L"(PUSH_BACK|PUSH) (?<PARAM>.+)");\r
@@ -118,6 +120,8 @@ struct playlist_producer : public frame_producer
 \r
                BOOST_THROW_EXCEPTION(invalid_argument());\r
        }\r
+\r
+       // playlist_producer\r
        \r
        std::wstring push_front(const std::wstring& str)\r
        {\r
index e03c83d4f8bb1c206929a908136cfd08e9989709..c6f48281c3ceecd9e22a757d9120d8f23a8443d6 100644 (file)
@@ -43,9 +43,10 @@ struct separated_producer : public frame_producer
                , last_frame_(core::basic_frame::empty())\r
        {\r
        }\r
+\r
        // frame_producer\r
        \r
-       virtual safe_ptr<basic_frame> receive(int hints)\r
+       virtual safe_ptr<basic_frame> receive(int hints) override\r
        {\r
                tbb::parallel_invoke(\r
                [&]\r
@@ -73,17 +74,17 @@ struct separated_producer : public frame_producer
                return last_frame_ = frame;\r
        }\r
 \r
-       virtual safe_ptr<core::basic_frame> last_frame() const\r
+       virtual safe_ptr<core::basic_frame> last_frame() const override\r
        {\r
                return disable_audio(last_frame_);\r
        }\r
 \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        {\r
                return L"separated[fill:" + fill_producer_->print() + L"|key:" + key_producer_->print() + L"]";\r
        }       \r
 \r
-       virtual int64_t nb_frames() const \r
+       virtual int64_t nb_frames() const override\r
        {\r
                return std::min(fill_producer_->nb_frames(), key_producer_->nb_frames());\r
        }\r
index ef09a155099eff39ae5aaa6a5e7d43a9efc9e975..00105986d1d35c0f5335ca0de1b2ccb7cdf8d27e 100644 (file)
@@ -154,11 +154,11 @@ public:
                }, high_priority);\r
        }       \r
        \r
-       std::wstring param(int index, bool foreground, const std::wstring& param)\r
+       std::wstring call(int index, bool foreground, const std::wstring& param)\r
        {\r
                return executor_.invoke([&]\r
                {\r
-                       return layers_[index].param(foreground, param);\r
+                       return layers_[index].call(foreground, param);\r
                }, high_priority);\r
        }\r
 \r
@@ -237,5 +237,5 @@ layer_status stage::get_status(int index){return impl_->get_status(index);}
 safe_ptr<frame_producer> stage::foreground(size_t index) {return impl_->foreground(index);}\r
 safe_ptr<frame_producer> stage::background(size_t index) {return impl_->background(index);}\r
 void stage::set_video_format_desc(const video_format_desc& format_desc){impl_->set_video_format_desc(format_desc);}\r
-std::wstring stage::param(int index, bool foreground, const std::wstring& param){return impl_->param(index, foreground, param);}\r
+std::wstring stage::call(int index, bool foreground, const std::wstring& param){return impl_->call(index, foreground, param);}\r
 }}
\ No newline at end of file
index 68ccfef42df1be8ee1d0d7f92d67c92fd41eb614..54f680f2577be579799e18d18d3693655d1ce80a 100644 (file)
@@ -49,7 +49,7 @@ public:
        void stop(int index);\r
        void clear(int index);\r
        void clear();   \r
-       std::wstring param(int index, bool foreground, const std::wstring& param);\r
+       std::wstring call(int index, bool foreground, const std::wstring& param);\r
        void swap_layer(int index, size_t other_index);\r
        void swap_layer(int index, size_t other_index, stage& other);\r
 \r
index 24cf9287533810a4854657b8f5cab816ac344fb8..728f6c305d6f95c73576d496f5e5f9c6698224cb 100644 (file)
@@ -56,17 +56,17 @@ struct transition_producer : public frame_producer
        \r
        // frame_producer\r
 \r
-       virtual safe_ptr<frame_producer> get_following_producer() const\r
+       virtual safe_ptr<frame_producer> get_following_producer() const override\r
        {\r
                return dest_producer_;\r
        }\r
        \r
-       virtual void set_leading_producer(const safe_ptr<frame_producer>& producer)\r
+       virtual void set_leading_producer(const safe_ptr<frame_producer>& producer) override\r
        {\r
                source_producer_ = producer;\r
        }\r
 \r
-       virtual safe_ptr<basic_frame> receive(int hints)\r
+       virtual safe_ptr<basic_frame> receive(int hints) override\r
        {\r
                if(++current_frame_ >= info_.duration)\r
                        return basic_frame::eof();\r
@@ -91,17 +91,17 @@ struct transition_producer : public frame_producer
                return compose(dest, source);\r
        }\r
 \r
-       virtual safe_ptr<core::basic_frame> last_frame() const\r
+       virtual safe_ptr<core::basic_frame> last_frame() const override\r
        {\r
                return disable_audio(last_frame_);\r
        }\r
 \r
-       virtual int64_t nb_frames() const \r
+       virtual int64_t nb_frames() const override\r
        {\r
                return get_following_producer()->nb_frames();\r
        }\r
 \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        {\r
                return L"transition[" + source_producer_->print() + L"|" + dest_producer_->print() + L"]";\r
        }\r
index 2d7cd200f4781b501398706f981514dc8967fb7d..0cee175e27af4ef33b96986eea38393221b38f16 100644 (file)
@@ -306,24 +306,26 @@ public:
                , key_only_(key_only)\r
        {\r
        }\r
+\r
+       // frame_consumer\r
        \r
-       virtual void initialize(const core::video_format_desc& format_desc, int channel_index, int sub_index)\r
+       virtual void initialize(const core::video_format_desc& format_desc, int channel_index, int sub_index) override\r
        {\r
                consumer_.reset(new bluefish_consumer(format_desc, device_index_, embedded_audio_, key_only_, channel_index, sub_index));\r
        }\r
        \r
-       virtual bool send(const safe_ptr<core::read_frame>& frame)\r
+       virtual bool send(const safe_ptr<core::read_frame>& frame) override\r
        {\r
                consumer_->send(frame);\r
                return true;\r
        }\r
                \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        {\r
                return consumer_->print();\r
        }\r
 \r
-       size_t buffer_depth() const\r
+       size_t buffer_depth() const override\r
        {\r
                return 1;\r
        }\r
index ae6433e7b91d82ea7dd09bbce796e939cd05c204..477a6acc9e663ea49ab159b9b7d9d94ba4e15344 100644 (file)
@@ -438,26 +438,28 @@ public:
                context_.reset();\r
                CASPAR_LOG(info) << str << L" Successfully Uninitialized.";     \r
        }\r
+\r
+       // frame_consumer\r
        \r
-       virtual void initialize(const core::video_format_desc& format_desc, int channel_index, int sub_index)\r
+       virtual void initialize(const core::video_format_desc& format_desc, int channel_index, int sub_index) override\r
        {\r
                context_.reset([&]{return new decklink_consumer(config_, format_desc, channel_index, sub_index);});             \r
                                \r
                CASPAR_LOG(info) << print() << L" Successfully Initialized.";   \r
        }\r
        \r
-       virtual bool send(const safe_ptr<core::read_frame>& frame)\r
+       virtual bool send(const safe_ptr<core::read_frame>& frame) override\r
        {\r
                context_->send(frame);\r
                return true;\r
        }\r
        \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        {\r
                return context_->print();\r
        }                       \r
 \r
-       virtual size_t buffer_depth() const\r
+       virtual size_t buffer_depth() const override\r
        {\r
                return config_.buffer_depth;\r
        }\r
index c4ff73666b7ab69ba7dd37fa39bab9d59f91550a..97892034c0ce2ed8a99005badbafe99eeed86174 100644 (file)
@@ -259,8 +259,10 @@ public:
                context_.reset();\r
                CASPAR_LOG(info) << str << L" Successfully Uninitialized.";     \r
        }\r
+\r
+       // frame_producer\r
                                \r
-       virtual safe_ptr<core::basic_frame> receive(int)\r
+       virtual safe_ptr<core::basic_frame> receive(int) override\r
        {\r
                auto frame = context_->get_frame();\r
                if(frame != core::basic_frame::late())\r
@@ -268,17 +270,17 @@ public:
                return frame;\r
        }\r
 \r
-       virtual safe_ptr<core::basic_frame> last_frame() const\r
+       virtual safe_ptr<core::basic_frame> last_frame() const override\r
        {\r
                return disable_audio(last_frame_);\r
        }\r
        \r
-       virtual int64_t nb_frames() const \r
+       virtual int64_t nb_frames() const override\r
        {\r
                return length_;\r
        }\r
        \r
-       std::wstring print() const\r
+       std::wstring print() const override\r
        {\r
                return context_->print();\r
        }\r
index cdbccb3f521a38c6d99a1902a954d4b340077027..770905e70ec0d28fed9c7b8a7731046cdb2e8223 100644 (file)
@@ -151,37 +151,37 @@ void log_callback(void* ptr, int level, const char* fmt, va_list vl)
     //colored_fputs(av_clip(level>>3, 0, 6), line);\r
 }\r
 \r
-//static int query_yadif_formats(AVFilterContext *ctx)
-//{
-//    static const int pix_fmts[] = {
-//        PIX_FMT_YUV444P,
-//        PIX_FMT_YUV422P,
-//        PIX_FMT_YUV420P,
-//        PIX_FMT_YUV410P,
-//        PIX_FMT_YUV411P,
-//        PIX_FMT_GRAY8,
-//        PIX_FMT_YUVJ444P,
-//        PIX_FMT_YUVJ422P,
-//        PIX_FMT_YUVJ420P,
-//        AV_NE( PIX_FMT_GRAY16BE, PIX_FMT_GRAY16LE ),
-//        PIX_FMT_YUV440P,
-//        PIX_FMT_YUVJ440P,
-//        AV_NE( PIX_FMT_YUV444P16BE, PIX_FMT_YUV444P16LE ),
-//        AV_NE( PIX_FMT_YUV422P16BE, PIX_FMT_YUV422P16LE ),
-//        AV_NE( PIX_FMT_YUV420P16BE, PIX_FMT_YUV420P16LE ),
-//        PIX_FMT_YUVA420P,
-//        PIX_FMT_NONE
-//    };
-//    avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
-//
-//    return 0;
+//static int query_yadif_formats(AVFilterContext *ctx)\r
+//{\r
+//    static const int pix_fmts[] = {\r
+//        PIX_FMT_YUV444P,\r
+//        PIX_FMT_YUV422P,\r
+//        PIX_FMT_YUV420P,\r
+//        PIX_FMT_YUV410P,\r
+//        PIX_FMT_YUV411P,\r
+//        PIX_FMT_GRAY8,\r
+//        PIX_FMT_YUVJ444P,\r
+//        PIX_FMT_YUVJ422P,\r
+//        PIX_FMT_YUVJ420P,\r
+//        AV_NE( PIX_FMT_GRAY16BE, PIX_FMT_GRAY16LE ),\r
+//        PIX_FMT_YUV440P,\r
+//        PIX_FMT_YUVJ440P,\r
+//        AV_NE( PIX_FMT_YUV444P16BE, PIX_FMT_YUV444P16LE ),\r
+//        AV_NE( PIX_FMT_YUV422P16BE, PIX_FMT_YUV422P16LE ),\r
+//        AV_NE( PIX_FMT_YUV420P16BE, PIX_FMT_YUV420P16LE ),\r
+//        PIX_FMT_YUVA420P,\r
+//        PIX_FMT_NONE\r
+//    };\r
+//    avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));\r
+//\r
+//    return 0;\r
 //}\r
 //\r
 //#pragma warning (push)\r
 //#pragma warning (disable : 4706)\r
 //void fix_yadif_filter_format_query()\r
 //{\r
-//     AVFilter** filter = nullptr;
+//     AVFilter** filter = nullptr;\r
 //    while((filter = av_filter_next(filter)) && *filter)\r
 //     {\r
 //             if(strstr((*filter)->name, "yadif") != 0)\r
index da665d85410ba131a95fa3dfd8cdf16c5df57ffc..7fd2c1f9ebc9c1b61adbe95de8a9582a932657aa 100644 (file)
@@ -126,8 +126,10 @@ public:
 \r
                muxer_.reset(new frame_muxer(video_decoder_ ? video_decoder_->fps() : frame_factory->get_video_format_desc().fps, frame_factory, filter));\r
        }\r
+\r
+       // frame_producer\r
        \r
-       virtual safe_ptr<core::basic_frame> receive(int hints)\r
+       virtual safe_ptr<core::basic_frame> receive(int hints) override\r
        {               \r
                frame_timer_.restart();\r
                \r
@@ -153,62 +155,12 @@ public:
                return last_frame_;\r
        }\r
 \r
-       virtual safe_ptr<core::basic_frame> last_frame() const\r
+       virtual safe_ptr<core::basic_frame> last_frame() const override\r
        {\r
                return disable_audio(last_frame_);\r
        }\r
-       \r
-       void try_decode_frame(int hints)\r
-       {\r
-               std::shared_ptr<AVPacket> pkt;\r
-\r
-               for(int n = 0; n < 32 && ((video_decoder_ && !video_decoder_->ready()) || (audio_decoder_ && !audio_decoder_->ready())) && input_.try_pop(pkt); ++n)\r
-               {\r
-                       if(video_decoder_)\r
-                               video_decoder_->push(pkt);\r
-                       if(audio_decoder_)\r
-                               audio_decoder_->push(pkt);\r
-               }\r
-               \r
-               std::shared_ptr<AVFrame>                        video;\r
-               std::shared_ptr<core::audio_buffer> audio;\r
-\r
-               tbb::parallel_invoke(\r
-               [&]\r
-               {\r
-                       if(!muxer_->video_ready() && video_decoder_)                    \r
-                               video = video_decoder_->poll();                 \r
-               },\r
-               [&]\r
-               {               \r
-                       if(!muxer_->audio_ready() && audio_decoder_)                    \r
-                               audio = audio_decoder_->poll();                 \r
-               });\r
-\r
-               muxer_->push(video, hints);\r
-               muxer_->push(audio);\r
-\r
-               if(!audio_decoder_)\r
-               {\r
-                       if(video == flush_video())\r
-                               muxer_->push(flush_audio());\r
-                       else if(!muxer_->audio_ready())\r
-                               muxer_->push(empty_audio());\r
-               }\r
-\r
-               if(!video_decoder_)\r
-               {\r
-                       if(audio == flush_audio())\r
-                               muxer_->push(flush_video(), 0);\r
-                       else if(!muxer_->video_ready())\r
-                               muxer_->push(empty_video(), 0);\r
-               }\r
-               \r
-               for(auto frame = muxer_->poll(); frame; frame = muxer_->poll())\r
-                       frame_buffer_.push(make_safe_ptr(frame));\r
-       }\r
 \r
-       virtual int64_t nb_frames() const \r
+       virtual int64_t nb_frames() const override\r
        {\r
                if(loop_)\r
                        return std::numeric_limits<int64_t>::max();\r
@@ -232,7 +184,7 @@ public:
                return nb_frames - start_;\r
        }\r
 \r
-       virtual std::wstring param(const std::wstring& param)\r
+       virtual std::wstring call(const std::wstring& param) override\r
        {\r
                static const boost::wregex loop_exp(L"LOOP\\s*(?<VALUE>\\d?)");\r
                static const boost::wregex seek_exp(L"SEEK\\s+(?<VALUE>\\d+)");\r
@@ -253,7 +205,7 @@ public:
                BOOST_THROW_EXCEPTION(invalid_argument());\r
        }\r
                                \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        {\r
                if(video_decoder_)\r
                {\r
@@ -265,6 +217,58 @@ public:
                \r
                return L"ffmpeg[" + boost::filesystem::wpath(filename_).filename() + L"]";\r
        }\r
+\r
+       // ffmpeg_producer\r
+               \r
+       void try_decode_frame(int hints)\r
+       {\r
+               std::shared_ptr<AVPacket> pkt;\r
+\r
+               for(int n = 0; n < 32 && ((video_decoder_ && !video_decoder_->ready()) || (audio_decoder_ && !audio_decoder_->ready())) && input_.try_pop(pkt); ++n)\r
+               {\r
+                       if(video_decoder_)\r
+                               video_decoder_->push(pkt);\r
+                       if(audio_decoder_)\r
+                               audio_decoder_->push(pkt);\r
+               }\r
+               \r
+               std::shared_ptr<AVFrame>                        video;\r
+               std::shared_ptr<core::audio_buffer> audio;\r
+\r
+               tbb::parallel_invoke(\r
+               [&]\r
+               {\r
+                       if(!muxer_->video_ready() && video_decoder_)                    \r
+                               video = video_decoder_->poll();                 \r
+               },\r
+               [&]\r
+               {               \r
+                       if(!muxer_->audio_ready() && audio_decoder_)                    \r
+                               audio = audio_decoder_->poll();                 \r
+               });\r
+\r
+               muxer_->push(video, hints);\r
+               muxer_->push(audio);\r
+\r
+               if(!audio_decoder_)\r
+               {\r
+                       if(video == flush_video())\r
+                               muxer_->push(flush_audio());\r
+                       else if(!muxer_->audio_ready())\r
+                               muxer_->push(empty_audio());\r
+               }\r
+\r
+               if(!video_decoder_)\r
+               {\r
+                       if(audio == flush_audio())\r
+                               muxer_->push(flush_video(), 0);\r
+                       else if(!muxer_->video_ready())\r
+                               muxer_->push(empty_video(), 0);\r
+               }\r
+               \r
+               for(auto frame = muxer_->poll(); frame; frame = muxer_->poll())\r
+                       frame_buffer_.push(make_safe_ptr(frame));\r
+       }\r
 };\r
 \r
 safe_ptr<core::frame_producer> create_producer(const safe_ptr<core::frame_factory>& frame_factory, const std::vector<std::wstring>& params)\r
index 55ec88a8359bb8a3fe0fe394194681ebef5c7940..4a42e94f91c41a9b951b0f4c2084119a1baa9f43 100644 (file)
@@ -30,6 +30,7 @@
 #include <boost/filesystem.hpp>\r
 #include <boost/format.hpp>\r
 #include <boost/algorithm/string.hpp>\r
+#include <boost/regex.hpp>\r
                \r
 namespace caspar { namespace flash {\r
        \r
@@ -41,7 +42,7 @@ public:
                : flash_producer_(frame_producer)\r
        {}\r
        \r
-       void add(int layer, std::wstring filename,  bool play_on_load, const std::wstring& label, const std::wstring& data)\r
+       std::wstring add(int layer, std::wstring filename,  bool play_on_load, const std::wstring& label, const std::wstring& data)\r
        {\r
                if(filename.size() > 0 && filename[0] == L'/')\r
                        filename = filename.substr(1, filename.size()-1);\r
@@ -49,76 +50,104 @@ public:
                auto str = (boost::wformat(L"<invoke name=\"Add\" returntype=\"xml\"><arguments><number>%1%</number><string>%2%</string>%3%<string>%4%</string><string><![CDATA[%5%]]></string></arguments></invoke>") % layer % filename % (play_on_load?TEXT("<true/>"):TEXT("<false/>")) % label % data).str();\r
 \r
                CASPAR_LOG(info) << flash_producer_->print() << " Invoking add-command: " << str;\r
-               flash_producer_->param(str);\r
+               return flash_producer_->call(str);\r
        }\r
 \r
-       void remove(int layer)\r
+       std::wstring remove(int layer)\r
        {\r
                auto str = (boost::wformat(L"<invoke name=\"Delete\" returntype=\"xml\"><arguments><array><property id=\"0\"><number>%1%</number></property></array></arguments></invoke>") % layer).str();\r
                CASPAR_LOG(info) << flash_producer_->print() << " Invoking remove-command: " << str;\r
-               flash_producer_->param(str);\r
+               return flash_producer_->call(str);\r
        }\r
 \r
-       void play(int layer)\r
+       std::wstring play(int layer)\r
        {\r
                auto str = (boost::wformat(L"<invoke name=\"Play\" returntype=\"xml\"><arguments><array><property id=\"0\"><number>%1%</number></property></array></arguments></invoke>") % layer).str();\r
                CASPAR_LOG(info) << flash_producer_->print() << " Invoking play-command: " << str;\r
-               flash_producer_->param(str);\r
+               return flash_producer_->call(str);\r
        }\r
 \r
-       void stop(int layer, unsigned int)\r
+       std::wstring stop(int layer, unsigned int)\r
        {\r
                auto str = (boost::wformat(L"<invoke name=\"Stop\" returntype=\"xml\"><arguments><array><property id=\"0\"><number>%1%</number></property></array><number>0</number></arguments></invoke>") % layer).str();\r
                CASPAR_LOG(info) << flash_producer_->print() << " Invoking stop-command: " << str;\r
-               flash_producer_->param(str);\r
+               return flash_producer_->call(str);\r
        }\r
 \r
-       void next(int layer)\r
+       std::wstring next(int layer)\r
        {\r
                auto str = (boost::wformat(L"<invoke name=\"Next\" returntype=\"xml\"><arguments><array><property id=\"0\"><number>%1%</number></property></array></arguments></invoke>") % layer).str();\r
                CASPAR_LOG(info) << flash_producer_->print() << " Invoking next-command: " << str;\r
-               flash_producer_->param(str);\r
+               return flash_producer_->call(str);\r
        }\r
 \r
-       void update(int layer, const std::wstring& data)\r
+       std::wstring update(int layer, const std::wstring& data)\r
        {\r
                auto str = (boost::wformat(L"<invoke name=\"SetData\" returntype=\"xml\"><arguments><array><property id=\"0\"><number>%1%</number></property></array><string><![CDATA[%2%]]></string></arguments></invoke>") % layer % data).str();\r
                CASPAR_LOG(info) << flash_producer_->print() <<" Invoking update-command: " << str;\r
-               flash_producer_->param(str);\r
+               return flash_producer_->call(str);\r
        }\r
 \r
        std::wstring invoke(int layer, const std::wstring& label)\r
        {\r
                auto str = (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
                CASPAR_LOG(info) << flash_producer_->print() << " Invoking invoke-command: " << str;\r
-               return flash_producer_->param(str);\r
+               return flash_producer_->call(str);\r
        }\r
 \r
        std::wstring description(int layer)\r
        {\r
                auto str = (boost::wformat(L"<invoke name=\"GetDescription\" returntype=\"xml\"><arguments><array><property id=\"0\"><number>%1%</number></property></array></arguments></invoke>") % layer).str();\r
                CASPAR_LOG(info) << flash_producer_->print() << " Invoking description-command: " << str;\r
-               return flash_producer_->param(str);\r
+               return flash_producer_->call(str);\r
        }\r
 \r
        std::wstring info()\r
        {\r
                auto str = (boost::wformat(L"<invoke name=\"GetInfo\" returntype=\"xml\"><arguments></arguments></invoke>")).str();\r
                CASPAR_LOG(info) << flash_producer_->print() << " Invoking info-command: " << str;\r
-               return flash_producer_->param(str);\r
+               return flash_producer_->call(str);\r
        }\r
 \r
-       virtual std::wstring param(const std::wstring& str)\r
+       std::wstring call(const std::wstring& str)\r
        {               \r
-               return flash_producer_->param(str);\r
+               static const boost::wregex add_exp                      (L"ADD (?<LAYER>\\d+) (?<FILENAME>[^\\s]+) (?<PLAY_ON_LOAD>\\d)\\s?(?<DATA>.*)?");\r
+               static const boost::wregex remove_exp           (L"REMOVE (?<LAYER>\\d+)");\r
+               static const boost::wregex play_exp                     (L"PLAY (?<LAYER>\\d+)");\r
+               static const boost::wregex stop_exp                     (L"STOP (?<LAYER>\\d+)");\r
+               static const boost::wregex next_exp                     (L"NEXT (?<LAYER>\\d+)");\r
+               static const boost::wregex update_exp           (L"UPDATE (?<LAYER>\\d+) (?<DATA>.+)");\r
+               static const boost::wregex invoke_exp           (L"INVOKE (?<LAYER>\\d+) (?<LABEL>.+)");\r
+               static const boost::wregex description_exp      (L"INFO (?<LAYER>\\d+)");\r
+               static const boost::wregex info_exp                     (L"INFO");\r
+               \r
+               boost::wsmatch what;\r
+               if(boost::regex_match(str, what, add_exp))\r
+                       return add(boost::lexical_cast<int>(what["LAYER"].str()), what["FILENAME"].str(), boost::lexical_cast<bool>(what["PLAY_ON_LOAD"].str()), L"", what["DATA"].str()); \r
+               else if(boost::regex_match(str, what, remove_exp))\r
+                       return remove(boost::lexical_cast<int>(what["LAYER"].str())); \r
+               else if(boost::regex_match(str, what, stop_exp))\r
+                       return stop(boost::lexical_cast<int>(what["LAYER"].str()), 0); \r
+               else if(boost::regex_match(str, what, next_exp))\r
+                       return next(boost::lexical_cast<int>(what["LAYER"].str())); \r
+               else if(boost::regex_match(str, what, update_exp))\r
+                       return update(boost::lexical_cast<int>(what["LAYER"].str()), what["DATA"].str()); \r
+               else if(boost::regex_match(str, what, next_exp))\r
+                       return invoke(boost::lexical_cast<int>(what["LAYER"].str()), what["LABEL"].str()); \r
+               else if(boost::regex_match(str, what, description_exp))\r
+                       return description(boost::lexical_cast<int>(what["LAYER"].str())); \r
+               else if(boost::regex_match(str, what, invoke_exp))\r
+                       return info(); \r
+\r
+               return flash_producer_->call(str);\r
        }\r
 \r
-       virtual safe_ptr<core::basic_frame> receive(int hints)\r
+       safe_ptr<core::basic_frame> receive(int hints)\r
        {\r
                return flash_producer_->receive(hints);\r
        }\r
 \r
-       virtual safe_ptr<core::basic_frame> last_frame() const\r
+       safe_ptr<core::basic_frame> last_frame() const\r
        {\r
                return flash_producer_->last_frame();\r
        }               \r
@@ -172,7 +201,7 @@ void cg_producer::next(int layer){impl_->next(layer);}
 void cg_producer::update(int layer, const std::wstring& data){impl_->update(layer, data);}\r
 std::wstring cg_producer::invoke(int layer, const std::wstring& label){return impl_->invoke(layer, label);}\r
 std::wstring cg_producer::print() const{return impl_->print();}\r
-std::wstring cg_producer::param(const std::wstring& str){return impl_->param(str);}\r
+std::wstring cg_producer::call(const std::wstring& str){return impl_->call(str);}\r
 std::wstring cg_producer::description(int layer){return impl_->description(layer);}\r
 std::wstring cg_producer::info(){return impl_->info();}\r
 \r
index 25e5b56cd37dc84988c568400a150dab1a32637e..079fb685132249648eb3a8b29a28f270c747a532 100644 (file)
@@ -37,12 +37,14 @@ public:
        cg_producer(cg_producer&& other);\r
        \r
        // frame_producer\r
-       virtual safe_ptr<core::basic_frame> receive(int);\r
-       virtual safe_ptr<core::basic_frame> last_frame() const;\r
-       virtual std::wstring print() const;\r
-       virtual std::wstring param(const std::wstring&);\r
+\r
+       virtual safe_ptr<core::basic_frame> receive(int) override;\r
+       virtual safe_ptr<core::basic_frame> last_frame() const override;\r
+       virtual std::wstring print() const override;\r
+       virtual std::wstring call(const std::wstring&) override;\r
 \r
        //cg_producer\r
+\r
        void add(int layer, const std::wstring& template_name,  bool play_on_load, const std::wstring& start_from_label = TEXT(""), const std::wstring& data = TEXT(""));\r
        void remove(int layer);\r
        void play(int layer);\r
index 63a050ae4121d5a0d2dbc19b98b6de9ab4ef6ccf..95623badf4d2d095d156b9624f8f0938b7d58924 100644 (file)
@@ -214,7 +214,7 @@ public:
                CASPAR_LOG(info) << print() << L" Uninitialized.";\r
        }\r
        \r
-       std::wstring param(const std::wstring& param)\r
+       std::wstring call(const std::wstring& param)\r
        {               \r
                std::wstring result;\r
 \r
@@ -323,7 +323,7 @@ public:
 \r
        // frame_producer\r
                \r
-       virtual safe_ptr<core::basic_frame> receive(int)\r
+       virtual safe_ptr<core::basic_frame> receive(int) override\r
        {                               \r
                graph_->set_value("output-buffer-count", static_cast<float>(frame_buffer_.size())/static_cast<float>(frame_buffer_.capacity()));\r
 \r
@@ -334,13 +334,13 @@ public:
                return frame;\r
        }\r
 \r
-       virtual safe_ptr<core::basic_frame> last_frame() const\r
+       virtual safe_ptr<core::basic_frame> last_frame() const override\r
        {\r
                tbb::spin_mutex::scoped_lock lock(last_frame_mutex_);\r
                return last_frame_;\r
        }               \r
        \r
-       virtual std::wstring param(const std::wstring& param) \r
+       virtual std::wstring call(const std::wstring& param) override\r
        {       \r
                return context_.invoke([=]() -> std::wstring\r
                {\r
@@ -349,7 +349,7 @@ public:
 \r
                        try\r
                        {\r
-                               return context_->param(param);  \r
+                               return context_->call(param);   \r
 \r
                                //const auto& format_desc = frame_factory_->get_video_format_desc();\r
                                //if(abs(context_->fps() - format_desc.fps) > 0.01 && abs(context_->fps()/2.0 - format_desc.fps) > 0.01)\r
@@ -366,7 +366,7 @@ public:
                });\r
        }\r
                \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        { \r
                return L"flash[" + boost::filesystem::wpath(filename_).filename() + L"|" + boost::lexical_cast<std::wstring>(fps_) + L"]";              \r
        }       \r
index 10333d3f171a55b941beaa91ad60784f1f10b2dd..417e1f1c15734ad9be44fe315f29b7e0af07bc58 100644 (file)
@@ -45,12 +45,14 @@ struct image_consumer : public core::frame_consumer
        core::video_format_desc                                 format_desc_;\r
 public:\r
 \r
-       virtual void initialize(const core::video_format_desc& format_desc, int, int)\r
+       // frame_consumer\r
+\r
+       virtual void initialize(const core::video_format_desc& format_desc, int, int) override\r
        {\r
                format_desc_ = format_desc;\r
        }\r
        \r
-       virtual bool send(const safe_ptr<core::read_frame>& frame)\r
+       virtual bool send(const safe_ptr<core::read_frame>& frame) override\r
        {                               \r
                auto format_desc = format_desc_;\r
                boost::thread async([format_desc, frame]\r
@@ -74,17 +76,12 @@ public:
                return false;\r
        }\r
 \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        {\r
                return L"image[]";\r
        }\r
 \r
-       virtual const core::video_format_desc& get_video_format_desc() const\r
-       {\r
-               return format_desc_;\r
-       }\r
-\r
-       virtual size_t buffer_depth() const \r
+       virtual size_t buffer_depth() const override\r
        {\r
                return 0;\r
        }\r
index b3084f91954f63eba2dedcffc0a21a640c493389..fcadb7aaba52cbe4cdeafd669ae9c8c53aafdd96 100644 (file)
@@ -57,14 +57,17 @@ struct image_producer : public core::frame_producer
        \r
        // frame_producer\r
 \r
-       virtual safe_ptr<core::basic_frame> receive(int){return frame_;}\r
+       virtual safe_ptr<core::basic_frame> receive(int) override\r
+       {\r
+               return frame_;\r
+       }\r
                \r
-       virtual safe_ptr<core::basic_frame> last_frame() const\r
+       virtual safe_ptr<core::basic_frame> last_frame() const override\r
        {\r
                return frame_;\r
        }\r
 \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        {\r
                return L"image_producer[" + filename_ + L"]";\r
        }\r
index f20411689dc526154806b53bbc12e332d181f08c..93a07c65c6d351be75c73d9d36225231950e866c 100644 (file)
@@ -152,7 +152,7 @@ struct image_scroll_producer : public core::frame_producer
        \r
        // frame_producer\r
 \r
-       virtual safe_ptr<core::basic_frame> receive(int)\r
+       virtual safe_ptr<core::basic_frame> receive(int) override\r
        {               \r
                delta_ += speed_;\r
 \r
@@ -185,17 +185,17 @@ struct image_scroll_producer : public core::frame_producer
                return last_frame_ = make_safe<core::basic_frame>(frames_);\r
        }\r
 \r
-       virtual safe_ptr<core::basic_frame> last_frame() const\r
+       virtual safe_ptr<core::basic_frame> last_frame() const override\r
        {\r
                return last_frame_;\r
        }\r
                \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        {\r
                return L"image_scroll_producer[" + filename_ + L"]";\r
        }\r
 \r
-       virtual int64_t nb_frames() const \r
+       virtual int64_t nb_frames() const override\r
        {\r
                if(height_ > format_desc_.height)\r
                {\r
index 8fb0706f8302490af5b37410b988e92687a95a39..24cb6d9504f377a8ac2def2dc3b7f3cadafbf2fe 100644 (file)
@@ -79,7 +79,9 @@ public:
                CASPAR_LOG(info) << print() << L" Shutting down.";      \r
        }\r
 \r
-       virtual void initialize(const core::video_format_desc& format_desc, int channel_index, int sub_index)\r
+       // frame consumer\r
+\r
+       virtual void initialize(const core::video_format_desc& format_desc, int channel_index, int sub_index) override\r
        {\r
                format_desc_    = format_desc;          \r
                channel_index_  = channel_index;\r
@@ -92,14 +94,26 @@ public:
                CASPAR_LOG(info) << print() << " Sucessfully initialized.";\r
        }\r
        \r
-       virtual bool send(const safe_ptr<core::read_frame>& frame)\r
+       virtual bool send(const safe_ptr<core::read_frame>& frame) override\r
        {                       \r
                input_.push(std::make_shared<std::vector<int16_t, tbb::cache_aligned_allocator<int16_t>>>(core::audio_32_to_16_sse(frame->audio_data())));\r
 \r
                return true;\r
        }\r
        \r
-       virtual bool OnGetData(sf::SoundStream::Chunk& data)\r
+       virtual std::wstring print() const override\r
+       {\r
+               return L"oal[" + boost::lexical_cast<std::wstring>(channel_index_) + L"-" + boost::lexical_cast<std::wstring>(sub_index_) + L"|" + format_desc_.name + L"]";\r
+       }\r
+       \r
+       virtual size_t buffer_depth() const override\r
+       {\r
+               return 2;\r
+       }\r
+\r
+       // oal_consumer\r
+       \r
+       virtual bool OnGetData(sf::SoundStream::Chunk& data) override\r
        {               \r
                std::shared_ptr<std::vector<int16_t, tbb::cache_aligned_allocator<int16_t>>> audio_data;                \r
                input_.pop(audio_data);\r
@@ -113,16 +127,6 @@ public:
 \r
                return is_running_;\r
        }\r
-\r
-       virtual std::wstring print() const\r
-       {\r
-               return L"oal[" + boost::lexical_cast<std::wstring>(channel_index_) + L"-" + boost::lexical_cast<std::wstring>(sub_index_) + L"|" + format_desc_.name + L"]";\r
-       }\r
-       \r
-       virtual size_t buffer_depth() const\r
-       {\r
-               return 2;\r
-       }\r
 };\r
 \r
 safe_ptr<core::frame_consumer> create_consumer(const std::vector<std::wstring>& params)\r
index 8100be09f89bb3cbea637c3a6fd4aeb91ac630c0..993cd5b4465a224e27696d1a991542ed92e6a116 100644 (file)
@@ -437,29 +437,31 @@ public:
        ogl_consumer_proxy(const configuration& config)\r
                : config_(config){}\r
        \r
-       virtual void initialize(const core::video_format_desc& format_desc, int channel_index, int sub_index)\r
+       // frame_consumer\r
+\r
+       virtual void initialize(const core::video_format_desc& format_desc, int channel_index, int sub_index) override\r
        {\r
                consumer_.reset();\r
                consumer_.reset(new ogl_consumer(config_, format_desc, channel_index, sub_index));\r
        }\r
        \r
-       virtual bool send(const safe_ptr<core::read_frame>& frame)\r
+       virtual bool send(const safe_ptr<core::read_frame>& frame) override\r
        {\r
                consumer_->send(frame);\r
                return true;\r
        }\r
        \r
-       virtual std::wstring print() const\r
+       virtual std::wstring print() const override\r
        {\r
                return consumer_->print();\r
        }\r
 \r
-       virtual bool has_synchronization_clock() const \r
+       virtual bool has_synchronization_clock() const override\r
        {\r
                return false;\r
        }\r
        \r
-       virtual size_t buffer_depth() const\r
+       virtual size_t buffer_depth() const override\r
        {\r
                return 1;\r
        }\r
index 4793033f714edb5d8d1a2f99a490560a29e9bddd..b6069929f120a37897b8230ac8e952df51f450da 100644 (file)
@@ -214,7 +214,7 @@ bool DiagnosticsCommand::DoExecute()
        }\r
 }\r
 \r
-bool ParamCommand::DoExecute()\r
+bool CallCommand::DoExecute()\r
 {      \r
        //Perform loading of the clip\r
        try\r
@@ -227,16 +227,16 @@ bool ParamCommand::DoExecute()
                \r
                std::wstring result;\r
                if(what == L"B")\r
-                       result = GetChannel()->stage()->param(GetLayerIndex(), false, param);\r
+                       result = GetChannel()->stage()->call(GetLayerIndex(), false, param);\r
                else if(what == L"F")\r
-                       result = GetChannel()->stage()->param(GetLayerIndex(), true, param);\r
+                       result = GetChannel()->stage()->call(GetLayerIndex(), true, param);\r
                else\r
-                       result = GetChannel()->stage()->param(GetLayerIndex(), true, _parameters.at(0) + L" " + param);\r
+                       result = GetChannel()->stage()->call(GetLayerIndex(), true, _parameters.at(0) + L" " + param);\r
        \r
-               CASPAR_LOG(info) << "Executed param: " <<  _parameters[0] << TEXT(" successfully");\r
+               CASPAR_LOG(info) << "Executed call: " <<  _parameters[0] << TEXT(" successfully");\r
                \r
                std::wstringstream replyString;\r
-               replyString << TEXT("201 PARAM OK\r\n") << result << L"\r\n";\r
+               replyString << TEXT("201 CALL OK\r\n") << result << L"\r\n";\r
                \r
                SetReplyString(replyString.str());\r
 \r
@@ -245,7 +245,7 @@ bool ParamCommand::DoExecute()
        catch(...)\r
        {\r
                CASPAR_LOG_CURRENT_EXCEPTION();\r
-               SetReplyString(TEXT("502 PARAM FAILED\r\n"));\r
+               SetReplyString(TEXT("502 CALL FAILED\r\n"));\r
                return false;\r
        }\r
 }\r
index f027be46bc72d26280b0edc062a16b062c43aad4..ff7dda603c64da5d13b1459e7f137124038e143b 100644 (file)
@@ -36,9 +36,9 @@ class DiagnosticsCommand : public AMCPCommandBase<false, AddToQueue, 0>
        bool DoExecute();\r
 };\r
 \r
-class ParamCommand : public AMCPCommandBase<true, AddToQueue, 2>\r
+class CallCommand : public AMCPCommandBase<true, AddToQueue, 2>\r
 {\r
-       std::wstring print() const { return L"ParamCommand";}\r
+       std::wstring print() const { return L"CallCommand";}\r
        bool DoExecute();\r
 };\r
 \r
index c545088d6041cac2e9934e6e38fc1a267cfc14a9..0cb5d7a637babd4316f44a756c19118e91936462 100644 (file)
@@ -312,7 +312,7 @@ AMCPCommandPtr AMCPProtocolStrategy::CommandFactory(const std::wstring& str)
        \r
        if         (s == TEXT("MIXER"))         return std::make_shared<MixerCommand>();\r
        else if(s == TEXT("DIAG"))              return std::make_shared<DiagnosticsCommand>();\r
-       else if(s == TEXT("PARAM"))             return std::make_shared<ParamCommand>();\r
+       else if(s == TEXT("CALL"))              return std::make_shared<CallCommand>();\r
        else if(s == TEXT("SWAP"))              return std::make_shared<SwapCommand>();\r
        else if(s == TEXT("LOAD"))              return std::make_shared<LoadCommand>();\r
        else if(s == TEXT("LOADBG"))    return std::make_shared<LoadbgCommand>();\r
index 1a381ca82c19594bce652d954ad7a5f18ff8ebec..c00871a9f06108100585423474b59c2aa87d7ce2 100644 (file)
@@ -184,7 +184,7 @@ void CIIProtocolStrategy::WriteTemplateData(const std::wstring& templateName, co
 \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
-       producer->param(flashParam.str());\r
+       producer->call(flashParam.str());\r
 \r
        CASPAR_LOG(info) << "Saved an instance of " << templateName << TEXT(" as ") << titleName ;\r
 \r