29 #define ONE_HALF (1 << (SCALEBITS - 1))
30 #define FIX(x) ((int) ((x) * (1L << SCALEBITS) + 0.5))
35 int wrap, wrap3, x, y;
36 int r,
g,
b, r1, g1, b1;
42 for (y = 0; y <
height; y += 2) {
43 for (x = 0; x <
width; x += 2) {
50 lum[0] = (
FIX(0.29900) * r +
FIX(0.58700) * g +
58 lum[1] = (
FIX(0.29900) * r +
FIX(0.58700) * g +
69 lum[0] = (
FIX(0.29900) * r +
FIX(0.58700) * g +
77 lum[1] = (
FIX(0.29900) * r +
FIX(0.58700) * g +
80 cb[0] = 128 + ((-
FIX(0.16874) * r1 -
85 cr[0] = 128 + ((
FIX(0.50000) * r1 -
102 #define DEFAULT_WIDTH 352
103 #define DEFAULT_HEIGHT 288
104 #define DEFAULT_NB_PICT 50
111 unsigned char *cb, *cr;
112 unsigned char *lum_tab, *cb_tab, *cr_tab;
115 cb_tab =
malloc((w * h) / 4);
116 cr_tab =
malloc((w * h) / 4);
120 f = fopen(filename,
"wb");
121 fprintf(f,
"P5\n%d %d\n%d\n", w, (h * 3) / 2, 255);
122 fwrite(lum_tab, 1, w * h, f);
127 for (i = 0; i < h2; i++) {
128 fwrite(cb, 1, w2, f);
129 fwrite(cr, 1, w2, f);
147 if (x < 0 || x >=
width ||
157 static unsigned int myrnd(
unsigned int *seed_ptr,
int n)
159 unsigned int seed, val;
162 seed = (seed * 314159) + 1;
177 #define FRAC_ONE (1 << FRAC_BITS)
209 int r,
g,
b, x, y, i, dx, dy, x1, y1;
213 for (i = 0; i <
NB_OBJS; i++) {
228 for (y = 0; y < h; y++) {
229 for (x = 0; x < w; x++) {
233 g = (((x1 + y1) * 9) >>
FRAC_BITS) & 0xff;
241 for (y = 0; y <
NOISE_W; y++) {
242 for (x = 0; x <
NOISE_W; x++) {
243 r =
myrnd(&seed1, 256);
244 g =
myrnd(&seed1, 256);
245 b =
myrnd(&seed1, 256);
251 for (i = 0; i <
NB_OBJS; i++) {
254 for (y = 0; y < p->
h; y++) {
255 for (x = 0; x < p->
w; x++) {
260 r +=
myrnd(&seed1, 50);
261 g +=
myrnd(&seed1, 50);
262 b +=
myrnd(&seed1, 50);
271 int main(
int argc,
char **argv)
278 "generate a test video stream\n", argv[0]);
291 snprintf(buf,
sizeof(buf),
"%s%02d.pgm", argv[1], i);