Browse Source

mpeg4videodec: split static decoder table init out

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.1
Michael Niedermayer 13 years ago
parent
commit
1bd024ec77
2 changed files with 19 additions and 14 deletions
  1. +1
    -0
      libavcodec/mpeg4video.h
  2. +18
    -14
      libavcodec/mpeg4videodec.c

+ 1
- 0
libavcodec/mpeg4video.h View File

@@ -101,6 +101,7 @@ int ff_mpeg4_decode_partitions(MpegEncContext *s);
int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s);
int ff_mpeg4_decode_video_packet_header(MpegEncContext *s);
void ff_mpeg4_init_direct_mv(MpegEncContext *s);
int ff_mpeg4videodec_static_init(void);

/**
*


+ 18
- 14
libavcodec/mpeg4videodec.c View File

@@ -2255,23 +2255,10 @@ end:
return decode_vop_header(s, gb);
}

static av_cold int decode_init(AVCodecContext *avctx)
{
MpegEncContext *s = avctx->priv_data;
int ret;
av_cold int ff_mpeg4videodec_static_init(void) {
static int done = 0;

s->divx_version=
s->divx_build=
s->xvid_build=
s->lavc_build= -1;

if((ret=ff_h263_decode_init(avctx)) < 0)
return ret;

if (!done) {
done = 1;

ff_init_rl(&ff_mpeg4_rl_intra, ff_mpeg4_static_rl_table_store[0]);
ff_init_rl(&ff_rvlc_rl_inter, ff_mpeg4_static_rl_table_store[1]);
ff_init_rl(&ff_rvlc_rl_intra, ff_mpeg4_static_rl_table_store[2]);
@@ -2290,7 +2277,24 @@ static av_cold int decode_init(AVCodecContext *avctx)
INIT_VLC_STATIC(&mb_type_b_vlc, MB_TYPE_B_VLC_BITS, 4,
&ff_mb_type_b_tab[0][1], 2, 1,
&ff_mb_type_b_tab[0][0], 2, 1, 16);
done = 1;
}
}

static av_cold int decode_init(AVCodecContext *avctx)
{
MpegEncContext *s = avctx->priv_data;
int ret;

s->divx_version=
s->divx_build=
s->xvid_build=
s->lavc_build= -1;

if((ret=ff_h263_decode_init(avctx)) < 0)
return ret;

ff_mpeg4videodec_static_init();

s->h263_pred = 1;
s->low_delay = 0; //default, might be overridden in the vol header during header parsing


Loading…
Cancel
Save