]> git.sesse.net Git - movit/blobdiff - ycbcr_input_test.cpp
In EffectChainTester, there is no point in making the FBO and texture persistent.
[movit] / ycbcr_input_test.cpp
index f9be19392cf421ff0e2f127a45188045ded1df86..873a6c5f132c3b0e5a303e4192d5905f0c69c049 100644 (file)
@@ -1,15 +1,17 @@
 // Unit tests for YCbCrInput.
-// FIXME: This class really ought to support mipmaps.
 
+#include <epoxy/gl.h>
 #include <stddef.h>
 
 #include "effect_chain.h"
 #include "gtest/gtest.h"
 #include "test_util.h"
-#include "ycbcr_input.h"
 #include "util.h"
+#include "ycbcr_input.h"
 
-TEST(YCbCrInput, Simple444) {
+namespace movit {
+
+TEST(YCbCrInputTest, Simple444) {
        const int width = 1;
        const int height = 5;
 
@@ -42,6 +44,7 @@ TEST(YCbCrInput, Simple444) {
        YCbCrFormat ycbcr_format;
        ycbcr_format.luma_coefficients = YCBCR_REC_601;
        ycbcr_format.full_range = false;
+       ycbcr_format.num_levels = 256;
        ycbcr_format.chroma_subsampling_x = 1;
        ycbcr_format.chroma_subsampling_y = 1;
        ycbcr_format.cb_x_position = 0.5f;
@@ -62,7 +65,7 @@ TEST(YCbCrInput, Simple444) {
        expect_equal(expected_data, out_data, 4 * width, height, 0.025, 0.002);
 }
 
-TEST(YCbCrInput, FullRangeRec601) {
+TEST(YCbCrInputTest, FullRangeRec601) {
        const int width = 1;
        const int height = 5;
 
@@ -96,6 +99,7 @@ TEST(YCbCrInput, FullRangeRec601) {
        YCbCrFormat ycbcr_format;
        ycbcr_format.luma_coefficients = YCBCR_REC_601;
        ycbcr_format.full_range = true;
+       ycbcr_format.num_levels = 256;
        ycbcr_format.chroma_subsampling_x = 1;
        ycbcr_format.chroma_subsampling_y = 1;
        ycbcr_format.cb_x_position = 0.5f;
@@ -116,7 +120,7 @@ TEST(YCbCrInput, FullRangeRec601) {
        expect_equal(expected_data, out_data, 4 * width, height, 0.025, 0.002);
 }
 
-TEST(YCbCrInput, Rec709) {
+TEST(YCbCrInputTest, Rec709) {
        const int width = 1;
        const int height = 5;
 
@@ -149,6 +153,7 @@ TEST(YCbCrInput, Rec709) {
        YCbCrFormat ycbcr_format;
        ycbcr_format.luma_coefficients = YCBCR_REC_709;
        ycbcr_format.full_range = false;
+       ycbcr_format.num_levels = 256;
        ycbcr_format.chroma_subsampling_x = 1;
        ycbcr_format.chroma_subsampling_y = 1;
        ycbcr_format.cb_x_position = 0.5f;
@@ -169,7 +174,7 @@ TEST(YCbCrInput, Rec709) {
        expect_equal(expected_data, out_data, 4 * width, height, 0.025, 0.002);
 }
 
-TEST(YCbCrInput, Rec2020) {
+TEST(YCbCrInputTest, Rec2020) {
        const int width = 1;
        const int height = 5;
 
@@ -204,6 +209,7 @@ TEST(YCbCrInput, Rec2020) {
        YCbCrFormat ycbcr_format;
        ycbcr_format.luma_coefficients = YCBCR_REC_2020;
        ycbcr_format.full_range = false;
+       ycbcr_format.num_levels = 256;
        ycbcr_format.chroma_subsampling_x = 1;
        ycbcr_format.chroma_subsampling_y = 1;
        ycbcr_format.cb_x_position = 0.5f;
@@ -224,7 +230,7 @@ TEST(YCbCrInput, Rec2020) {
        expect_equal(expected_data, out_data, 4 * width, height, 0.025, 0.002);
 }
 
-TEST(YCbCrInput, Subsampling420) {
+TEST(YCbCrInputTest, Subsampling420) {
        const int width = 4;
        const int height = 4;
 
@@ -265,6 +271,7 @@ TEST(YCbCrInput, Subsampling420) {
        YCbCrFormat ycbcr_format;
        ycbcr_format.luma_coefficients = YCBCR_REC_601;
        ycbcr_format.full_range = false;
+       ycbcr_format.num_levels = 256;
        ycbcr_format.chroma_subsampling_x = 2;
        ycbcr_format.chroma_subsampling_y = 2;
        ycbcr_format.cb_x_position = 0.5f;
@@ -285,7 +292,7 @@ TEST(YCbCrInput, Subsampling420) {
        expect_equal(expected_data, out_data, width, height, 0.01, 0.001);
 }
 
-TEST(YCbCrInput, Subsampling420WithNonCenteredSamples) {
+TEST(YCbCrInputTest, Subsampling420WithNonCenteredSamples) {
        const int width = 4;
        const int height = 4;
 
@@ -326,6 +333,7 @@ TEST(YCbCrInput, Subsampling420WithNonCenteredSamples) {
        YCbCrFormat ycbcr_format;
        ycbcr_format.luma_coefficients = YCBCR_REC_601;
        ycbcr_format.full_range = false;
+       ycbcr_format.num_levels = 256;
        ycbcr_format.chroma_subsampling_x = 2;
        ycbcr_format.chroma_subsampling_y = 2;
        ycbcr_format.cb_x_position = 0.0f;
@@ -347,7 +355,7 @@ TEST(YCbCrInput, Subsampling420WithNonCenteredSamples) {
 }
 
 // Yes, some 4:2:2 formats actually have this craziness.
-TEST(YCbCrInput, DifferentCbAndCrPositioning) {
+TEST(YCbCrInputTest, DifferentCbAndCrPositioning) {
        const int width = 4;
        const int height = 4;
 
@@ -395,6 +403,7 @@ TEST(YCbCrInput, DifferentCbAndCrPositioning) {
        YCbCrFormat ycbcr_format;
        ycbcr_format.luma_coefficients = YCBCR_REC_601;
        ycbcr_format.full_range = false;
+       ycbcr_format.num_levels = 256;
        ycbcr_format.chroma_subsampling_x = 2;
        ycbcr_format.chroma_subsampling_y = 1;
        ycbcr_format.cb_x_position = 0.0f;
@@ -417,7 +426,7 @@ TEST(YCbCrInput, DifferentCbAndCrPositioning) {
        expect_equal(expected_data_blue, out_data, width, height, 0.01, 0.001);
 }
 
-TEST(YCbCrInput, PBO) {
+TEST(YCbCrInputTest, PBO) {
        const int width = 1;
        const int height = 5;
 
@@ -452,6 +461,7 @@ TEST(YCbCrInput, PBO) {
        YCbCrFormat ycbcr_format;
        ycbcr_format.luma_coefficients = YCBCR_REC_601;
        ycbcr_format.full_range = false;
+       ycbcr_format.num_levels = 256;
        ycbcr_format.chroma_subsampling_x = 1;
        ycbcr_format.chroma_subsampling_y = 1;
        ycbcr_format.cb_x_position = 0.5f;
@@ -473,3 +483,5 @@ TEST(YCbCrInput, PBO) {
 
        glDeleteBuffers(1, &pbo);
 }
+
+}  // namespace movit