[cvs] / xvidcore / examples / xvid_encraw.c Repository:
ViewVC logotype

Diff of /xvidcore/examples/xvid_encraw.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.2.2, Mon Jan 13 00:36:27 2003 UTC revision 1.8, Sun Feb 9 19:32:52 2003 UTC
# Line 101  Line 101 
101  static int   ARG_HINTMODE = HINT_MODE_NONE;  static int   ARG_HINTMODE = HINT_MODE_NONE;
102  static int   XDIM = 0;  static int   XDIM = 0;
103  static int   YDIM = 0;  static int   YDIM = 0;
 static int   ARG_BQRATIO = 150;  
 static int   ARG_BQOFFSET = 100;  
 static int   ARG_MAXBFRAMES = 0;  
104  #define IMAGE_SIZE(x,y) ((x)*(y)*3/2)  #define IMAGE_SIZE(x,y) ((x)*(y)*3/2)
105    
106  #define MAX(A,B) ( ((A)>(B)) ? (A) : (B) )  #define MAX(A,B) ( ((A)>(B)) ? (A) : (B) )
# Line 203  Line 200 
200                          i++;                          i++;
201                          ARG_BITRATE = atoi(argv[i]);                          ARG_BITRATE = atoi(argv[i]);
202                  }                  }
                 else if (strcmp("-bn", argv[i]) == 0 && i < argc - 1 ) {  
                         i++;  
                         ARG_MAXBFRAMES = atoi(argv[i]);  
                 }  
                 else if (strcmp("-bqr", argv[i]) == 0 && i < argc - 1 ) {  
                         i++;  
                         ARG_BQRATIO = atoi(argv[i]);  
                 }  
                 else if (strcmp("-bqo", argv[i]) == 0 && i < argc - 1 ) {  
                         i++;  
                         ARG_BQOFFSET = atoi(argv[i]);  
                 }  
203                  else if (strcmp("-q", argv[i]) == 0 && i < argc - 1 ) {                  else if (strcmp("-q", argv[i]) == 0 && i < argc - 1 ) {
204                          i++;                          i++;
205                          ARG_QUALITY = atoi(argv[i]);                          ARG_QUALITY = atoi(argv[i]);
# Line 447  Line 432 
432                  totalenctime += enctime;                  totalenctime += enctime;
433                  totalsize += m4v_size;                  totalsize += m4v_size;
434    
435                  {                  printf("Frame %5d: intra %1d, enctime=%6.1f ms, size=%6dbytes\n",
436                          char *type;                             (int)filenr, (int)frame_type, (float)enctime, (int)m4v_size);
   
                         switch(frame_type) {  
                         case 0: type = "P"; break;  
                         case 1: type = "I"; break;  
                         case 2: type = "B"; break;  
                         default: type = "N"; break;  
                         }  
   
                         printf("Frame %5d: type %s, enctime=%6.1f ms, size=%6d bytes\n",  
                                    (int)filenr, type, (float)enctime, (int)m4v_size);  
   
                 }  
437    
438  /*****************************************************************************  /*****************************************************************************
439   *                       Save hints to file   *                       Save hints to file
# Line 518  Line 491 
491          totalsize    /= filenr;          totalsize    /= filenr;
492          totalenctime /= filenr;          totalenctime /= filenr;
493    
494          printf("Avg: enctime %5.2f ms, %5.2f fps, size %7d bytes\n",          printf("Avg: enctime %5.2f ms, %5.2f fps, filesize %7d bytes\n",
495                     totalenctime, 1000/totalenctime, (int)totalsize);                     totalenctime, 1000/totalenctime, (int)totalsize);
496    
497  /*****************************************************************************  /*****************************************************************************
# Line 563  Line 536 
536  /* Return time elapsed time in miliseconds since the program started */  /* Return time elapsed time in miliseconds since the program started */
537  static double msecond()  static double msecond()
538  {  {
539  #ifndef _MSC_VER  #ifndef WIN32
540          struct timeval  tv;          struct timeval  tv;
541          gettimeofday(&tv, 0);          gettimeofday(&tv, 0);
542          return tv.tv_sec*1.0e3 + tv.tv_usec * 1.0e-3;          return tv.tv_sec*1.0e3 + tv.tv_usec * 1.0e-3;
# Line 586  Line 559 
559          fprintf(stderr, " -w integer     : frame width ([1.2048])\n");          fprintf(stderr, " -w integer     : frame width ([1.2048])\n");
560          fprintf(stderr, " -h integer     : frame height ([1.2048])\n");          fprintf(stderr, " -h integer     : frame height ([1.2048])\n");
561          fprintf(stderr, " -b integer     : target bitrate (>0 | default=900kbit)\n");          fprintf(stderr, " -b integer     : target bitrate (>0 | default=900kbit)\n");
         fprintf(stderr, " -b integer     : target bitrate (>0 | default=900kbit)\n");  
         fprintf(stderr, " -bn integer    : max bframes (default=0)\n");  
         fprintf(stderr, " -bqr integer   : bframe quantizer ratio (default=150)\n");  
         fprintf(stderr, " -bqo integer   : bframe quantizer offset (default=100)\n");  
562          fprintf(stderr, " -f float       : target framerate (>0)\n");          fprintf(stderr, " -f float       : target framerate (>0)\n");
563          fprintf(stderr, " -i string      : input filename (default=stdin)\n");          fprintf(stderr, " -i string      : input filename (default=stdin)\n");
564          fprintf(stderr, " -t integer     : input data type (yuv=0, pgm=1)\n");          fprintf(stderr, " -t integer     : input data type (yuv=0, pgm=1)\n");
# Line 730  Line 699 
699          xparam.min_quantizer = ARG_MINQUANT;          xparam.min_quantizer = ARG_MINQUANT;
700          xparam.max_quantizer = ARG_MAXQUANT;          xparam.max_quantizer = ARG_MAXQUANT;
701          xparam.max_key_interval = (int)ARG_FRAMERATE*10;          xparam.max_key_interval = (int)ARG_FRAMERATE*10;
         xparam.bquant_ratio = ARG_BQRATIO;  
         xparam.bquant_offset = ARG_BQOFFSET;  
         xparam.max_bframes = ARG_MAXBFRAMES;  
         xparam.frame_drop_ratio = 0;  
         xparam.global = 0;  
702    
703          /* I use a small value here, since will not encode whole movies, but short clips */          /* I use a small value here, since will not encode whole movies, but short clips */
704    
# Line 771  Line 735 
735          xframe.intra = -1; /* let the codec decide between I-frame (1) and P-frame (0) */          xframe.intra = -1; /* let the codec decide between I-frame (1) and P-frame (0) */
736    
737          xframe.quant = ARG_QUANTI;      /* is quant != 0, use a fixed quant (and ignore bitrate) */          xframe.quant = ARG_QUANTI;      /* is quant != 0, use a fixed quant (and ignore bitrate) */
         xframe.bquant = 0;  
738    
739          xframe.motion = motion_presets[ARG_QUALITY];          xframe.motion = motion_presets[ARG_QUALITY];
740          xframe.general = general_presets[ARG_QUALITY];          xframe.general = general_presets[ARG_QUALITY];
741          xframe.quant_intra_matrix = xframe.quant_inter_matrix = NULL;          xframe.quant_intra_matrix = xframe.quant_inter_matrix = NULL;
         xframe.stride = XDIM;  
742    
743          xframe.hint.hintstream = hints_buffer;          xframe.hint.hintstream = hints_buffer;
744    

Legend:
Removed from v.1.1.2.2  
changed lines
  Added in v.1.8

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4