21 |
* along with this program; if not, write to the Free Software |
* along with this program; if not, write to the Free Software |
22 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
23 |
* |
* |
24 |
* $Id: xvid_encraw.c,v 1.15 2004-06-10 18:13:42 chl Exp $ |
* $Id: xvid_encraw.c,v 1.17 2005-06-22 06:18:14 Skal Exp $ |
25 |
* |
* |
26 |
****************************************************************************/ |
****************************************************************************/ |
27 |
|
|
151 |
static int ARG_PACKED = 0; |
static int ARG_PACKED = 0; |
152 |
static int ARG_DEBUG = 0; |
static int ARG_DEBUG = 0; |
153 |
static int ARG_VOPDEBUG = 0; |
static int ARG_VOPDEBUG = 0; |
154 |
|
static int ARG_GREYSCALE = 0; |
155 |
static int ARG_GMC = 0; |
static int ARG_GMC = 0; |
156 |
|
static int ARG_INTERLACING = 0; |
157 |
static int ARG_QPEL = 0; |
static int ARG_QPEL = 0; |
158 |
static int ARG_CLOSED_GOP = 0; |
static int ARG_CLOSED_GOP = 0; |
159 |
|
|
345 |
ARG_OUTPUTFILE = argv[i]; |
ARG_OUTPUTFILE = argv[i]; |
346 |
} else if (strcmp("-vop_debug", argv[i]) == 0) { |
} else if (strcmp("-vop_debug", argv[i]) == 0) { |
347 |
ARG_VOPDEBUG = 1; |
ARG_VOPDEBUG = 1; |
348 |
} else if (strcmp("-qpel", argv[i]) == 0) { |
} |
349 |
|
else if (strcmp("-grey", argv[i]) == 0) { |
350 |
|
ARG_GREYSCALE = 1; |
351 |
|
} |
352 |
|
else if (strcmp("-qpel", argv[i]) == 0) { |
353 |
ARG_QPEL = 1; |
ARG_QPEL = 1; |
354 |
} else if (strcmp("-gmc", argv[i]) == 0) { |
} else if (strcmp("-gmc", argv[i]) == 0) { |
355 |
ARG_GMC = 1; |
ARG_GMC = 1; |
356 |
|
} else if (strcmp("-interlaced", argv[i]) == 0) { |
357 |
|
ARG_INTERLACING = 1; |
358 |
} else if (strcmp("-closed_gop", argv[i]) == 0) { |
} else if (strcmp("-closed_gop", argv[i]) == 0) { |
359 |
ARG_CLOSED_GOP = 1; |
ARG_CLOSED_GOP = 1; |
360 |
} else if (strcmp("-help", argv[i])) { |
} else if (strcmp("-help", argv[i])) { |
704 |
fprintf(stderr, " -quality integer: quality ([0..%d])\n", ME_ELEMENTS - 1); |
fprintf(stderr, " -quality integer: quality ([0..%d])\n", ME_ELEMENTS - 1); |
705 |
fprintf(stderr, " -qpel : use quarter pixel ME\n"); |
fprintf(stderr, " -qpel : use quarter pixel ME\n"); |
706 |
fprintf(stderr, " -gmc : use global motion compensation\n"); |
fprintf(stderr, " -gmc : use global motion compensation\n"); |
707 |
|
fprintf(stderr, " -interlaced : use interlaced encoding (this is NOT a deinterlacer!)\n"); |
708 |
fprintf(stderr, " -packed : packed mode\n"); |
fprintf(stderr, " -packed : packed mode\n"); |
709 |
fprintf(stderr, " -closed_gop : closed GOP mode\n"); |
fprintf(stderr, " -closed_gop : closed GOP mode\n"); |
710 |
|
fprintf(stderr, " -grey : grey scale coding (chroma is discarded)\n"); |
711 |
fprintf(stderr, " -lumimasking : use lumimasking algorithm\n"); |
fprintf(stderr, " -lumimasking : use lumimasking algorithm\n"); |
712 |
fprintf(stderr, " -stats : print stats about encoded frames\n"); |
fprintf(stderr, " -stats : print stats about encoded frames\n"); |
713 |
fprintf(stderr, " -debug : activates xvidcore internal debugging output\n"); |
fprintf(stderr, " -debug : activates xvidcore internal debugging output\n"); |
1108 |
xvid_enc_frame.vol_flags |= XVID_VOL_QUARTERPEL; |
xvid_enc_frame.vol_flags |= XVID_VOL_QUARTERPEL; |
1109 |
if (ARG_GMC) |
if (ARG_GMC) |
1110 |
xvid_enc_frame.vol_flags |= XVID_VOL_GMC; |
xvid_enc_frame.vol_flags |= XVID_VOL_GMC; |
1111 |
|
if (ARG_INTERLACING) |
1112 |
|
xvid_enc_frame.vol_flags |= XVID_VOL_INTERLACING; |
1113 |
|
|
1114 |
/* Set up core's general features */ |
/* Set up core's general features */ |
1115 |
xvid_enc_frame.vop_flags = vop_presets[ARG_QUALITY]; |
xvid_enc_frame.vop_flags = vop_presets[ARG_QUALITY]; |
1118 |
xvid_enc_frame.vop_flags |= XVID_VOP_DEBUG; |
xvid_enc_frame.vop_flags |= XVID_VOP_DEBUG; |
1119 |
} |
} |
1120 |
|
|
1121 |
|
if (ARG_GREYSCALE) { |
1122 |
|
xvid_enc_frame.vop_flags |= XVID_VOP_GREYSCALE; |
1123 |
|
} |
1124 |
|
|
1125 |
/* Frame type -- let core decide for us */ |
/* Frame type -- let core decide for us */ |
1126 |
xvid_enc_frame.type = XVID_TYPE_AUTO; |
xvid_enc_frame.type = XVID_TYPE_AUTO; |
1127 |
|
|