]> git.sesse.net Git - casparcg/blobdiff - modules/ffmpeg/producer/filter/filter.h
[ffmpeg] Ported 2.0.7 ffmpeg producer to 2.1.0 while still keeping the usage of the...
[casparcg] / modules / ffmpeg / producer / filter / filter.h
index 9eacfceeb550b3854747da13805d7eefd265f4c6..86cdba98f5c0ee3b535d02fea75fd570983d78db 100644 (file)
@@ -51,6 +51,11 @@ static std::wstring append_filter(const std::wstring& filters, const std::wstrin
        return filters + (filters.empty() ? L"" : L",") + filter;
 }
 
+static std::wstring prepend_filter(const std::wstring& filters, const std::wstring& filter)
+{
+       return filter + (filters.empty() ? L"" : L",") + filters;
+}
+
 class filter : boost::noncopyable
 {
 public:
@@ -62,7 +67,8 @@ public:
                boost::rational<int> in_sample_aspect_ratio,
                AVPixelFormat in_pix_fmt,
                std::vector<AVPixelFormat> out_pix_fmts,
-               const std::string& filtergraph);
+               const std::string& filtergraph,
+               bool multithreaded = true);
        filter(filter&& other);
        filter& operator=(filter&& other);
 
@@ -74,10 +80,13 @@ public:
                        
        static bool is_double_rate(const std::wstring& filters)
        {
-               if(boost::to_upper_copy(filters).find(L"YADIF=1") != std::string::npos)
+               if (boost::to_upper_copy(filters).find(L"YADIF=1") != std::string::npos)
                        return true;
-       
-               if(boost::to_upper_copy(filters).find(L"YADIF=3") != std::string::npos)
+
+               if (boost::to_upper_copy(filters).find(L"YADIF=3") != std::string::npos)
+                       return true;
+
+               if (boost::to_upper_copy(filters).find(L"SEPARATEFIELDS") != std::string::npos)
                        return true;
 
                return false;
@@ -85,8 +94,12 @@ public:
 
        static bool is_deinterlacing(const std::wstring& filters)
        {
-               if(boost::to_upper_copy(filters).find(L"YADIF") != std::string::npos)
-                       return true;    
+               if (boost::to_upper_copy(filters).find(L"YADIF") != std::string::npos)
+                       return true;
+
+               if (boost::to_upper_copy(filters).find(L"SEPARATEFIELDS") != std::string::npos)
+                       return true;
+
                return false;
        }