aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2010-01-08 19:40:10 +0000
committerMichael Niedermayer <michaelni@gmx.at>2010-01-08 19:40:10 +0000
commit261a3c2d05935420c7055472fa670a763f58740f (patch)
treefa7e505a58e703c485dc0e799ee191ebd39c372d
parent1b168a428d0f401261484f39eeb007cb5430130c (diff)
downloadffmpeg-261a3c2d05935420c7055472fa670a763f58740f.tar.gz
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
-rw-r--r--libavcodec/h263dec.c59
-rw-r--r--libavcodec/mpegvideo.h2
-rw-r--r--libavcodec/msmpeg4.c61
-rw-r--r--libavcodec/vc1dec.c2
-rw-r--r--libavcodec/wmv2dec.c2
5 files changed, 63 insertions, 63 deletions
diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index a8613bb97c..c3837b7371 100644
--- a/libavcodec/h263dec.c
+++ b/libavcodec/h263dec.c
@@ -114,9 +114,6 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx)
if (MPV_common_init(s) < 0)
return -1;
- if (CONFIG_MSMPEG4_DECODER && s->h263_msmpeg4)
- ff_msmpeg4_decode_init(s);
-
h263_decode_init_vlc(s);
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"),
.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,
-};
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index 9e57b5dbec..583b52cae9 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -860,7 +860,7 @@ void msmpeg4_encode_mb(MpegEncContext * s,
int motion_x, int motion_y);
int msmpeg4_decode_picture_header(MpegEncContext * s);
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);
int ff_wmv2_decode_picture_header(MpegEncContext * s);
int ff_wmv2_decode_secondary_picture_header(MpegEncContext * s);
diff --git a/libavcodec/msmpeg4.c b/libavcodec/msmpeg4.c
index 81b535e6fc..fbdc2fa86f 100644
--- a/libavcodec/msmpeg4.c
+++ b/libavcodec/msmpeg4.c
@@ -1272,12 +1272,15 @@ static int msmpeg4v34_decode_mb(MpegEncContext *s, DCTELEM block[6][64])
}
/* 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;
int i;
MVTable *mv;
+ ff_h263_decode_init(avctx);
+
common_init(s);
if (!done) {
@@ -1917,3 +1920,59 @@ int ff_msmpeg4_decode_motion(MpegEncContext * s,
*my_ptr = my;
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,
+};
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index 5f27b3cc53..d2a50a3d61 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -2997,7 +2997,7 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx)
return -1;
if (vc1_init_common(v) < 0) return -1;
// 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_height = avctx->height;
diff --git a/libavcodec/wmv2dec.c b/libavcodec/wmv2dec.c
index b14b5143aa..c7e29881ff 100644
--- a/libavcodec/wmv2dec.c
+++ b/libavcodec/wmv2dec.c
@@ -465,7 +465,7 @@ static av_cold int wmv2_decode_init(AVCodecContext *avctx){
avctx->idct_algo=FF_IDCT_WMV2;
}
- if(ff_h263_decode_init(avctx) < 0)
+ if(ff_msmpeg4_decode_init(avctx) < 0)
return -1;
ff_wmv2_common_init(w);