1 #ifndef _EFFECT_CHAIN_H
2 #define _EFFECT_CHAIN_H 1
9 enum PixelFormat { FORMAT_RGB, FORMAT_RGBA };
13 COLORSPACE_REC_709 = 0, // Same as sRGB.
14 COLORSPACE_REC_601_525 = 1,
15 COLORSPACE_REC_601_625 = 2,
22 GAMMA_REC_709 = 2, // Same as Rec. 601.
26 PixelFormat pixel_format;
27 ColorSpace color_space;
28 GammaCurve gamma_curve;
33 EffectChain(unsigned width, unsigned height);
34 void add_input(const ImageFormat &format);
36 // The pointer is owned by EffectChain.
37 Effect *add_effect(EffectId effect);
39 void add_output(const ImageFormat &format);
41 void render(unsigned char *src, unsigned char *dst);
44 unsigned width, height;
45 ImageFormat input_format, output_format;
46 std::vector<Effect *> effects;
48 ColorSpace current_color_space;
49 GammaCurve current_gamma_curve;
53 #endif // !defined(_EFFECT_CHAIN_H)