X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Ffilter.h;h=39687fcd45981dce485f882d452d4a8bbe44591d;hb=e60bb3e51bd1508b149e6b8f6608f09b5196ae26;hp=20c55049c4367dad7fb8dae691e437078245fb34;hpb=bb767c7e338414beee132af3e96829c1448e214b;p=dcpomatic.git diff --git a/src/lib/filter.h b/src/lib/filter.h index 20c55049c..39687fcd4 100644 --- a/src/lib/filter.h +++ b/src/lib/filter.h @@ -21,16 +21,21 @@ * @brief A class to describe one of FFmpeg's video or post-processing filters. */ -#ifndef DVDOMATIC_FILTER_H -#define DVDOMATIC_FILTER_H +#ifndef DCPOMATIC_FILTER_H +#define DCPOMATIC_FILTER_H +#include #include #include /** @class Filter - * @brief A class to describe one of FFmpeg's video or post-processing filters. + * @brief A class to describe one of FFmpeg's video filters. + * + * We don't support FFmpeg's post-processing filters here as they cannot cope with greater than + * 8bpp. FFmpeg quantizes e.g. yuv422p10le down to yuv422p before running such filters, which + * we don't really want to do. */ -class Filter +class Filter : public boost::noncopyable { public: Filter (std::string, std::string, std::string, std::string); @@ -49,16 +54,15 @@ public: std::string vf () const { return _vf; } - - /** @return string for a FFmpeg post-processing descriptor */ - std::string pp () const { - return _pp; + + std::string category () const { + return _category; } - + static std::vector all (); static Filter const * from_id (std::string); static void setup_filters (); - static std::pair ffmpeg_strings (std::vector const &); + static std::string ffmpeg_string (std::vector const &); private: @@ -66,13 +70,13 @@ private: std::string _id; /** user-visible name */ std::string _name; + std::string _category; /** string for a FFmpeg video filter descriptor */ std::string _vf; - /** string for a FFmpeg post-processing descriptor */ - std::string _pp; /** all available filters */ static std::vector _filters; + static void maybe_add (std::string, std::string, std::string, std::string); }; #endif