]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 7 May 2011 19:39:32 +0000 (19:39 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 7 May 2011 19:39:32 +0000 (19:39 +0000)
modules/bluefish/consumer/bluefish_consumer.cpp
modules/decklink/consumer/decklink_consumer.cpp

index 1b4a874bcbeb9646b4bed13b7993a3fa502c03aa..65a5edba712de4cb2838df1a4e9689ef85bf268e 100644 (file)
@@ -104,11 +104,11 @@ struct bluefish_consumer::implementation : boost::noncopyable
        \r
        std::array<blue_dma_buffer_ptr, 3> reserved_frames_;    \r
 \r
-       const bool embed_audio_;\r
+       const bool embedded_audio_;\r
 \r
        executor executor_;\r
 public:\r
-       implementation::implementation(unsigned int device_index, bool embed_audio) \r
+       implementation::implementation(unsigned int device_index, bool embedded_audio) \r
                : model_name_(L"BLUEFISH")\r
                , device_index_(device_index) \r
                , mem_fmt_(MEM_FMT_ARGB_PC)\r
@@ -116,10 +116,10 @@ public:
                , vid_fmt_(VID_FMT_INVALID) \r
                , res_fmt_(RES_FMT_NORMAL) \r
                , engine_mode_(VIDEO_ENGINE_FRAMESTORE)         \r
-               , embed_audio_(embed_audio)\r
+               , embedded_audio_(embedded_audio)\r
                , executor_(print())\r
        {\r
-               if(!BlueVelvetFactory4 || (embed_audio_ && (!encode_hanc_frame || !encode_hanc_frame)))\r
+               if(!BlueVelvetFactory4 || (embedded_audio_ && (!encode_hanc_frame || !encode_hanc_frame)))\r
                        BOOST_THROW_EXCEPTION(bluefish_exception() << msg_info("Bluefish drivers not found."));\r
        }\r
 \r
@@ -211,7 +211,7 @@ public:
                if(BLUE_FAIL(set_card_property(blue_, VIDEO_PREDEFINED_COLOR_MATRIX, vid_fmt_ == VID_FMT_PAL ? MATRIX_601_CGR : MATRIX_709_CGR)))\r
                        CASPAR_LOG(warning) << print() << TEXT(" Failed to set colormatrix to ") << (vid_fmt_ == VID_FMT_PAL ? TEXT("601 CGR") : TEXT("709 CGR")) << TEXT(".");\r
 \r
-               if(!embed_audio_)\r
+               if(!embedded_audio_)\r
                {\r
                        if(BLUE_FAIL(set_card_property(blue_, EMBEDEDDED_AUDIO_OUTPUT, 0))) \r
                                CASPAR_LOG(warning) << TEXT("BLUECARD ERROR: Failed to disable embedded audio.");                       \r
@@ -273,7 +273,7 @@ public:
                        {\r
                                fast_memcpy(reserved_frames_.front()->image_data(), frame->image_data().begin(), frame->image_data().size());\r
                                \r
-                               if(embed_audio_)\r
+                               if(embedded_audio_)\r
                                {               \r
                                        auto frame_audio_data = frame->audio_data().empty() ? silence.data() : const_cast<short*>(frame->audio_data().begin());\r
 \r
@@ -348,12 +348,12 @@ public:
        }\r
 };\r
 \r
-bluefish_consumer::bluefish_consumer(unsigned int device_index, bool embed_audio) : impl_(new implementation(device_index, embed_audio)){}     \r
+bluefish_consumer::bluefish_consumer(unsigned int device_index, bool embedded_audio) : impl_(new implementation(device_index, embedded_audio)){}       \r
 bluefish_consumer::bluefish_consumer(bluefish_consumer&& other) : impl_(std::move(other.impl_)){}\r
 void bluefish_consumer::initialize(const core::video_format_desc& format_desc)\r
 {\r
        // TODO: Ugly\r
-       impl_.reset(new implementation(impl_->device_index_, impl_->embed_audio_));\r
+       impl_.reset(new implementation(impl_->device_index_, impl_->embedded_audio_));\r
        impl_->initialize(format_desc);\r
 }\r
 void bluefish_consumer::send(const safe_ptr<const core::read_frame>& frame){impl_->send(frame);}\r
@@ -404,15 +404,12 @@ safe_ptr<core::frame_consumer> create_bluefish_consumer(const std::vector<std::w
                return core::frame_consumer::empty();\r
                \r
        int device_index = 1;\r
-       bool embed_audio = false;\r
-\r
        if(params.size() > 1)\r
-               device_index = lexical_cast_or_default<int>(params[2]);\r
+               device_index = lexical_cast_or_default<int>(params[1], 1);\r
 \r
-       if(params.size() > 2) \r
-               embed_audio = lexical_cast_or_default<bool>(params[3]);\r
+       bool embedded_audio = std::find(params.begin(), params.end(), L"EMBEDDED_AUDIO") != params.end();\r
 \r
-       return make_safe<bluefish_consumer>(device_index, embed_audio);\r
+       return make_safe<bluefish_consumer>(device_index, embedded_audio);\r
 }\r
 \r
 }
\ No newline at end of file
index 29a39bdff4f63fa99fde6183f23735a718f19ff7..03e4ec37f4429b9c04fb922fe2138999549b1ee0 100644 (file)
@@ -81,53 +81,7 @@ struct configuration
                : device_index(1)\r
                , embedded_audio(false)\r
                , keyer(default_key)\r
-               , latency(default_latency)\r
-       {}\r
-       configuration(const boost::property_tree::ptree& ptree)\r
-               : device_index(1)\r
-               , embedded_audio(false)\r
-               , keyer(default_key)\r
-               , latency(default_latency)\r
-       {       \r
-               auto key_str = ptree.get("key", "default");\r
-               if(key_str == "internal")\r
-                       keyer = internal_key;\r
-               else if(key_str == "external")\r
-                       keyer = external_key;\r
-\r
-               auto latency_str = ptree.get("latency", "default");\r
-               if(latency_str == "normal")\r
-                       latency = normal_latency;\r
-               else if(latency_str == "low")\r
-                       latency = low_latency;\r
-\r
-               device_index = ptree.get("device", 0);\r
-               embedded_audio  = ptree.get("embedded-audio", false);\r
-       }\r
-\r
-       configuration(const std::vector<std::wstring>& params)\r
-               : device_index(1)\r
-               , embedded_audio(false)\r
-               , keyer(default_key)\r
-               , latency(default_latency)\r
-       {\r
-               if(params.size() > 0)\r
-                       device_index = lexical_cast_or_default<int>(params[0], device_index);\r
-\r
-               {\r
-                       auto it = std::find(params.begin(), params.end(), L"INTERNAL_KEY");\r
-                       if(it != params.end())\r
-                               keyer = internal_key;\r
-                       else\r
-                       {\r
-                               auto it = std::find(params.begin(), params.end(), L"EXTERNAL_KEY");\r
-                               if(it != params.end())\r
-                                       keyer = external_key;\r
-                       }\r
-               }\r
-               \r
-               embedded_audio = std::find(params.begin(), params.end(), L"EMBED_AUDIO") != params.end();       \r
-       }\r
+               , latency(default_latency){}\r
 };\r
 \r
 struct decklink_output : public IDeckLinkVideoOutputCallback, public IDeckLinkAudioOutputCallback, boost::noncopyable\r
