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; |
554 |
static void usage() |
static void usage() |
555 |
{ |
{ |
556 |
|
|
557 |
fprintf(stderr, "Usage : xvid_stat [OPTIONS]\n"); |
fprintf(stderr, "Usage : xvid_encraw [OPTIONS]\n"); |
558 |
fprintf(stderr, "Options :\n"); |
fprintf(stderr, "Options :\n"); |
559 |
|
fprintf(stderr, " -asm : use assembly code\n"); |
560 |
fprintf(stderr, " -w integer : frame width ([1.2048])\n"); |
fprintf(stderr, " -w integer : frame width ([1.2048])\n"); |
561 |
fprintf(stderr, " -h integer : frame height ([1.2048])\n"); |
fprintf(stderr, " -h integer : frame height ([1.2048])\n"); |
562 |
fprintf(stderr, " -b integer : target bitrate (>0 | default=900kbit)\n"); |
fprintf(stderr, " -b integer : target bitrate (>0 | default=900kbit)\n"); |
565 |
fprintf(stderr, " -t integer : input data type (yuv=0, pgm=1)\n"); |
fprintf(stderr, " -t integer : input data type (yuv=0, pgm=1)\n"); |
566 |
fprintf(stderr, " -n integer : number of frames to encode\n"); |
fprintf(stderr, " -n integer : number of frames to encode\n"); |
567 |
fprintf(stderr, " -q integer : quality ([0..5])\n"); |
fprintf(stderr, " -q integer : quality ([0..5])\n"); |
|
fprintf(stderr, " -d boolean : save decoder output (0 False*, !=0 True)\n"); |
|
568 |
fprintf(stderr, " -m boolean : save mpeg4 raw stream (0 False*, !=0 True)\n"); |
fprintf(stderr, " -m boolean : save mpeg4 raw stream (0 False*, !=0 True)\n"); |
569 |
fprintf(stderr, " -o string : output container filename (only usefull when -m 1 is used) :\n"); |
fprintf(stderr, " -o string : output container filename (only usefull when -m 1 is used) :\n"); |
570 |
fprintf(stderr, " When this option is not used : one file per encoded frame\n"); |
fprintf(stderr, " When this option is not used : one file per encoded frame\n"); |
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 = 150; |
|
|
xparam.bquant_offset = 100; |
|
|
xparam.max_bframes = 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 |
|
|
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 |
|
|