40 |
************************************************************************/ |
************************************************************************/ |
41 |
|
|
42 |
#include <stdio.h> |
#include <stdio.h> |
|
//#include <io.h> |
|
43 |
#include <stdlib.h> |
#include <stdlib.h> |
44 |
#include <string.h> |
#include <string.h> |
45 |
#include <math.h> |
#include <math.h> |
46 |
|
#include <ctype.h> |
47 |
#ifndef WIN32 |
#ifndef WIN32 |
48 |
#include <sys/time.h> |
#include <sys/time.h> |
49 |
#else |
#else |
253 |
static int ARG_VBVPEAKRATE = 0; |
static int ARG_VBVPEAKRATE = 0; |
254 |
static int ARG_THREADS = 0; |
static int ARG_THREADS = 0; |
255 |
static int ARG_SLICES = 1; |
static int ARG_SLICES = 1; |
|
static int ARG_VFR = 0; |
|
256 |
static int ARG_PROGRESS = 0; |
static int ARG_PROGRESS = 0; |
257 |
static int ARG_COLORSPACE = XVID_CSP_YV12; |
static int ARG_COLORSPACE = XVID_CSP_YV12; |
258 |
/* the path where to save output */ |
/* the path where to save output */ |
780 |
else |
else |
781 |
ARG_PROGRESS = DEFAULT_PROGRESS; |
ARG_PROGRESS = DEFAULT_PROGRESS; |
782 |
} else if (strcmp("-help", argv[i]) == 0) { |
} else if (strcmp("-help", argv[i]) == 0) { |
783 |
|
if (i < argc - 1 && strcmp("zones", argv[i+1]) == 0) { |
784 |
|
fprintf(stderr, "Zones options\n\ |
785 |
|
NB: You can define up to %d zones using the -zones option as described below.\n\ |
786 |
|
\n\ |
787 |
|
-zones start,mode,value[,options][/start,mode,value[,options]]...\n\ |
788 |
|
\n\ |
789 |
|
Parameters of a zone use the comma (,) as a delimiter. Multiple zones are\n\ |
790 |
|
separated by a slash (/). The end of each zone is defined by either the start\n\ |
791 |
|
of the following zone or the last frame of the input file.\n\ |
792 |
|
\n\ |
793 |
|
start : start frame of the zone\n\ |
794 |
|
mode : weight zone = w, quantizer zone = q\n\ |
795 |
|
value : depending on mode either the zone's weight or quantizer\n\ |
796 |
|
options : enable certain encoder features for the zone. Each feature is\n\ |
797 |
|
represented by a single letter. An integer number stands for\n\ |
798 |
|
b-frame sensitivity. To enable multiple features at the same time\n\ |
799 |
|
combine the appropriate symbols without any delimiting characters.\n\ |
800 |
|
K = begin with keyframe\n\ |
801 |
|
O = enable chroma optimizer\n\ |
802 |
|
G = greyscale encoding\n\ |
803 |
|
C = cartoon mode\n\ |
804 |
|
integer = b-frame sensitivity\n\ |
805 |
|
\n\ |
806 |
|
Example:\n\ |
807 |
|
to create a first zone starting at frame 0 with weight 1.0, all options\n\ |
808 |
|
enabled and b-frame sensitivity -5, and a second zone starting at frame 1000\n\ |
809 |
|
with constant quant 4 and no options enabled you would use the -zones option\n\ |
810 |
|
like this:\n\ |
811 |
|
\n\ |
812 |
|
-zones 0,w,1.0,-5KOGC/1000,q,4\n\n", MAX_ZONES); |
813 |
|
} else |
814 |
usage(); |
usage(); |
815 |
return (0); |
return (0); |
816 |
} else { |
} else { |
833 |
|
|
834 |
if (ARG_QUALITY < 0 ) { |
if (ARG_QUALITY < 0 ) { |
835 |
ARG_QUALITY = 0; |
ARG_QUALITY = 0; |
836 |
} else if (ARG_QUALITY >= ME_ELEMENTS) { |
} else if (ARG_QUALITY >= (int) ME_ELEMENTS) { |
837 |
ARG_QUALITY = ME_ELEMENTS - 1; |
ARG_QUALITY = ME_ELEMENTS - 1; |
838 |
} |
} |
839 |
|
|
926 |
if (avi_info.fccHandler != MAKEFOURCC('Y', 'V', '1', '2')) { |
if (avi_info.fccHandler != MAKEFOURCC('Y', 'V', '1', '2')) { |
927 |
LONG size; |
LONG size; |
928 |
fprintf(stderr, "Non YV12 input colorspace %c%c%c%c! Attempting conversion...\n", |
fprintf(stderr, "Non YV12 input colorspace %c%c%c%c! Attempting conversion...\n", |
929 |
avi_info.fccHandler%256, (avi_info.fccHandler>>8)%256, (avi_info.fccHandler>>16)%256, |
(char)avi_info.fccHandler%256, (char)(avi_info.fccHandler>>8)%256, (char)(avi_info.fccHandler>>16)%256, |
930 |
(avi_info.fccHandler>>24)%256); |
(char)(avi_info.fccHandler>>24)%256); |
931 |
size = sizeof(myBitmapInfoHeader); |
size = sizeof(myBitmapInfoHeader); |
932 |
AVIStreamReadFormat(avi_in_stream, 0, &myBitmapInfoHeader, &size); |
AVIStreamReadFormat(avi_in_stream, 0, &myBitmapInfoHeader, &size); |
933 |
if (size==0) |
if (size==0) |
934 |
fprintf(stderr, "AVIStreamReadFormat read 0 bytes.\n"); |
fprintf(stderr, "AVIStreamReadFormat read 0 bytes.\n"); |
935 |
else { |
else { |
936 |
fprintf(stderr, "AVIStreamReadFormat read %d bytes.\n", size); |
fprintf(stderr, "AVIStreamReadFormat read %d bytes.\n", (int)size); |
937 |
fprintf(stderr, "width = %d, height = %d, planes = %d\n", myBitmapInfoHeader.biWidth, |
fprintf(stderr, "width = %d, height = %d, planes = %d\n", (int)myBitmapInfoHeader.biWidth, |
938 |
myBitmapInfoHeader.biHeight, myBitmapInfoHeader.biPlanes); |
(int)myBitmapInfoHeader.biHeight, myBitmapInfoHeader.biPlanes); |
939 |
fprintf(stderr, "Compression = %c%c%c%c, %d\n", |
fprintf(stderr, "Compression = %c%c%c%c, %d\n", |
940 |
myBitmapInfoHeader.biCompression%256, (myBitmapInfoHeader.biCompression>>8)%256, |
(char)myBitmapInfoHeader.biCompression%256, (char)(myBitmapInfoHeader.biCompression>>8)%256, |
941 |
(myBitmapInfoHeader.biCompression>>16)%256, (myBitmapInfoHeader.biCompression>>24)%256, |
(char)(myBitmapInfoHeader.biCompression>>16)%256, (char)(myBitmapInfoHeader.biCompression>>24)%256, |
942 |
myBitmapInfoHeader.biCompression); |
(int)myBitmapInfoHeader.biCompression); |
943 |
fprintf(stderr, "Bits Per Pixel = %d\n", myBitmapInfoHeader.biBitCount); |
fprintf(stderr, "Bits Per Pixel = %d\n", myBitmapInfoHeader.biBitCount); |
944 |
myBitmapInfoHeader.biCompression = MAKEFOURCC('Y', 'V', '1', '2'); |
myBitmapInfoHeader.biCompression = MAKEFOURCC('Y', 'V', '1', '2'); |
945 |
myBitmapInfoHeader.biBitCount = 12; |
myBitmapInfoHeader.biBitCount = 12; |
993 |
#endif |
#endif |
994 |
{ |
{ |
995 |
FILE *in_file = fopen(ARG_INPUTFILE, "rb"); |
FILE *in_file = fopen(ARG_INPUTFILE, "rb"); |
|
int pos = 0; |
|
996 |
if (in_file == NULL) { |
if (in_file == NULL) { |
997 |
fprintf(stderr, "Error opening input file %s\n", ARG_INPUTFILE); |
fprintf(stderr, "Error opening input file %s\n", ARG_INPUTFILE); |
998 |
return (-1); |
return (-1); |
1243 |
|
|
1244 |
int result; |
int result; |
1245 |
int output_num; |
int output_num; |
|
int nvop_counter; |
|
1246 |
int m4v_size; |
int m4v_size; |
1247 |
int key; |
int key; |
1248 |
int stats_type; |
int stats_type; |
1323 |
if (avi_info.fccHandler != MAKEFOURCC('Y', 'V', '1', '2')) { |
if (avi_info.fccHandler != MAKEFOURCC('Y', 'V', '1', '2')) { |
1324 |
LONG size; |
LONG size; |
1325 |
fprintf(stderr, "Non YV12 input colorspace %c%c%c%c! Attempting conversion...\n", |
fprintf(stderr, "Non YV12 input colorspace %c%c%c%c! Attempting conversion...\n", |
1326 |
avi_info.fccHandler%256, (avi_info.fccHandler>>8)%256, (avi_info.fccHandler>>16)%256, |
(char)avi_info.fccHandler%256, (char)(avi_info.fccHandler>>8)%256, (char)(avi_info.fccHandler>>16)%256, |
1327 |
(avi_info.fccHandler>>24)%256); |
(char)(avi_info.fccHandler>>24)%256); |
1328 |
size = sizeof(myBitmapInfoHeader); |
size = sizeof(myBitmapInfoHeader); |
1329 |
AVIStreamReadFormat(avi_in_stream, 0, &myBitmapInfoHeader, &size); |
AVIStreamReadFormat(avi_in_stream, 0, &myBitmapInfoHeader, &size); |
1330 |
if (size==0) |
if (size==0) |
1331 |
fprintf(stderr, "AVIStreamReadFormat read 0 bytes.\n"); |
fprintf(stderr, "AVIStreamReadFormat read 0 bytes.\n"); |
1332 |
else { |
else { |
1333 |
fprintf(stderr, "AVIStreamReadFormat read %d bytes.\n", size); |
fprintf(stderr, "AVIStreamReadFormat read %d bytes.\n", (int)size); |
1334 |
fprintf(stderr, "width = %d, height = %d, planes = %d\n", myBitmapInfoHeader.biWidth, |
fprintf(stderr, "width = %d, height = %d, planes = %d\n", (int)myBitmapInfoHeader.biWidth, |
1335 |
myBitmapInfoHeader.biHeight, myBitmapInfoHeader.biPlanes); |
(int)myBitmapInfoHeader.biHeight, myBitmapInfoHeader.biPlanes); |
1336 |
fprintf(stderr, "Compression = %c%c%c%c, %d\n", |
fprintf(stderr, "Compression = %c%c%c%c, %d\n", |
1337 |
myBitmapInfoHeader.biCompression%256, (myBitmapInfoHeader.biCompression>>8)%256, |
(char)myBitmapInfoHeader.biCompression%256, (char)(myBitmapInfoHeader.biCompression>>8)%256, |
1338 |
(myBitmapInfoHeader.biCompression>>16)%256, (myBitmapInfoHeader.biCompression>>24)%256, |
(char)(myBitmapInfoHeader.biCompression>>16)%256, (char)(myBitmapInfoHeader.biCompression>>24)%256, |
1339 |
myBitmapInfoHeader.biCompression); |
(int)myBitmapInfoHeader.biCompression); |
1340 |
fprintf(stderr, "Bits Per Pixel = %d\n", myBitmapInfoHeader.biBitCount); |
fprintf(stderr, "Bits Per Pixel = %d\n", myBitmapInfoHeader.biBitCount); |
1341 |
myBitmapInfoHeader.biCompression = MAKEFOURCC('Y', 'V', '1', '2'); |
myBitmapInfoHeader.biCompression = MAKEFOURCC('Y', 'V', '1', '2'); |
1342 |
myBitmapInfoHeader.biBitCount = 12; |
myBitmapInfoHeader.biBitCount = 12; |
1466 |
myAVIStreamInfo.dwQuality = 10000; |
myAVIStreamInfo.dwQuality = 10000; |
1467 |
SetRect(&myAVIStreamInfo.rcFrame, 0, 0, XDIM, YDIM); |
SetRect(&myAVIStreamInfo.rcFrame, 0, 0, XDIM, YDIM); |
1468 |
|
|
1469 |
if (avierr=AVIFileOpen(&myAVIFile, ARG_AVIOUTPUTFILE, OF_CREATE|OF_WRITE, NULL)) { |
if ((avierr=AVIFileOpen(&myAVIFile, ARG_AVIOUTPUTFILE, OF_CREATE|OF_WRITE, NULL))) { |
1470 |
fprintf(stderr, "AVIFileOpen failed opening output file %s, error code %d\n", ARG_AVIOUTPUTFILE, avierr); |
fprintf(stderr, "AVIFileOpen failed opening output file %s, error code %d\n", ARG_AVIOUTPUTFILE, avierr); |
1471 |
goto release_all; |
goto release_all; |
1472 |
} |
} |
1473 |
|
|
1474 |
if (avierr=AVIFileCreateStream(myAVIFile, &myAVIStream, &myAVIStreamInfo)) { |
if ((avierr=AVIFileCreateStream(myAVIFile, &myAVIStream, &myAVIStreamInfo))) { |
1475 |
fprintf(stderr, "AVIFileCreateStream failed, error code %d\n", avierr); |
fprintf(stderr, "AVIFileCreateStream failed, error code %d\n", avierr); |
1476 |
goto release_all; |
goto release_all; |
1477 |
} |
} |
1484 |
myBitmapInfoHeader.biCompression = MAKEFOURCC('X', 'V', 'I', 'D'); |
myBitmapInfoHeader.biCompression = MAKEFOURCC('X', 'V', 'I', 'D'); |
1485 |
myBitmapInfoHeader.biBitCount = 12; |
myBitmapInfoHeader.biBitCount = 12; |
1486 |
myBitmapInfoHeader.biSizeImage = 6*XDIM*YDIM; |
myBitmapInfoHeader.biSizeImage = 6*XDIM*YDIM; |
1487 |
if (avierr=AVIStreamSetFormat(myAVIStream, 0, &myBitmapInfoHeader, sizeof(BITMAPINFOHEADER))) { |
if ((avierr=AVIStreamSetFormat(myAVIStream, 0, &myBitmapInfoHeader, sizeof(BITMAPINFOHEADER)))) { |
1488 |
fprintf(stderr, "AVIStreamSetFormat failed, error code %d\n", avierr); |
fprintf(stderr, "AVIStreamSetFormat failed, error code %d\n", avierr); |
1489 |
goto release_all; |
goto release_all; |
1490 |
} |
} |
1537 |
input_num = 0; /* input frame counter */ |
input_num = 0; /* input frame counter */ |
1538 |
output_num = start_num; /* output frame counter */ |
output_num = start_num; /* output frame counter */ |
1539 |
|
|
|
nvop_counter = 0; |
|
|
|
|
1540 |
do { |
do { |
1541 |
|
|
1542 |
char *type; |
char *type; |
1902 |
fprintf(stderr, " -full1pass : perform full quality first pass (disabled)\n"); |
fprintf(stderr, " -full1pass : perform full quality first pass (disabled)\n"); |
1903 |
fprintf(stderr, " -pass2 [filename] : twopass mode (2nd pass)\n"); |
fprintf(stderr, " -pass2 [filename] : twopass mode (2nd pass)\n"); |
1904 |
fprintf(stderr, " -max_key_interval integer : maximum keyframe interval (%d)\n", ARG_MAXKEYINTERVAL); |
fprintf(stderr, " -max_key_interval integer : maximum keyframe interval (%d)\n", ARG_MAXKEYINTERVAL); |
1905 |
|
fprintf(stderr, " -zones [zones] : use `-help zones' for usage guidelines\n"); |
1906 |
fprintf(stderr, " -zq starting_frame float : bitrate zone; quant\n"); |
fprintf(stderr, " -zq starting_frame float : bitrate zone; quant\n"); |
1907 |
fprintf(stderr, " -zw starting_frame float : bitrate zone; weight\n"); |
fprintf(stderr, " -zw starting_frame float : bitrate zone; weight\n"); |
1908 |
fprintf(stderr, "\n"); |
fprintf(stderr, "\n"); |
1958 |
fprintf(stderr, " -qmatrix filename : use custom MPEG4 quantization matrix\n"); |
fprintf(stderr, " -qmatrix filename : use custom MPEG4 quantization matrix\n"); |
1959 |
fprintf(stderr, " -interlaced [integer] : interlaced encoding (BFF:1, TFF:2) (%d)\n", DEFAULT_INTERLACING); |
fprintf(stderr, " -interlaced [integer] : interlaced encoding (BFF:1, TFF:2) (%d)\n", DEFAULT_INTERLACING); |
1960 |
if (ARG_PACKED) |
if (ARG_PACKED) |
1961 |
fprintf(stderr, " -nopacked : Disable packed B-frames mode (enabled)\n"); |
fprintf(stderr, " -nopacked : disable packed B-frames mode (enabled)\n"); |
1962 |
else |
else |
1963 |
fprintf(stderr, " -packed : Enable packed B-frames mode (disabled)\n"); |
fprintf(stderr, " -packed : enable packed B-frames mode (disabled)\n"); |
1964 |
if (ARG_CLOSED_GOP) |
if (ARG_CLOSED_GOP) |
1965 |
fprintf(stderr, " -noclosed_gop : Disable closed GOP mode (enabled)\n"); |
fprintf(stderr, " -noclosed_gop : disable closed GOP mode (enabled)\n"); |
1966 |
else |
else |
1967 |
fprintf(stderr, " -closed_gop : Enable closed GOP mode (disabled)\n"); |
fprintf(stderr, " -closed_gop : enable closed GOP mode (disabled)\n"); |
1968 |
fprintf(stderr, " -masking [integer] : HVS masking mode (None:0, Lumi:1, Variance:2) (%d)\n", ARG_LUMIMASKING); |
fprintf(stderr, " -masking [integer] : HVS masking mode (None:0, Lumi:1, Variance:2) (%d)\n", ARG_LUMIMASKING); |
1969 |
if (ARG_STATS) |
if (ARG_STATS) |
1970 |
fprintf(stderr, " -nostats : do not print stats about encoded frames (print)\n"); |
fprintf(stderr, " -nostats : do not print stats about encoded frames (print)\n"); |
1971 |
else |
else |
1972 |
fprintf(stderr, " -stats : print stats about encoded frames (don't print)\n"); |
fprintf(stderr, " -stats : print stats about encoded frames (don't print)\n"); |
1973 |
fprintf(stderr, " -ssim [integer] : prints ssim for every frame (accurate: 0 fast: 4) (%d)\n", DEFAULT_SSIM); |
fprintf(stderr, " -ssim [integer] : print ssim for every frame (accurate: 0 fast: 4) (%d)\n", DEFAULT_SSIM); |
1974 |
fprintf(stderr, " -ssim_file filename : outputs the ssim stats into a file\n"); |
fprintf(stderr, " -ssim_file filename : output the ssim stats into a file\n"); |
1975 |
if (ARG_PSNRHVSM) |
if (ARG_PSNRHVSM) |
1976 |
fprintf(stderr, " -nopsnrhvsm : do not print PSNRHVSM metric for every frame (print)\n"); |
fprintf(stderr, " -nopsnrhvsm : do not print PSNRHVSM metric for every frame (print)\n"); |
1977 |
else |
else |
1978 |
fprintf(stderr, " -psnrhvsm : print PSNRHVSM metric for every frame (don't print)\n"); |
fprintf(stderr, " -psnrhvsm : print PSNRHVSM metric for every frame (don't print)\n"); |
1979 |
fprintf(stderr, " -debug integer : activates xvidcore internal debugging output (don't activate)\n"); |
fprintf(stderr, " -debug integer : activate xvidcore internal debugging output (don't activate)\n"); |
1980 |
if (ARG_VOPDEBUG) |
if (ARG_VOPDEBUG) |
1981 |
fprintf(stderr, " -novop_debug : do not print debug info directly into encoded frames (print)\n"); |
fprintf(stderr, " -novop_debug : do not print debug info directly into encoded frames (print)\n"); |
1982 |
else |
else |
1983 |
fprintf(stderr, " -vop_debug : print some info directly into encoded frames (don't print)\n"); |
fprintf(stderr, " -vop_debug : print some info directly into encoded frames (don't print)\n"); |
1984 |
if (ARG_CHROMAME) |
if (ARG_CHROMAME) |
1985 |
fprintf(stderr, " -nochromame : Disable chroma motion estimation (enabled)\n"); |
fprintf(stderr, " -nochromame : disable chroma motion estimation (enabled)\n"); |
1986 |
else |
else |
1987 |
fprintf(stderr, " -chromame : Enable chroma motion estimation (disabled)\n"); |
fprintf(stderr, " -chromame : enable chroma motion estimation (disabled)\n"); |
1988 |
if (ARG_TRELLIS) |
if (ARG_TRELLIS) |
1989 |
fprintf(stderr, " -notrellis : Disable trellis quantization (enabled)\n"); |
fprintf(stderr, " -notrellis : disable trellis quantization (enabled)\n"); |
1990 |
else |
else |
1991 |
fprintf(stderr, " -trellis : Enable trellis quantization (disabled)\n"); |
fprintf(stderr, " -trellis : enable trellis quantization (disabled)\n"); |
1992 |
fprintf(stderr, " -imin integer : Minimum I Quantizer (1..31) (%d)\n", ARG_QUANTS[0]); |
fprintf(stderr, " -imin integer : minimum I Quantizer (1..31) (%d)\n", ARG_QUANTS[0]); |
1993 |
fprintf(stderr, " -imax integer : Maximum I quantizer (1..31) (%d)\n", ARG_QUANTS[1]); |
fprintf(stderr, " -imax integer : maximum I quantizer (1..31) (%d)\n", ARG_QUANTS[1]); |
1994 |
fprintf(stderr, " -bmin integer : Minimum B Quantizer (1..31) (%d)\n", ARG_QUANTS[4]); |
fprintf(stderr, " -bmin integer : minimum B Quantizer (1..31) (%d)\n", ARG_QUANTS[4]); |
1995 |
fprintf(stderr, " -bmax integer : Maximum B quantizer (1..31) (%d)\n", ARG_QUANTS[5]); |
fprintf(stderr, " -bmax integer : maximum B quantizer (1..31) (%d)\n", ARG_QUANTS[5]); |
1996 |
fprintf(stderr, " -pmin integer : Minimum P Quantizer (1..31) (%d)\n", ARG_QUANTS[2]); |
fprintf(stderr, " -pmin integer : minimum P Quantizer (1..31) (%d)\n", ARG_QUANTS[2]); |
1997 |
fprintf(stderr, " -pmax integer : Maximum P quantizer (1..31) (%d)\n", ARG_QUANTS[3]); |
fprintf(stderr, " -pmax integer : maximum P quantizer (1..31) (%d)\n", ARG_QUANTS[3]); |
1998 |
fprintf(stderr, " -drop integer : Frame Drop Ratio (0..100) (%d)\n", ARG_FRAMEDROP); |
fprintf(stderr, " -drop integer : frame Drop Ratio (0..100) (%d)\n", ARG_FRAMEDROP); |
1999 |
fprintf(stderr, " -start integer : Starting frame number (%d)\n", ARG_STARTFRAMENR); |
fprintf(stderr, " -start integer : starting frame number (%d)\n", ARG_STARTFRAMENR); |
2000 |
fprintf(stderr, " -threads integer : Number of threads (auto)\n"); |
fprintf(stderr, " -threads integer : number of threads (auto)\n"); |
2001 |
fprintf(stderr, " -slices integer : Number of slices (%d)\n", ARG_SLICES); |
fprintf(stderr, " -slices integer : number of slices (%d)\n", ARG_SLICES); |
2002 |
fprintf(stderr, " -progress [integer] : Show progress updates every n frames (%d)\n", DEFAULT_PROGRESS); |
fprintf(stderr, " -progress [integer] : show progress updates every n frames (%d)\n", DEFAULT_PROGRESS); |
2003 |
fprintf(stderr, " -par integer[:integer] : Set Pixel Aspect Ratio (%d)\n", ARG_PAR); |
fprintf(stderr, " -par integer[:integer] : set Pixel Aspect Ratio (%d)\n", ARG_PAR); |
2004 |
fprintf(stderr, " 1 = 1:1\n"); |
fprintf(stderr, " 1 = 1:1\n"); |
2005 |
fprintf(stderr, " 2 = 12:11 (4:3 PAL)\n"); |
fprintf(stderr, " 2 = 12:11 (4:3 PAL)\n"); |
2006 |
fprintf(stderr, " 3 = 10:11 (4:3 NTSC)\n"); |
fprintf(stderr, " 3 = 10:11 (4:3 NTSC)\n"); |
2007 |
fprintf(stderr, " 4 = 16:11 (16:9 PAL)\n"); |
fprintf(stderr, " 4 = 16:11 (16:9 PAL)\n"); |
2008 |
fprintf(stderr, " 5 = 40:33 (16:9 NTSC)\n"); |
fprintf(stderr, " 5 = 40:33 (16:9 NTSC)\n"); |
2009 |
fprintf(stderr, " other = custom (width:height)\n"); |
fprintf(stderr, " other = custom (width:height)\n"); |
2010 |
fprintf(stderr, " -help : prints this help message\n"); |
fprintf(stderr, " -help : print this help message\n"); |
2011 |
fprintf(stderr, "\n"); |
fprintf(stderr, "\n"); |
2012 |
fprintf(stderr, "NB: You can define %d zones repeating the -z[qw] option as needed.\n", MAX_ZONES); |
fprintf(stderr, "NB: You can define up to %d zones via both the -zones and the -z[qw] options as needed.\n", MAX_ZONES); |
2013 |
} |
} |
2014 |
|
|
2015 |
/***************************************************************************** |
/***************************************************************************** |
2132 |
|
|
2133 |
/* sample plugin */ |
/* sample plugin */ |
2134 |
|
|
2135 |
|
#if 0 |
2136 |
int |
int |
2137 |
rawenc_debug(void *handle, |
rawenc_debug(void *handle, |
2138 |
int opt, |
int opt, |
2172 |
|
|
2173 |
return XVID_ERR_FAIL; |
return XVID_ERR_FAIL; |
2174 |
} |
} |
2175 |
|
#endif |
2176 |
|
|
2177 |
#define FRAMERATE_INCR 1001 |
#define FRAMERATE_INCR 1001 |
2178 |
|
|