mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
cosmetics: XviD is now called Xvid.
Originally committed as revision 13465 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
ae52bbe5de
commit
842eabc5f9
2
configure
vendored
2
configure
vendored
@ -1964,7 +1964,7 @@ echo "libschroedinger enabled ${libschroedinger-no}"
|
|||||||
echo "libtheora enabled ${libtheora-no}"
|
echo "libtheora enabled ${libtheora-no}"
|
||||||
echo "libvorbis enabled ${libvorbis-no}"
|
echo "libvorbis enabled ${libvorbis-no}"
|
||||||
echo "x264 enabled ${libx264-no}"
|
echo "x264 enabled ${libx264-no}"
|
||||||
echo "XviD enabled ${libxvid-no}"
|
echo "Xvid enabled ${libxvid-no}"
|
||||||
echo "zlib enabled ${zlib-no}"
|
echo "zlib enabled ${zlib-no}"
|
||||||
echo "bzlib enabled ${bzlib-no}"
|
echo "bzlib enabled ${bzlib-no}"
|
||||||
echo
|
echo
|
||||||
|
@ -82,7 +82,7 @@ The following list of video codecs should work on most Windows systems:
|
|||||||
@item wmv2
|
@item wmv2
|
||||||
.asf only
|
.asf only
|
||||||
@item mpeg4
|
@item mpeg4
|
||||||
only if you have some MPEG-4 codec installed like ffdshow or XviD
|
only if you have some MPEG-4 codec installed like ffdshow or Xvid
|
||||||
@item mpeg1
|
@item mpeg1
|
||||||
.mpg only
|
.mpg only
|
||||||
@end table
|
@end table
|
||||||
@ -194,9 +194,9 @@ Try '-f image2 test%d.jpg'.
|
|||||||
Some codecs, like MPEG-1/2, only allow a small number of fixed framerates.
|
Some codecs, like MPEG-1/2, only allow a small number of fixed framerates.
|
||||||
Choose a different codec with the -vcodec command line option.
|
Choose a different codec with the -vcodec command line option.
|
||||||
|
|
||||||
@section How do I encode XviD or DivX video with ffmpeg?
|
@section How do I encode Xvid or DivX video with ffmpeg?
|
||||||
|
|
||||||
Both XviD and DivX (version 4+) are implementations of the ISO MPEG-4
|
Both Xvid and DivX (version 4+) are implementations of the ISO MPEG-4
|
||||||
standard (note that there are many other coding formats that use this
|
standard (note that there are many other coding formats that use this
|
||||||
same standard). Thus, use '-vcodec mpeg4' to encode these formats. The
|
same standard). Thus, use '-vcodec mpeg4' to encode these formats. The
|
||||||
default fourcc stored in an MPEG-4-coded file will be 'FMP4'. If you want
|
default fourcc stored in an MPEG-4-coded file will be 'FMP4'. If you want
|
||||||
|
@ -5773,7 +5773,7 @@ static int decode_user_data(MpegEncContext *s, GetBitContext *gb){
|
|||||||
s->lavc_build= build;
|
s->lavc_build= build;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* xvid detection */
|
/* Xvid detection */
|
||||||
e=sscanf(buf, "XviD%d", &build);
|
e=sscanf(buf, "XviD%d", &build);
|
||||||
if(e==1){
|
if(e==1){
|
||||||
s->xvid_build= build;
|
s->xvid_build= build;
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @file libxvid_internal.h
|
* @file libxvid_internal.h
|
||||||
* common functions for use with the XviD wrappers
|
* common functions for use with the Xvid wrappers
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* xvid Rate control wrapper for lavc video encoders
|
* Xvid rate control wrapper for lavc video encoders
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
|
* Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
|
||||||
*
|
*
|
||||||
|
@ -41,14 +41,14 @@
|
|||||||
extern int has_altivec(void);
|
extern int has_altivec(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Structure for the private XviD context.
|
* Structure for the private Xvid context.
|
||||||
* This stores all the private context for the codec.
|
* This stores all the private context for the codec.
|
||||||
*/
|
*/
|
||||||
typedef struct xvid_context {
|
typedef struct xvid_context {
|
||||||
void *encoder_handle; /** Handle for XviD Encoder */
|
void *encoder_handle; /** Handle for Xvid encoder */
|
||||||
int xsize, ysize; /** Frame size */
|
int xsize, ysize; /** Frame size */
|
||||||
int vop_flags; /** VOP flags for XviD Encoder */
|
int vop_flags; /** VOP flags for Xvid encoder */
|
||||||
int vol_flags; /** VOL flags for XviD Encoder */
|
int vol_flags; /** VOL flags for Xvid encoder */
|
||||||
int me_flags; /** Motion Estimation flags */
|
int me_flags; /** Motion Estimation flags */
|
||||||
int qscale; /** Do we use constant scale? */
|
int qscale; /** Do we use constant scale? */
|
||||||
int quicktime_format; /** Are we in a QT-based format? */
|
int quicktime_format; /** Are we in a QT-based format? */
|
||||||
@ -64,7 +64,7 @@ typedef struct xvid_context {
|
|||||||
* Structure for the private first-pass plugin.
|
* Structure for the private first-pass plugin.
|
||||||
*/
|
*/
|
||||||
typedef struct xvid_ff_pass1 {
|
typedef struct xvid_ff_pass1 {
|
||||||
int version; /** XviD version */
|
int version; /** Xvid version */
|
||||||
xvid_context_t *context; /** Pointer to private context */
|
xvid_context_t *context; /** Pointer to private context */
|
||||||
} xvid_ff_pass1_t;
|
} xvid_ff_pass1_t;
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ av_cold int ff_xvid_encode_init(AVCodecContext *avctx) {
|
|||||||
xvid_gbl_init.debug = 0;
|
xvid_gbl_init.debug = 0;
|
||||||
|
|
||||||
#ifdef ARCH_POWERPC
|
#ifdef ARCH_POWERPC
|
||||||
/* XviD's PPC support is borked, use libavcodec to detect */
|
/* Xvid's PPC support is borked, use libavcodec to detect */
|
||||||
#ifdef HAVE_ALTIVEC
|
#ifdef HAVE_ALTIVEC
|
||||||
if( has_altivec() ) {
|
if( has_altivec() ) {
|
||||||
xvid_gbl_init.cpu_flags = XVID_CPU_FORCE | XVID_CPU_ALTIVEC;
|
xvid_gbl_init.cpu_flags = XVID_CPU_FORCE | XVID_CPU_ALTIVEC;
|
||||||
@ -174,7 +174,7 @@ av_cold int ff_xvid_encode_init(AVCodecContext *avctx) {
|
|||||||
#endif
|
#endif
|
||||||
xvid_gbl_init.cpu_flags = XVID_CPU_FORCE;
|
xvid_gbl_init.cpu_flags = XVID_CPU_FORCE;
|
||||||
#else
|
#else
|
||||||
/* XviD can detect on x86 */
|
/* Xvid can detect on x86 */
|
||||||
xvid_gbl_init.cpu_flags = 0;
|
xvid_gbl_init.cpu_flags = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ av_cold int ff_xvid_encode_init(AVCodecContext *avctx) {
|
|||||||
xvid_enc_create.width = x->xsize = avctx->width;
|
xvid_enc_create.width = x->xsize = avctx->width;
|
||||||
xvid_enc_create.height = x->ysize = avctx->height;
|
xvid_enc_create.height = x->ysize = avctx->height;
|
||||||
|
|
||||||
/* XviD can determine the proper profile to use */
|
/* Xvid can determine the proper profile to use */
|
||||||
/* xvid_enc_create.profile = XVID_PROFILE_S_L3; */
|
/* xvid_enc_create.profile = XVID_PROFILE_S_L3; */
|
||||||
|
|
||||||
/* We don't use zones */
|
/* We don't use zones */
|
||||||
@ -214,7 +214,7 @@ av_cold int ff_xvid_encode_init(AVCodecContext *avctx) {
|
|||||||
x->old_twopassbuffer = av_malloc(BUFFER_SIZE);
|
x->old_twopassbuffer = av_malloc(BUFFER_SIZE);
|
||||||
if( x->twopassbuffer == NULL || x->old_twopassbuffer == NULL ) {
|
if( x->twopassbuffer == NULL || x->old_twopassbuffer == NULL ) {
|
||||||
av_log(avctx, AV_LOG_ERROR,
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
"XviD: Cannot allocate 2-pass log buffers\n");
|
"Xvid: Cannot allocate 2-pass log buffers\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
x->twopassbuffer[0] = x->old_twopassbuffer[0] = 0;
|
x->twopassbuffer[0] = x->old_twopassbuffer[0] = 0;
|
||||||
@ -230,13 +230,13 @@ av_cold int ff_xvid_encode_init(AVCodecContext *avctx) {
|
|||||||
fd = av_tempfile("xvidff.", &(x->twopassfile));
|
fd = av_tempfile("xvidff.", &(x->twopassfile));
|
||||||
if( fd == -1 ) {
|
if( fd == -1 ) {
|
||||||
av_log(avctx, AV_LOG_ERROR,
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
"XviD: Cannot write 2-pass pipe\n");
|
"Xvid: Cannot write 2-pass pipe\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( avctx->stats_in == NULL ) {
|
if( avctx->stats_in == NULL ) {
|
||||||
av_log(avctx, AV_LOG_ERROR,
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
"XviD: No 2-pass information loaded for second pass\n");
|
"Xvid: No 2-pass information loaded for second pass\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -244,7 +244,7 @@ av_cold int ff_xvid_encode_init(AVCodecContext *avctx) {
|
|||||||
write(fd, avctx->stats_in, strlen(avctx->stats_in)) ) {
|
write(fd, avctx->stats_in, strlen(avctx->stats_in)) ) {
|
||||||
close(fd);
|
close(fd);
|
||||||
av_log(avctx, AV_LOG_ERROR,
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
"XviD: Cannot write to 2-pass pipe\n");
|
"Xvid: Cannot write to 2-pass pipe\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -278,7 +278,7 @@ av_cold int ff_xvid_encode_init(AVCodecContext *avctx) {
|
|||||||
if( avctx->gop_size > 0 )
|
if( avctx->gop_size > 0 )
|
||||||
xvid_enc_create.max_key_interval = avctx->gop_size;
|
xvid_enc_create.max_key_interval = avctx->gop_size;
|
||||||
else
|
else
|
||||||
xvid_enc_create.max_key_interval = 240; /* XviD's best default */
|
xvid_enc_create.max_key_interval = 240; /* Xvid's best default */
|
||||||
|
|
||||||
/* Quants */
|
/* Quants */
|
||||||
if( xvid_flags & CODEC_FLAG_QSCALE ) x->qscale = 1;
|
if( xvid_flags & CODEC_FLAG_QSCALE ) x->qscale = 1;
|
||||||
@ -331,7 +331,7 @@ av_cold int ff_xvid_encode_init(AVCodecContext *avctx) {
|
|||||||
x->quicktime_format = 1;
|
x->quicktime_format = 1;
|
||||||
avctx->codec_id = CODEC_ID_MPEG4;
|
avctx->codec_id = CODEC_ID_MPEG4;
|
||||||
} else {
|
} else {
|
||||||
/* We are claiming to be XviD */
|
/* We are claiming to be Xvid */
|
||||||
x->quicktime_format = 0;
|
x->quicktime_format = 0;
|
||||||
if(!avctx->codec_tag)
|
if(!avctx->codec_tag)
|
||||||
avctx->codec_tag = ff_get_fourcc("xvid");
|
avctx->codec_tag = ff_get_fourcc("xvid");
|
||||||
@ -346,7 +346,7 @@ av_cold int ff_xvid_encode_init(AVCodecContext *avctx) {
|
|||||||
/* Create encoder context */
|
/* Create encoder context */
|
||||||
xerr = xvid_encore(NULL, XVID_ENC_CREATE, &xvid_enc_create, NULL);
|
xerr = xvid_encore(NULL, XVID_ENC_CREATE, &xvid_enc_create, NULL);
|
||||||
if( xerr ) {
|
if( xerr ) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "XviD: Could not create encoder reference\n");
|
av_log(avctx, AV_LOG_ERROR, "Xvid: Could not create encoder reference\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -383,13 +383,13 @@ int ff_xvid_encode_frame(AVCodecContext *avctx,
|
|||||||
xvid_enc_stats.version = XVID_VERSION;
|
xvid_enc_stats.version = XVID_VERSION;
|
||||||
*p = *picture;
|
*p = *picture;
|
||||||
|
|
||||||
/* Let XviD know where to put the frame. */
|
/* Let Xvid know where to put the frame. */
|
||||||
xvid_enc_frame.bitstream = frame;
|
xvid_enc_frame.bitstream = frame;
|
||||||
xvid_enc_frame.length = buf_size;
|
xvid_enc_frame.length = buf_size;
|
||||||
|
|
||||||
/* Initialize input image fields */
|
/* Initialize input image fields */
|
||||||
if( avctx->pix_fmt != PIX_FMT_YUV420P ) {
|
if( avctx->pix_fmt != PIX_FMT_YUV420P ) {
|
||||||
av_log(avctx, AV_LOG_ERROR, "XviD: Color spaces other than 420p not supported\n");
|
av_log(avctx, AV_LOG_ERROR, "Xvid: Color spaces other than 420p not supported\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -461,14 +461,14 @@ int ff_xvid_encode_frame(AVCodecContext *avctx,
|
|||||||
|
|
||||||
return xerr;
|
return xerr;
|
||||||
} else {
|
} else {
|
||||||
av_log(avctx, AV_LOG_ERROR, "XviD: Encoding Error Occurred: %i\n", xerr);
|
av_log(avctx, AV_LOG_ERROR, "Xvid: Encoding Error Occurred: %i\n", xerr);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroys the private context for the encoder.
|
* Destroys the private context for the encoder.
|
||||||
* All buffers are freed, and the XviD encoder context is destroyed.
|
* All buffers are freed, and the Xvid encoder context is destroyed.
|
||||||
*
|
*
|
||||||
* @param avctx AVCodecContext pointer to context
|
* @param avctx AVCodecContext pointer to context
|
||||||
* @return Returns 0, success guaranteed
|
* @return Returns 0, success guaranteed
|
||||||
@ -496,7 +496,7 @@ av_cold int ff_xvid_encode_close(AVCodecContext *avctx) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Routine to create a global VO/VOL header for MP4 container.
|
* Routine to create a global VO/VOL header for MP4 container.
|
||||||
* What we do here is extract the header from the XviD bitstream
|
* What we do here is extract the header from the Xvid bitstream
|
||||||
* as it is encoded. We also strip the repeated headers from the
|
* as it is encoded. We also strip the repeated headers from the
|
||||||
* bitstream when a global header is requested for MPEG-4 ISO
|
* bitstream when a global header is requested for MPEG-4 ISO
|
||||||
* compliance.
|
* compliance.
|
||||||
@ -540,7 +540,7 @@ int xvid_strip_vol_header(AVCodecContext *avctx,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Routine to correct a possibly erroneous framerate being fed to us.
|
* Routine to correct a possibly erroneous framerate being fed to us.
|
||||||
* XviD currently chokes on framerates where the ticks per frame is
|
* Xvid currently chokes on framerates where the ticks per frame is
|
||||||
* extremely large. This function works to correct problems in this area
|
* extremely large. This function works to correct problems in this area
|
||||||
* by estimating a new framerate and taking the simpler fraction of
|
* by estimating a new framerate and taking the simpler fraction of
|
||||||
* the two presented.
|
* the two presented.
|
||||||
@ -588,7 +588,7 @@ void xvid_correct_framerate(AVCodecContext *avctx) {
|
|||||||
avctx->time_base.den = est_frate;
|
avctx->time_base.den = est_frate;
|
||||||
avctx->time_base.num = est_fbase;
|
avctx->time_base.num = est_fbase;
|
||||||
av_log(avctx, AV_LOG_DEBUG,
|
av_log(avctx, AV_LOG_DEBUG,
|
||||||
"XviD: framerate re-estimated: %.2f, %.3f%% correction\n",
|
"Xvid: framerate re-estimated: %.2f, %.3f%% correction\n",
|
||||||
est_fps, (((est_fps - fps)/fps) * 100.0));
|
est_fps, (((est_fps - fps)/fps) * 100.0));
|
||||||
} else {
|
} else {
|
||||||
avctx->time_base.den = frate;
|
avctx->time_base.den = frate;
|
||||||
@ -597,12 +597,12 @@ void xvid_correct_framerate(AVCodecContext *avctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XviD 2-Pass Kludge Section
|
* Xvid 2-Pass Kludge Section
|
||||||
*
|
*
|
||||||
* XviD's default 2-pass doesn't allow us to create data as we need to, so
|
* Xvid's default 2-pass doesn't allow us to create data as we need to, so
|
||||||
* this section spends time replacing the first pass plugin so we can write
|
* this section spends time replacing the first pass plugin so we can write
|
||||||
* statistic information as libavcodec requests in. We have another kludge
|
* statistic information as libavcodec requests in. We have another kludge
|
||||||
* that allows us to pass data to the second pass in XviD without a custom
|
* that allows us to pass data to the second pass in Xvid without a custom
|
||||||
* rate-control plugin.
|
* rate-control plugin.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -730,7 +730,7 @@ static int xvid_ff_2pass_after(xvid_context_t *ref,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Dispatch function for our custom plugin.
|
* Dispatch function for our custom plugin.
|
||||||
* This handles the dispatch for the XviD plugin. It passes data
|
* This handles the dispatch for the Xvid plugin. It passes data
|
||||||
* on to other functions for actual processing.
|
* on to other functions for actual processing.
|
||||||
*
|
*
|
||||||
* @param ref Context pointer for the plugin
|
* @param ref Context pointer for the plugin
|
||||||
@ -763,7 +763,7 @@ int xvid_ff_2pass(void *ref, int cmd, void *p1, void *p2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* XviD codec definition for libavcodec.
|
* Xvid codec definition for libavcodec.
|
||||||
*/
|
*/
|
||||||
AVCodec libxvid_encoder = {
|
AVCodec libxvid_encoder = {
|
||||||
"libxvid",
|
"libxvid",
|
||||||
|
@ -187,7 +187,7 @@ int ff_rate_control_init(MpegEncContext *s)
|
|||||||
#ifdef CONFIG_LIBXVID
|
#ifdef CONFIG_LIBXVID
|
||||||
return ff_xvid_rate_control_init(s);
|
return ff_xvid_rate_control_init(s);
|
||||||
#else
|
#else
|
||||||
av_log(s->avctx, AV_LOG_ERROR, "XviD ratecontrol requires libavcodec compiled with XviD support\n");
|
av_log(s->avctx, AV_LOG_ERROR, "Xvid ratecontrol requires libavcodec compiled with Xvid support.\n");
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user