]> git.sesse.net Git - casparcg/commitdiff
2.0.0.2: Simplified consumer configuration.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 20 May 2011 13:28:31 +0000 (13:28 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 20 May 2011 13:28:31 +0000 (13:28 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@795 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

modules/bluefish/consumer/bluefish_consumer.cpp
modules/decklink/consumer/decklink_consumer.cpp
modules/decklink/interop/DeckLinkAPI_h.h
modules/decklink/interop/DeckLinkAPI_i.c
modules/ffmpeg/consumer/ffmpeg_consumer.cpp
modules/ogl/consumer/ogl_consumer.cpp
shell/caspar.config

index f0bb889a40545b17164232c51f899b1097833b3b..d51b6b9a6568ddb0a1692445486a149963129770 100644 (file)
@@ -434,16 +434,16 @@ safe_ptr<core::frame_consumer> create_bluefish_consumer(const std::vector<std::w
                device_index = lexical_cast_or_default<int>(params[1], 1);\r
 \r
        bool embedded_audio = std::find(params.begin(), params.end(), L"EMBEDDED_AUDIO") != params.end();\r
-       bool key_only = std::find(params.begin(), params.end(), L"KEY_ONLY") != params.end();\r
+       bool key_only           = std::find(params.begin(), params.end(), L"KEY_ONLY")           != params.end();\r
 \r
        return make_safe<bluefish_consumer_proxy>(device_index, embedded_audio, key_only);\r
 }\r
 \r
 safe_ptr<core::frame_consumer> create_bluefish_consumer(const boost::property_tree::ptree& ptree) \r
 {      \r
-       auto device_index = ptree.get("device", 0);\r
+       auto device_index        = ptree.get("device",             0);\r
        auto embedded_audio  = ptree.get("embedded-audio", false);\r
-       bool key_only = (ptree.get("output", "fill_and_key") == "key_only");\r
+       bool key_only            = ptree.get("key-only",           false);\r
 \r
        return make_safe<bluefish_consumer_proxy>(device_index, embedded_audio, key_only);\r
 }\r
index 89d8175932f3563e04be3f2c5f32d2da66dbe673..8afec218e08d31e46003afd8739de74b6bb2c177 100644 (file)
 \r
 namespace caspar { \r
        \r
-enum key\r
-{\r
-       external_key,\r
-       internal_key,\r
-       default_key\r
-};\r
-\r
-enum latency\r
-{\r
-       low_latency,\r
-       normal_latency,\r
-       default_latency\r
-};\r
-\r
-enum output_pixels\r
-{\r
-       fill_and_key,\r
-       key_only\r
-};\r
-\r
 struct configuration\r
 {\r
        size_t  device_index;\r
        bool    embedded_audio;\r
-       key             keyer;\r
-       latency latency;\r
-       output_pixels  output;\r
+       bool    external_key;\r
+       bool    low_latency;\r
+       bool    key_only;\r
        \r
        configuration()\r
                : device_index(1)\r
                , embedded_audio(false)\r
-               , keyer(default_key)\r
-               , latency(default_latency)\r
-               , output(fill_and_key){}\r
+               , external_key(false)\r
+               , low_latency(false)\r
+               , key_only(false){}\r
 };\r
 \r
 class decklink_frame_adapter : public IDeckLinkVideoFrame\r
@@ -170,8 +150,8 @@ public:
                if(config.embedded_audio)\r
                        enable_audio();\r
 \r
-               set_latency(config.latency);                            \r
-               set_keyer(config.keyer);\r
+               set_latency(config.low_latency);                                \r
+               set_keyer(config.external_key);\r
                                                                \r
                for(size_t n = 0; n < buffer_size_; ++n)\r
                        schedule_next_video(core::read_frame::empty());\r
@@ -200,25 +180,23 @@ public:
                }\r
        }\r
                        \r
-       void set_latency(latency latency)\r
+       void set_latency(bool low_latency)\r
        {               \r
-               if(latency == normal_latency)\r
+               if(!low_latency)\r
                {\r
                        configuration_->SetFlag(bmdDeckLinkConfigLowLatencyVideoOutput, false);\r
                        CASPAR_LOG(info) << print() << L" Enabled normal-latency mode";\r
                }\r
-               else if(latency == low_latency)\r
+               else\r
                {                       \r
                        configuration_->SetFlag(bmdDeckLinkConfigLowLatencyVideoOutput, true);\r
                        CASPAR_LOG(info) << print() << L" Enabled low-latency mode";\r
                }\r
-               else\r
-                       CASPAR_LOG(info) << print() << L" Uses driver latency settings.";       \r
        }\r
 \r
-       void set_keyer(key keyer)\r
+       void set_keyer(bool external_key)\r
        {\r
-               if(keyer == internal_key) \r
+               if(!external_key) \r
                {\r
                        if(FAILED(keyer_->Enable(FALSE)))                       \r
                                CASPAR_LOG(error) << print() << L" Failed to enable internal keyer.";                   \r
@@ -227,7 +205,7 @@ public:
                        else\r
                                CASPAR_LOG(info) << print() << L" Enabled internal keyer.";             \r
                }\r
-               else if(keyer == external_key)\r
+               else\r
                {\r
                        if(FAILED(keyer_->Enable(TRUE)))                        \r
                                CASPAR_LOG(error) << print() << L" Failed to enable external keyer.";   \r
@@ -236,8 +214,6 @@ public:
                        else\r
                                CASPAR_LOG(info) << print() << L" Enabled external keyer.";                     \r
                }\r
-               else\r
-                       CASPAR_LOG(info) << print() << L" Uses driver keyer settings."; \r
        }\r
        \r
        void enable_audio()\r
@@ -403,7 +379,7 @@ public:
 \r
        virtual bool key_only() const\r
        {\r
-               return (config_.output == caspar::key_only);\r
+               return config_.key_only;\r
        }\r
 };     \r
 \r
