X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=tests%2Fvideogen.c;h=f114801a8ac1b2cb74f3a55de062e8d6b3f831d3;hb=77d9c4542c129276fedefeca089c5759e5fe6353;hp=626dd0672c8c2bc7354eaa1bf2d4300290501bb0;hpb=528bbdde7f1cb7512cdab7b0fb78dc5da37cef0c;p=ffmpeg diff --git a/tests/videogen.c b/tests/videogen.c index 626dd0672c8..f114801a8ac 100644 --- a/tests/videogen.c +++ b/tests/videogen.c @@ -1,14 +1,33 @@ /* * Generates a synthetic YUV video sequence suitable for codec testing. - * NOTE: no floats are used to guaranty a bit exact output. + * NOTE: No floats are used to guarantee a bit exact output. + * + * Copyright (c) 2002 Fabrice Bellard + * + * This file is part of Libav. + * + * Libav is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Libav is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ + #include +#include #include #define SCALEBITS 8 #define ONE_HALF (1 << (SCALEBITS - 1)) -#define FIX(x) ((int) ((x) * (1L<> SCALEBITS; r = p[3]; g = p[4]; @@ -36,7 +55,7 @@ static void rgb24_to_yuv420p(uint8_t *lum, uint8_t *cb, uint8_t *cr, r1 += r; g1 += g; b1 += b; - lum[1] = (FIX(0.29900) * r + FIX(0.58700) * g + + lum[1] = (FIX(0.29900) * r + FIX(0.58700) * g + FIX(0.11400) * b + ONE_HALF) >> SCALEBITS; p += wrap3; lum += wrap; @@ -47,7 +66,7 @@ static void rgb24_to_yuv420p(uint8_t *lum, uint8_t *cb, uint8_t *cr, r1 += r; g1 += g; b1 += b; - lum[0] = (FIX(0.29900) * r + FIX(0.58700) * g + + lum[0] = (FIX(0.29900) * r + FIX(0.58700) * g + FIX(0.11400) * b + ONE_HALF) >> SCALEBITS; r = p[3]; g = p[4]; @@ -55,12 +74,12 @@ static void rgb24_to_yuv420p(uint8_t *lum, uint8_t *cb, uint8_t *cr, r1 += r; g1 += g; b1 += b; - lum[1] = (FIX(0.29900) * r + FIX(0.58700) * g + + lum[1] = (FIX(0.29900) * r + FIX(0.58700) * g + FIX(0.11400) * b + ONE_HALF) >> SCALEBITS; - - cb[0] = ((- FIX(0.16874) * r1 - FIX(0.33126) * g1 + + + cb[0] = ((- FIX(0.16874) * r1 - FIX(0.33126) * g1 + FIX(0.50000) * b1 + 4 * ONE_HALF - 1) >> (SCALEBITS + 2)) + 128; - cr[0] = ((FIX(0.50000) * r1 - FIX(0.41869) * g1 - + cr[0] = ((FIX(0.50000) * r1 - FIX(0.41869) * g1 - FIX(0.08131) * b1 + 4 * ONE_HALF - 1) >> (SCALEBITS + 2)) + 128; cb++; @@ -78,8 +97,8 @@ static void rgb24_to_yuv420p(uint8_t *lum, uint8_t *cb, uint8_t *cr, #define DEFAULT_HEIGHT 288 #define DEFAULT_NB_PICT 50 /* 2 seconds */ -void pgmyuv_save(const char *filename, int w, int h, - unsigned char *rgb_tab) +static void pgmyuv_save(const char *filename, int w, int h, + unsigned char *rgb_tab) { FILE *f; int i, h2, w2; @@ -115,7 +134,7 @@ void pgmyuv_save(const char *filename, int w, int h, unsigned char *rgb_tab; int width, height, wrap; -void put_pixel(int x, int y, int r, int g, int b) +static void put_pixel(int x, int y, int r, int g, int b) { unsigned char *p; @@ -152,7 +171,7 @@ static unsigned int myrnd(unsigned int *seed_ptr, int n) #define FRAC_ONE (1 << FRAC_BITS) /* cosine approximate with 1-x^2 */ -int int_cos(int a) +static int int_cos(int a) { int v, neg; a = a & (FRAC_ONE - 1); @@ -179,7 +198,7 @@ VObj objs[NB_OBJS]; unsigned int seed = 1; -void gen_image(int num, int w, int h) +static void gen_image(int num, int w, int h) { int r, g, b, x, y, i, dx, dy, x1, y1; unsigned int seed1; @@ -203,7 +222,7 @@ void gen_image(int num, int w, int h) for(y=0;y> FRAC_BITS) & 0xff; g = (((x1 + y1) * 9) >> FRAC_BITS) & 0xff; b = ((x1 * 5) >> FRAC_BITS) & 0xff; @@ -221,7 +240,7 @@ void gen_image(int num, int w, int h) put_pixel(x + NOISE_X, y + NOISE_Y, r, g, b); } } - + /* then moving objects */ for(i=0;i