29 #define FIXP (1 << 16) 
   30 #define MY_PI 205887 // (M_PI * FIX) 
   50     if (a >= 
MY_PI * 3 / 2)
 
   58 static unsigned char tab_r[256 * 256];
 
   59 static unsigned char tab_g[256 * 256];
 
   60 static unsigned char tab_b[256 * 256];
 
   69     int frac_x = x & 0xFFFF;
 
   70     int frac_y = y & 0xFFFF;
 
   71     int s00    = src[( int_x      & 255) + 256 * ( int_y      & 255)];
 
   72     int s01    = src[((int_x + 1) & 255) + 256 * ( int_y      & 255)];
 
   73     int s10    = src[( int_x      & 255) + 256 * ((int_y + 1) & 255)];
 
   74     int s11    = src[((int_x + 1) & 255) + 256 * ((int_y + 1) & 255)];
 
   75     int s0     = (((1 << 16) - frac_x) * s00 + frac_x * s01) >> 8;
 
   76     int s1     = (((1 << 16) - frac_x) * s10 + frac_x * s11) >> 8;
 
   78     return (((1 << 16) - frac_y) * s0 + frac_y * s1) >> 24;
 
   83     const int c = 
h_cos[num % 360];
 
   84     const int s = 
h_sin[num % 360];
 
   86     const int xi = -(w / 2) * c;
 
   87     const int yi =  (w / 2) * s;
 
   89     const int xj = -(h / 2) * s;
 
   90     const int yj = -(h / 2) * c;
 
   97     for (j = 0; j < h; j++) {
 
   98         x       = xprime + xi + 
FIXP * w / 2;
 
  101         y       = yprime + yi + 
FIXP * h / 2;
 
  104         for (i = 0; i < w; i++) {
 
  127     input_file = fopen(filename, 
"rb");
 
  133     if (fread(line, 1, 15, input_file) != 15)
 
  135     for (i = 0; i < 
H; i++) {
 
  136         if (fread(line, 1, 3 * 
W, input_file) != 3 * 
W)
 
  138         for (j = 0; j < 
W; j++) {
 
  139             tab_r[W * i + j] = line[3 * j    ];
 
  140             tab_g[W * i + j] = line[3 * j + 1];
 
  141             tab_b[W * i + j] = line[3 * j + 2];
 
  147     for (i = 0; i < 360; i++) {
 
  148         radian   = 2 * i * 
MY_PI / 360;
 
  157 int main(
int argc, 
char **argv)
 
  164         printf(
"usage: %s image.pnm file|dir\n" 
  165                "generate a test video stream\n", argv[0]);
 
  169     if (!freopen(argv[2], 
"wb", stdout))
 
  186             snprintf(buf, 
sizeof(buf), 
"%s%02d.pgm", argv[2], i);