#pragma warning (pop)\r
#endif\r
\r
-namespace caspar {\r
+namespace caspar { namespace ogl {\r
\r
enum stretch\r
{\r
size_t screen_index;\r
stretch stretch;\r
bool windowed;\r
+ bool auto_deinterlace;\r
bool key_only;\r
\r
configuration()\r
: screen_index(0)\r
, stretch(fill)\r
, windowed(true)\r
+ , auto_deinterlace(true)\r
, key_only(false)\r
{\r
}\r
tbb::atomic<bool> is_running_;\r
\r
\r
- filter filter_;\r
+ ffmpeg::filter filter_;\r
public:\r
ogl_consumer(const configuration& config, const core::video_format_desc& format_desc) \r
: config_(config)\r
, square_height_(format_desc.square_height)\r
, graph_(diagnostics::create_graph(narrow(print())))\r
, input_buffer_(core::consumer_buffer_depth()-1)\r
- , filter_(format_desc.field_mode == core::field_mode::progressive ? L"" : L"YADIF=0:-1", boost::assign::list_of(PIX_FMT_BGRA))\r
+ , filter_(format_desc.field_mode == core::field_mode::progressive || !config.auto_deinterlace ? L"" : L"YADIF=0:-1", boost::assign::list_of(PIX_FMT_BGRA))\r
{ \r
frame_buffer_.set_capacity(2);\r
\r
}\r
}; \r
\r
-safe_ptr<core::frame_consumer> create_ogl_consumer(const std::vector<std::wstring>& params)\r
+safe_ptr<core::frame_consumer> create_consumer(const std::vector<std::wstring>& params)\r
{\r
if(params.size() < 1 || params[0] != L"SCREEN")\r
return core::frame_consumer::empty();\r
return make_safe<ogl_consumer_proxy>(config);\r
}\r
\r
-safe_ptr<core::frame_consumer> create_ogl_consumer(const boost::property_tree::ptree& ptree) \r
+safe_ptr<core::frame_consumer> create_consumer(const boost::property_tree::ptree& ptree) \r
{\r
configuration config;\r
- config.screen_index = ptree.get("device", config.screen_index);\r
- config.windowed = ptree.get("windowed", config.windowed);\r
- config.key_only = ptree.get("key-only", config.key_only );\r
+ config.screen_index = ptree.get("device", config.screen_index);\r
+ config.windowed = ptree.get("windowed", config.windowed);\r
+ config.key_only = ptree.get("key-only", config.key_only);\r
+ config.auto_deinterlace = ptree.get("auto-deinterlace", config.auto_deinterlace);\r
\r
auto stretch_str = ptree.get("stretch", "default");\r
if(stretch_str == "uniform")\r
return make_safe<ogl_consumer_proxy>(config);\r
}\r
\r
-}
\ No newline at end of file
+}}
\ No newline at end of file