]> git.sesse.net Git - casparcg/blob - modules/ffmpeg/producer/filter/filter.h
2.0. ogl_consumer: Deinterlacer enabled when running in interlaced channel.
[casparcg] / modules / ffmpeg / producer / filter / filter.h
1 #pragma once\r
2 \r
3 #include <common/memory/safe_ptr.h>\r
4 \r
5 #include <boost/noncopyable.hpp>\r
6 \r
7 #include <string>\r
8 #include <vector>\r
9 \r
10 struct AVFrame;\r
11 enum PixelFormat;\r
12 \r
13 namespace caspar {\r
14                 \r
15 static bool double_rate(const std::wstring& filters)\r
16 {\r
17         if(filters.find(L"YADIF=1") != std::string::npos)\r
18                 return true;\r
19         \r
20         if(filters.find(L"YADIF=3") != std::string::npos)\r
21                 return true;\r
22 \r
23         return false;\r
24 }\r
25 \r
26 class filter : boost::noncopyable\r
27 {\r
28 public:\r
29         filter(const std::wstring& filters = L"", const std::vector<PixelFormat>& pix_fmts = std::vector<PixelFormat>());\r
30         filter(filter&& other);\r
31         filter& operator=(filter&& other);\r
32 \r
33         std::vector<safe_ptr<AVFrame>> execute(const std::shared_ptr<AVFrame>& frame);\r
34 \r
35 private:\r
36         struct implementation;\r
37         safe_ptr<implementation> impl_;\r
38 };\r
39 \r
40 }