Commit 58f26ba9 authored by Fabrice Bellard's avatar Fabrice Bellard

changed opendivx to mpeg4


Originally committed as revision 102 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 935442b5
...@@ -58,9 +58,9 @@ CodecTag codec_bmp_tags[] = { ...@@ -58,9 +58,9 @@ CodecTag codec_bmp_tags[] = {
{ CODEC_ID_H263, MKTAG('U', '2', '6', '3') }, { CODEC_ID_H263, MKTAG('U', '2', '6', '3') },
{ CODEC_ID_H263I, MKTAG('I', '2', '6', '3') }, /* intel h263 */ { CODEC_ID_H263I, MKTAG('I', '2', '6', '3') }, /* intel h263 */
{ CODEC_ID_MJPEG, MKTAG('M', 'J', 'P', 'G') }, { CODEC_ID_MJPEG, MKTAG('M', 'J', 'P', 'G') },
{ CODEC_ID_OPENDIVX, MKTAG('D', 'I', 'V', 'X') }, { CODEC_ID_MPEG4, MKTAG('D', 'I', 'V', 'X') },
{ CODEC_ID_OPENDIVX, MKTAG('d', 'i', 'v', 'x') }, { CODEC_ID_MPEG4, MKTAG('d', 'i', 'v', 'x') },
{ CODEC_ID_OPENDIVX, MKTAG(0x04, 0, 0, 0) }, /* some broken avi use this */ { CODEC_ID_MPEG4, MKTAG(0x04, 0, 0, 0) }, /* some broken avi use this */
{ CODEC_ID_MSMPEG4, MKTAG('D', 'I', 'V', '3') }, /* default signature when using MSMPEG4 */ { CODEC_ID_MSMPEG4, MKTAG('D', 'I', 'V', '3') }, /* default signature when using MSMPEG4 */
{ CODEC_ID_MSMPEG4, MKTAG('M', 'P', '4', '3') }, { CODEC_ID_MSMPEG4, MKTAG('M', 'P', '4', '3') },
{ 0, 0 }, { 0, 0 },
......
...@@ -292,7 +292,7 @@ void video_decode_example(const char *outfilename, const char *filename) ...@@ -292,7 +292,7 @@ void video_decode_example(const char *outfilename, const char *filename)
/* put default values */ /* put default values */
memset(c, 0, sizeof(*c)); memset(c, 0, sizeof(*c));
/* for some codecs, such as msmpeg4 and opendivx, width and height /* for some codecs, such as msmpeg4 and mpeg4, width and height
MUST be initialized there because these info are not available MUST be initialized there because these info are not available
in the bitstream */ in the bitstream */
...@@ -320,9 +320,9 @@ void video_decode_example(const char *outfilename, const char *filename) ...@@ -320,9 +320,9 @@ void video_decode_example(const char *outfilename, const char *filename)
and this is the only method to use them because you cannot and this is the only method to use them because you cannot
know the compressed data size before analysing it. know the compressed data size before analysing it.
BUT some other codecs (msmpeg4, opendivx) are inherently BUT some other codecs (msmpeg4, mpeg4) are inherently frame
frame based, so you must call them with all the data for based, so you must call them with all the data for one
one frame exactly. You must also initialize 'width' and frame exactly. You must also initialize 'width' and
'height' before initializing them. */ 'height' before initializing them. */
/* NOTE2: some codecs allow the raw parameters (frame size, /* NOTE2: some codecs allow the raw parameters (frame size,
......
...@@ -283,7 +283,7 @@ int MPV_encode_init(AVCodecContext *avctx) ...@@ -283,7 +283,7 @@ int MPV_encode_init(AVCodecContext *avctx)
s->out_format = FMT_H263; s->out_format = FMT_H263;
s->h263_rv10 = 1; s->h263_rv10 = 1;
break; break;
case CODEC_ID_OPENDIVX: case CODEC_ID_MPEG4:
s->out_format = FMT_H263; s->out_format = FMT_H263;
s->h263_pred = 1; s->h263_pred = 1;
s->unrestricted_mv = 1; s->unrestricted_mv = 1;
...@@ -1341,10 +1341,10 @@ AVCodec mjpeg_encoder = { ...@@ -1341,10 +1341,10 @@ AVCodec mjpeg_encoder = {
MPV_encode_end, MPV_encode_end,
}; };
AVCodec opendivx_encoder = { AVCodec mpeg4_encoder = {
"opendivx", "mpeg4",
CODEC_TYPE_VIDEO, CODEC_TYPE_VIDEO,
CODEC_ID_OPENDIVX, CODEC_ID_MPEG4,
sizeof(MpegEncContext), sizeof(MpegEncContext),
MPV_encode_init, MPV_encode_init,
MPV_encode_picture, MPV_encode_picture,
......
...@@ -31,6 +31,7 @@ enum OutputFormat { ...@@ -31,6 +31,7 @@ enum OutputFormat {
#define MPEG_BUF_SIZE (16 * 1024) #define MPEG_BUF_SIZE (16 * 1024)
typedef struct MpegEncContext { typedef struct MpegEncContext {
struct AVCodecContext *avctx;
/* the following parameters must be initialized before encoding */ /* the following parameters must be initialized before encoding */
int width, height; /* picture size. must be a multiple of 16 */ int width, height; /* picture size. must be a multiple of 16 */
int gop_size; int gop_size;
...@@ -40,7 +41,7 @@ typedef struct MpegEncContext { ...@@ -40,7 +41,7 @@ typedef struct MpegEncContext {
enum OutputFormat out_format; /* output format */ enum OutputFormat out_format; /* output format */
int h263_plus; /* h263 plus headers */ int h263_plus; /* h263 plus headers */
int h263_rv10; /* use RV10 variation for H263 */ int h263_rv10; /* use RV10 variation for H263 */
int h263_pred; /* use OpenDIVX (aka mpeg4) ac/dc predictions */ int h263_pred; /* use mpeg4/h263 ac/dc predictions */
int h263_msmpeg4; /* generate MSMPEG4 compatible stream */ int h263_msmpeg4; /* generate MSMPEG4 compatible stream */
int h263_intel; /* use I263 intel h263 header */ int h263_intel; /* use I263 intel h263 header */
int fixed_qscale; /* fixed qscale if non zero */ int fixed_qscale; /* fixed qscale if non zero */
......
...@@ -350,7 +350,7 @@ void avcodec_register_all(void) ...@@ -350,7 +350,7 @@ void avcodec_register_all(void)
register_avcodec(&h263p_encoder); register_avcodec(&h263p_encoder);
register_avcodec(&rv10_encoder); register_avcodec(&rv10_encoder);
register_avcodec(&mjpeg_encoder); register_avcodec(&mjpeg_encoder);
register_avcodec(&opendivx_encoder); register_avcodec(&mpeg4_encoder);
register_avcodec(&msmpeg4_encoder); register_avcodec(&msmpeg4_encoder);
#endif /* CONFIG_ENCODERS */ #endif /* CONFIG_ENCODERS */
register_avcodec(&pcm_codec); register_avcodec(&pcm_codec);
...@@ -359,7 +359,7 @@ void avcodec_register_all(void) ...@@ -359,7 +359,7 @@ void avcodec_register_all(void)
/* decoders */ /* decoders */
#ifdef CONFIG_DECODERS #ifdef CONFIG_DECODERS
register_avcodec(&h263_decoder); register_avcodec(&h263_decoder);
register_avcodec(&opendivx_decoder); register_avcodec(&mpeg4_decoder);
register_avcodec(&msmpeg4_decoder); register_avcodec(&msmpeg4_decoder);
register_avcodec(&mpeg_decoder); register_avcodec(&mpeg_decoder);
register_avcodec(&h263i_decoder); register_avcodec(&h263i_decoder);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment