Factorize out some stuff from EffectChainTester::run().
[movit] / test_util.h
1 #ifndef _TEST_UTIL_H
2 #define _TEST_UTIL_H 1
3
4 #include "effect_chain.h"
5
6 class EffectChainTester {
7 public:
8         EffectChainTester(const float *data, unsigned width, unsigned height,
9                           MovitPixelFormat pixel_format = FORMAT_GRAYSCALE,
10                           Colorspace color_space = COLORSPACE_sRGB,
11                           GammaCurve gamma_curve = GAMMA_LINEAR);
12         ~EffectChainTester();
13         
14         EffectChain *get_chain() { return &chain; }
15         Input *add_input(const float *data, MovitPixelFormat pixel_format, Colorspace color_space, GammaCurve gamma_curve);
16         Input *add_input(const unsigned char *data, MovitPixelFormat pixel_format, Colorspace color_space, GammaCurve gamma_curve);
17         void run(float *out_data, GLenum format, Colorspace color_space, GammaCurve gamma_curve);
18
19 private:
20         void finalize_chain(Colorspace color_space, GammaCurve gamma_curve);
21
22         EffectChain chain;
23         GLuint fbo, texnum;
24         unsigned width, height;
25         bool finalized;
26 };
27
28 void expect_equal(const float *ref, const float *result, unsigned width, unsigned height, float largest_difference_limit = 1.5 / 255.0, float rms_limit = 0.2 / 255.0);
29
30 #endif  // !defined(_TEST_UTIL_H)