@@ -442,12 +396,46 @@ safe_ptr<core::frame_consumer> create_decklink_consumer(const std::vector<std::w
        if(params.size() < 1 || params[0] != L"DECKLINK")\r
                return core::frame_consumer::empty();\r
        \r
-       return make_safe<decklink_consumer>(configuration(std::vector<std::wstring>(params.begin()+1, params.end())));\r
+       configuration config;\r
+               \r
+       if(params.size() > 1)\r
+               config.device_index = lexical_cast_or_default<int>(params[1], config.device_index);\r
+               \r
+       auto it = std::find(params.begin(), params.end(), L"INTERNAL_KEY");\r
+       if(it != params.end())\r
+               config.keyer = internal_key;\r
+       else\r
+       {\r
+               auto it = std::find(params.begin(), params.end(), L"EXTERNAL_KEY");\r
+               if(it != params.end())\r
+                       config.keyer = external_key;\r
+       }\r
+               \r
+       config.embedded_audio = std::find(params.begin(), params.end(), L"EMBEDDED_AUDIO") != params.end();\r
+\r
+       return make_safe<decklink_consumer>(config);\r
 }\r
 \r
 safe_ptr<core::frame_consumer> create_decklink_consumer_ptree(const boost::property_tree::ptree& ptree) \r
 {\r
-       return make_safe<decklink_consumer>(configuration(ptree));\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
+       config.device_index = ptree.get("device", 0);\r
+       config.embedded_audio  = ptree.get("embedded-audio", false);\r
+\r
+       return make_safe<decklink_consumer>(config);\r
 }\r
 \r
 }
\ No newline at end of file