X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=shell%2Fserver.cpp;h=5d9bf906f80ffbf8e496804fa7c1b7a1b1030ff7;hb=ca4193194e570781a824519791fa7cbdee032946;hp=249ae72e33ec547332795f2feba6a2aaa544dd21;hpb=ff60b8649021d4d41bc15af633a1b4848ee7588c;p=casparcg diff --git a/shell/server.cpp b/shell/server.cpp index 249ae72e3..5d9bf906f 100644 --- a/shell/server.cpp +++ b/shell/server.cpp @@ -26,6 +26,8 @@ #include #include +#include +#include #include #include @@ -49,7 +51,6 @@ #include #include -#include #include #include #include @@ -59,30 +60,31 @@ namespace caspar { using namespace core; using namespace protocol; - struct server::implementation : boost::noncopyable { std::vector> async_servers_; - std::vector> channels_; + std::vector> channels_; ogl_device ogl_; implementation() { - init_ffmpeg(); - init_bluefish(); - init_decklink(); - init_flash(); - init_oal(); - init_ogl(); + ffmpeg::init(); + bluefish::init(); + decklink::init(); + flash::init(); + oal::init(); + ogl::init(); //init_silverlight(); - init_image(); + image::init(); setup_channels(env::properties()); setup_controllers(env::properties()); } ~implementation() - { + { + ffmpeg::uninit(); + async_servers_.clear(); channels_.clear(); } @@ -104,16 +106,16 @@ struct server::implementation : boost::noncopyable try { const std::string name = xml_consumer.first; - if(name == "ogl") - channels_.back()->consumer()->add(index++, create_ogl_consumer(xml_consumer.second)); + if(name == "screen") + channels_.back()->output()->add(index++, ogl::create_consumer(xml_consumer.second)); else if(name == "bluefish") - channels_.back()->consumer()->add(index++, create_bluefish_consumer(xml_consumer.second)); + channels_.back()->output()->add(index++, bluefish::create_consumer(xml_consumer.second)); else if(name == "decklink") - channels_.back()->consumer()->add(index++, create_decklink_consumer(xml_consumer.second)); + channels_.back()->output()->add(index++, decklink::create_consumer(xml_consumer.second)); //else if(name == "file") - // channels_.back()->consumer()->add(index++, create_ffmpeg_consumer(xml_consumer.second)); + // channels_.back()->output()->add(index++, create_ffmpeg_consumer(xml_consumer.second)); else if(name == "audio") - channels_.back()->consumer()->add(index++, make_safe()); + channels_.back()->output()->add(index++, oal::create_consumer()); else if(name != "") CASPAR_LOG(warning) << "Invalid consumer: " << widen(name); }