]> git.sesse.net Git - casparcg/blob - modules/ffmpeg/producer/filter/filter.h
de89332b90d7b862c15252a4af2257c298018d56
[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 \r
12 namespace caspar {\r
13                 \r
14 static bool double_rate(const std::wstring& filters)\r
15 {\r
16         if(filters.find(L"YADIF=1") != std::string::npos)\r
17                 return true;\r
18         \r
19         if(filters.find(L"YADIF=3") != std::string::npos)\r
20                 return true;\r
21 \r
22         return false;\r
23 }\r
24 \r
25 class filter : boost::noncopyable\r
26 {\r
27 public:\r
28         filter(const std::wstring& filters = L"");\r
29         filter(filter&& other);\r
30         filter& operator=(filter&& other);\r
31 \r
32         std::vector<safe_ptr<AVFrame>> execute(const std::shared_ptr<AVFrame>& frame);\r
33 \r
34 private:\r
35         struct implementation;\r
36         safe_ptr<implementation> impl_;\r
37 };\r
38 \r
39 }