+#include "init.h"
#include "test_util.h"
#include "flat_input.h"
#include "gtest/gtest.h"
EffectChainTester::EffectChainTester(const float *data, unsigned width, unsigned height,
MovitPixelFormat pixel_format, Colorspace color_space, GammaCurve gamma_curve)
- : chain(width, height), width(width), height(height)
+ : chain(width, height), width(width), height(height), finalized(false)
{
+ init_movit();
+
if (data != NULL) {
add_input(data, pixel_format, color_space, gamma_curve);
}
void EffectChainTester::run(float *out_data, GLenum format, Colorspace color_space, GammaCurve gamma_curve)
{
- ImageFormat image_format;
- image_format.color_space = color_space;
- image_format.gamma_curve = gamma_curve;
- chain.add_output(image_format);
- chain.finalize();
+ if (!finalized) {
+ ImageFormat image_format;
+ image_format.color_space = color_space;
+ image_format.gamma_curve = gamma_curve;
+ chain.add_output(image_format);
+ chain.finalize();
+ finalized = true;
+ }
chain.render_to_fbo(fbo, width, height);