@@ -416,19 +392,11 @@ safe_ptr<core::frame_consumer> create_decklink_consumer(const std::vector<std::w
                \r
        if(params.size() > 1)\r
                config.device_index = lexical_cast_or_default<int>(params[1], config.device_index);\r
-               \r
-       if(std::find(params.begin(), params.end(), L"INTERNAL_KEY") != params.end())\r
-               config.keyer = internal_key;\r
-       else if(std::find(params.begin(), params.end(), L"EXTERNAL_KEY") != params.end())\r
-               config.keyer = external_key;\r
        \r
-       if(std::find(params.begin(), params.end(), L"LOW_LATENCY") != params.end())\r
-               config.latency = low_latency;\r
-       else if(std::find(params.begin(), params.end(), L"NORMAL_LATENCY") != params.end())\r
-               config.latency = normal_latency;\r
-               \r
-       config.embedded_audio = std::find(params.begin(), params.end(), L"EMBEDDED_AUDIO") != params.end();\r
-       config.output = std::find(params.begin(), params.end(), L"KEY_ONLY") != params.end() ? key_only : fill_and_key;\r
+       config.external_key             = std::find(params.begin(), params.end(), L"EXTERNAL_KEY")       != params.end();\r
+       config.low_latency              = std::find(params.begin(), params.end(), L"LOW_LATENCY")        != params.end();\r
+       config.embedded_audio   = std::find(params.begin(), params.end(), L"EMBEDDED_AUDIO") != params.end();\r
+       config.key_only                 = std::find(params.begin(), params.end(), L"KEY_ONLY")           != params.end();\r
 \r
        return make_safe<decklink_consumer_proxy>(config);\r
 }\r
