mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
Move AVCodecs from h263dec.c to msmpeg4.c and disentangle init decode init.
Originally committed as revision 21102 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
1b168a428d
commit
261a3c2d05
@ -114,9 +114,6 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx)
|
|||||||
if (MPV_common_init(s) < 0)
|
if (MPV_common_init(s) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (CONFIG_MSMPEG4_DECODER && s->h263_msmpeg4)
|
|
||||||
ff_msmpeg4_decode_init(s);
|
|
||||||
|
|
||||||
h263_decode_init_vlc(s);
|
h263_decode_init_vlc(s);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -741,59 +738,3 @@ AVCodec h263_decoder = {
|
|||||||
.long_name= NULL_IF_CONFIG_SMALL("H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2"),
|
.long_name= NULL_IF_CONFIG_SMALL("H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2"),
|
||||||
.pix_fmts= ff_hwaccel_pixfmt_list_420,
|
.pix_fmts= ff_hwaccel_pixfmt_list_420,
|
||||||
};
|
};
|
||||||
|
|
||||||
AVCodec msmpeg4v1_decoder = {
|
|
||||||
"msmpeg4v1",
|
|
||||||
CODEC_TYPE_VIDEO,
|
|
||||||
CODEC_ID_MSMPEG4V1,
|
|
||||||
sizeof(MpegEncContext),
|
|
||||||
ff_h263_decode_init,
|
|
||||||
NULL,
|
|
||||||
ff_h263_decode_end,
|
|
||||||
ff_h263_decode_frame,
|
|
||||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
|
|
||||||
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 1"),
|
|
||||||
.pix_fmts= ff_pixfmt_list_420,
|
|
||||||
};
|
|
||||||
|
|
||||||
AVCodec msmpeg4v2_decoder = {
|
|
||||||
"msmpeg4v2",
|
|
||||||
CODEC_TYPE_VIDEO,
|
|
||||||
CODEC_ID_MSMPEG4V2,
|
|
||||||
sizeof(MpegEncContext),
|
|
||||||
ff_h263_decode_init,
|
|
||||||
NULL,
|
|
||||||
ff_h263_decode_end,
|
|
||||||
ff_h263_decode_frame,
|
|
||||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
|
|
||||||
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"),
|
|
||||||
.pix_fmts= ff_pixfmt_list_420,
|
|
||||||
};
|
|
||||||
|
|
||||||
AVCodec msmpeg4v3_decoder = {
|
|
||||||
"msmpeg4",
|
|
||||||
CODEC_TYPE_VIDEO,
|
|
||||||
CODEC_ID_MSMPEG4V3,
|
|
||||||
sizeof(MpegEncContext),
|
|
||||||
ff_h263_decode_init,
|
|
||||||
NULL,
|
|
||||||
ff_h263_decode_end,
|
|
||||||
ff_h263_decode_frame,
|
|
||||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
|
|
||||||
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"),
|
|
||||||
.pix_fmts= ff_pixfmt_list_420,
|
|
||||||
};
|
|
||||||
|
|
||||||
AVCodec wmv1_decoder = {
|
|
||||||
"wmv1",
|
|
||||||
CODEC_TYPE_VIDEO,
|
|
||||||
CODEC_ID_WMV1,
|
|
||||||
sizeof(MpegEncContext),
|
|
||||||
ff_h263_decode_init,
|
|
||||||
NULL,
|
|
||||||
ff_h263_decode_end,
|
|
||||||
ff_h263_decode_frame,
|
|
||||||
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
|
|
||||||
.long_name= NULL_IF_CONFIG_SMALL("Windows Media Video 7"),
|
|
||||||
.pix_fmts= ff_pixfmt_list_420,
|
|
||||||
};
|
|
||||||
|
@ -860,7 +860,7 @@ void msmpeg4_encode_mb(MpegEncContext * s,
|
|||||||
int motion_x, int motion_y);
|
int motion_x, int motion_y);
|
||||||
int msmpeg4_decode_picture_header(MpegEncContext * s);
|
int msmpeg4_decode_picture_header(MpegEncContext * s);
|
||||||
int msmpeg4_decode_ext_header(MpegEncContext * s, int buf_size);
|
int msmpeg4_decode_ext_header(MpegEncContext * s, int buf_size);
|
||||||
int ff_msmpeg4_decode_init(MpegEncContext *s);
|
int ff_msmpeg4_decode_init(AVCodecContext *avctx);
|
||||||
void ff_msmpeg4_encode_init(MpegEncContext *s);
|
void ff_msmpeg4_encode_init(MpegEncContext *s);
|
||||||
int ff_wmv2_decode_picture_header(MpegEncContext * s);
|
int ff_wmv2_decode_picture_header(MpegEncContext * s);
|
||||||
int ff_wmv2_decode_secondary_picture_header(MpegEncContext * s);
|
int ff_wmv2_decode_secondary_picture_header(MpegEncContext * s);
|
||||||
|
@ -1272,12 +1272,15 @@ static int msmpeg4v34_decode_mb(MpegEncContext *s, DCTELEM block[6][64])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* init all vlc decoding tables */
|
/* init all vlc decoding tables */
|
||||||
av_cold int ff_msmpeg4_decode_init(MpegEncContext *s)
|
av_cold int ff_msmpeg4_decode_init(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
|
MpegEncContext *s = avctx->priv_data;
|
||||||
static int done = 0;
|
static int done = 0;
|
||||||
int i;
|
int i;
|
||||||
MVTable *mv;
|
MVTable *mv;
|
||||||
|
|
||||||
|
ff_h263_decode_init(avctx);
|
||||||
|
|
||||||
common_init(s);
|
common_init(s);
|
||||||
|
|
||||||
if (!done) {
|
if (!done) {
|
||||||
@ -1917,3 +1920,59 @@ int ff_msmpeg4_decode_motion(MpegEncContext * s,
|
|||||||
*my_ptr = my;
|
*my_ptr = my;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AVCodec msmpeg4v1_decoder = {
|
||||||
|
"msmpeg4v1",
|
||||||
|
CODEC_TYPE_VIDEO,
|
||||||
|
CODEC_ID_MSMPEG4V1,
|
||||||
|
sizeof(MpegEncContext),
|
||||||
|
ff_msmpeg4_decode_init,
|
||||||
|
NULL,
|
||||||
|
ff_h263_decode_end,
|
||||||
|
ff_h263_decode_frame,
|
||||||
|
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
|
||||||
|
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 1"),
|
||||||
|
.pix_fmts= ff_pixfmt_list_420,
|
||||||
|
};
|
||||||
|
|
||||||
|
AVCodec msmpeg4v2_decoder = {
|
||||||
|
"msmpeg4v2",
|
||||||
|
CODEC_TYPE_VIDEO,
|
||||||
|
CODEC_ID_MSMPEG4V2,
|
||||||
|
sizeof(MpegEncContext),
|
||||||
|
ff_msmpeg4_decode_init,
|
||||||
|
NULL,
|
||||||
|
ff_h263_decode_end,
|
||||||
|
ff_h263_decode_frame,
|
||||||
|
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
|
||||||
|
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"),
|
||||||
|
.pix_fmts= ff_pixfmt_list_420,
|
||||||
|
};
|
||||||
|
|
||||||
|
AVCodec msmpeg4v3_decoder = {
|
||||||
|
"msmpeg4",
|
||||||
|
CODEC_TYPE_VIDEO,
|
||||||
|
CODEC_ID_MSMPEG4V3,
|
||||||
|
sizeof(MpegEncContext),
|
||||||
|
ff_msmpeg4_decode_init,
|
||||||
|
NULL,
|
||||||
|
ff_h263_decode_end,
|
||||||
|
ff_h263_decode_frame,
|
||||||
|
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
|
||||||
|
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"),
|
||||||
|
.pix_fmts= ff_pixfmt_list_420,
|
||||||
|
};
|
||||||
|
|
||||||
|
AVCodec wmv1_decoder = {
|
||||||
|
"wmv1",
|
||||||
|
CODEC_TYPE_VIDEO,
|
||||||
|
CODEC_ID_WMV1,
|
||||||
|
sizeof(MpegEncContext),
|
||||||
|
ff_msmpeg4_decode_init,
|
||||||
|
NULL,
|
||||||
|
ff_h263_decode_end,
|
||||||
|
ff_h263_decode_frame,
|
||||||
|
CODEC_CAP_DRAW_HORIZ_BAND | CODEC_CAP_DR1,
|
||||||
|
.long_name= NULL_IF_CONFIG_SMALL("Windows Media Video 7"),
|
||||||
|
.pix_fmts= ff_pixfmt_list_420,
|
||||||
|
};
|
||||||
|
@ -2997,7 +2997,7 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx)
|
|||||||
return -1;
|
return -1;
|
||||||
if (vc1_init_common(v) < 0) return -1;
|
if (vc1_init_common(v) < 0) return -1;
|
||||||
// only for ff_msmp4_mb_i_table
|
// only for ff_msmp4_mb_i_table
|
||||||
if (ff_msmpeg4_decode_init(s) < 0) return -1;
|
if (ff_msmpeg4_decode_init(avctx) < 0) return -1;
|
||||||
|
|
||||||
avctx->coded_width = avctx->width;
|
avctx->coded_width = avctx->width;
|
||||||
avctx->coded_height = avctx->height;
|
avctx->coded_height = avctx->height;
|
||||||
|
@ -465,7 +465,7 @@ static av_cold int wmv2_decode_init(AVCodecContext *avctx){
|
|||||||
avctx->idct_algo=FF_IDCT_WMV2;
|
avctx->idct_algo=FF_IDCT_WMV2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ff_h263_decode_init(avctx) < 0)
|
if(ff_msmpeg4_decode_init(avctx) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
ff_wmv2_common_init(w);
|
ff_wmv2_common_init(w);
|
||||||
|
Loading…
Reference in New Issue
Block a user