Missing include.
[dcpomatic.git] / src / lib / filter.h
index 455b271a2c7b8b18c94f9d8258d1a2eab4654ad2..bcc40dad7c88fa162b63a893f9a804de4e50e1d1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
 
 */
 
+
 /** @file src/filter.h
  *  @brief A class to describe one of FFmpeg's video or audio filters.
  */
 
+
 #ifndef DCPOMATIC_FILTER_H
 #define DCPOMATIC_FILTER_H
 
-#include <boost/utility.hpp>
+
+#include <boost/optional.hpp>
 #include <string>
 #include <vector>
 
+
 /** @class Filter
  *  @brief A class to describe one of FFmpeg's video or audio filters.
  *
  *  8bpp.  FFmpeg quantizes e.g. yuv422p10le down to yuv422p before running such filters, which
  *  we don't really want to do.
  */
-class Filter : public boost::noncopyable
+class Filter
 {
 public:
-       Filter (std::string i, std::string n, std::string c, std::string f);
+       Filter(std::string id, std::string name, std::string category, std::string ffmpeg_string);
 
        /** @return our id */
        std::string id () const {
@@ -60,10 +64,10 @@ public:
                return _category;
        }
 
-       static std::vector<Filter const *> all ();
-       static Filter const * from_id (std::string d);
+       static std::vector<Filter> all ();
+       static boost::optional<Filter> from_id(std::string d);
        static void setup_filters ();
-       static std::string ffmpeg_string (std::vector<Filter const *> const & filters);
+       static std::string ffmpeg_string(std::vector<Filter> const& filters);
 
 private:
 
@@ -76,8 +80,13 @@ private:
        std::string _ffmpeg;
 
        /** all available filters */
-       static std::vector<Filter const *> _filters;
-       static void maybe_add (std::string, std::string, std::string, std::string);
+       static std::vector<Filter> _filters;
 };
 
+
+bool operator==(Filter const& a, Filter const& b);
+bool operator!=(Filter const& a, Filter const& b);
+bool operator<(Filter const& a, Filter const& b);
+
+
 #endif