40 #ifndef LIBDCP_TRANSFER_FUNCTION_H
41 #define LIBDCP_TRANSFER_FUNCTION_H
44 #include <boost/thread/mutex.hpp>
45 #include <unordered_map>
64 std::vector<double>
const&
double_lut(
double from,
double to,
int bit_depth,
bool inverse)
const;
65 std::vector<int>
const& int_lut(
double from,
double to,
int bit_depth,
bool inverse,
int scale)
const;
67 virtual bool about_equal (std::shared_ptr<const TransferFunction> other,
double epsilon)
const = 0;
70 virtual std::vector<double> make_double_lut(
double from,
double to,
int bit_depth,
bool inverse)
const = 0;
73 std::vector<int> make_int_lut(
double from,
double to,
int bit_depth,
bool inverse,
int scale)
const;
74 std::vector<double>
const& double_lut_unlocked(
double from,
double to,
int bit_depth,
bool inverse)
const;
90 mutable std::unordered_map<LUTDescriptor, std::vector<double>,
LUTDescriptorHasher> _double_luts;
A transfer function represented by a lookup table.
std::vector< double > const & double_lut(double from, double to, int bit_depth, bool inverse) const
Namespace for everything in libdcp.