@@ -437,24 +405,11 @@ safe_ptr<core::frame_consumer> create_decklink_consumer(const boost::property_tr
 {\r
        configuration config;\r
 \r
-       auto key_str = ptree.get("key", "default");\r
-       if(key_str == "internal")\r
-               config.keyer = internal_key;\r
-       else if(key_str == "external")\r
-               config.keyer = external_key;\r
-\r
-       auto latency_str = ptree.get("latency", "default");\r
-       if(latency_str == "normal")\r
-               config.latency = normal_latency;\r
-       else if(latency_str == "low")\r
-               config.latency = low_latency;\r
-\r
-       auto output_str = ptree.get("output", "fill_and_key");\r
-       if(output_str == "key_only")\r
-               config.output = key_only;\r
-\r
-       config.device_index = ptree.get("device", 0);\r
-       config.embedded_audio  = ptree.get("embedded-audio", false);\r
+       config.external_key             = ptree.get("external-key",       false);\r
+       config.low_latency              = ptree.get("low-latency",        false);\r
+       config.key_only                 = ptree.get("key-only",           false);\r
+       config.device_index             = ptree.get("device",             0);\r
+       config.embedded_audio   = ptree.get("embedded-audio", false);\r
 \r
        return make_safe<decklink_consumer_proxy>(config);\r
 }\r
index 5d4c2fa7a15dfd8aa7b4b318544531db2d45c9af..1d634ba94b6e9017b59ef9cf6190fa2c44dc9a28 100644 (file)
@@ -4,7 +4,7 @@
 \r
 \r
  /* File created by MIDL compiler version 7.00.0555 */\r
-/* at Wed May 18 23:30:51 2011\r
+/* at Fri May 20 15:23:50 2011\r
  */\r
 /* Compiler settings for interop\DeckLinkAPI.idl:\r
     Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 \r
index 71e2e0f8bb275903da5f9cda83cf1b464c22132c..327207bceccde4b541ed6760aefb08b91a2637a6 100644 (file)
@@ -6,7 +6,7 @@
 \r
 \r
  /* File created by MIDL compiler version 7.00.0555 */\r
-/* at Wed May 18 23:30:51 2011\r
+/* at Fri May 20 15:23:50 2011\r
  */\r
 /* Compiler settings for interop\DeckLinkAPI.idl:\r
     Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 \r
index 2bf4444557b1cb2269d4a67acabe40464c3f20b4..510b318fd40fa5f79fbb6f7941ceaa822220909a 100644 (file)
@@ -446,7 +446,7 @@ safe_ptr<core::frame_consumer> create_ffmpeg_consumer(const std::vector<std::wst
 safe_ptr<core::frame_consumer> create_ffmpeg_consumer(const boost::property_tree::ptree& ptree)\r
 {\r
        std::string filename = ptree.get<std::string>("filename");\r
-       bool key_only = (ptree.get("output", "fill_and_key") == "key_only");\r
+       bool key_only            = ptree.get("key-only", false);\r
        \r
        return make_safe<ffmpeg_consumer_proxy>(env::media_folder() + widen(filename), key_only);\r
 }\r
index 76019197677c76ced6fe134bcd65ccca7ae6de2b..6def1adcf7d96a9c6f374a7a90207b1055e7c7c2 100644 (file)
@@ -368,7 +368,7 @@ safe_ptr<core::frame_consumer> create_ogl_consumer(const boost::property_tree::p
        else if(key_str == "uniform_to_fill")\r
                stretch = stretch::uniform_to_fill;\r
 \r
-       bool key_only = (ptree.get("output", "fill_and_key") == "key_only");\r
+       bool key_only = ptree.get("key-only", false);\r
 \r
        return make_safe<ogl_consumer_proxy>(screen_index, stretch, windowed, key_only);\r
 }\r
index 1083ec8970c915c39748cf57dcd690ecfe6bcfbb..23355fcc53f88ed3b70cccc52981ce1f75428e12 100644 (file)
@@ -36,9 +36,9 @@
         <decklink>\r
           <device>1</device>                    <!-- [1..] Specifies which device to use. -->\r
           <embedded-audio>true</embedded-audio> <!-- [true/false] -->\r
-          <latency>low</latency>                <!-- [low/normal/default] - Experimental feature that reduces frame delay by 3 frames or less. -->\r
-          <key>external</key>                   <!-- [internal/external]-->\r
-          <output>default</output>              <!-- [key_only/default] - Copies key into fill channels. -->\r
+          <low-latency>false</low-latency>      <!-- [true/false] - Experimental feature that reduces frame delay by 3 frames or less. -->\r
+          <external-key>true</external-key>     <!-- [true/false]-->\r
+          <key-only>false</key-only>            <!-- [true/false] - Copies key into fill channels. -->\r
         </decklink>\r
         <!--<ogl>        \r
           <device>1</device>\r