*/
/**
- * @file h261dec.c
+ * @file libavcodec/h261dec.c
* H.261 decoder.
*/
if(!done){
done = 1;
- init_vlc(&h261_mba_vlc, H261_MBA_VLC_BITS, 35,
+ INIT_VLC_STATIC(&h261_mba_vlc, H261_MBA_VLC_BITS, 35,
h261_mba_bits, 1, 1,
- h261_mba_code, 1, 1, 1);
- init_vlc(&h261_mtype_vlc, H261_MTYPE_VLC_BITS, 10,
+ h261_mba_code, 1, 1, 662);
+ INIT_VLC_STATIC(&h261_mtype_vlc, H261_MTYPE_VLC_BITS, 10,
h261_mtype_bits, 1, 1,
- h261_mtype_code, 1, 1, 1);
- init_vlc(&h261_mv_vlc, H261_MV_VLC_BITS, 17,
+ h261_mtype_code, 1, 1, 80);
+ INIT_VLC_STATIC(&h261_mv_vlc, H261_MV_VLC_BITS, 17,
&h261_mv_tab[0][1], 2, 1,
- &h261_mv_tab[0][0], 2, 1, 1);
- init_vlc(&h261_cbp_vlc, H261_CBP_VLC_BITS, 63,
+ &h261_mv_tab[0][0], 2, 1, 144);
+ INIT_VLC_STATIC(&h261_cbp_vlc, H261_CBP_VLC_BITS, 63,
&h261_cbp_tab[0][1], 2, 1,
- &h261_cbp_tab[0][0], 2, 1, 1);
+ &h261_cbp_tab[0][0], 2, 1, 512);
init_rl(&h261_rl_tcoeff, ff_h261_rl_table_store);
- init_vlc_rl(&h261_rl_tcoeff, 1);
+ INIT_VLC_RL(h261_rl_tcoeff, 552);
}
}
skip_bits(&s->gb, 8);
}
- if(s->qscale==0)
- return -1;
+ if(s->qscale==0) {
+ av_log(s->avctx, AV_LOG_ERROR, "qscale has forbidden 0 value\n");
+ if (s->avctx->error_recognition >= FF_ER_COMPLIANT)
+ return -1;
+ }
// For the first transmitted macroblock in a GOB, MBA is the absolute address. For
// subsequent macroblocks, MBA is the difference between the absolute addresses of
static int h261_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- const uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
H261Context *h= avctx->priv_data;
MpegEncContext *s = &h->s;
int ret;
h261_decode_end,
h261_decode_frame,
CODEC_CAP_DR1,
- .long_name = "H.261",
+ .long_name = NULL_IF_CONFIG_SMALL("H.261"),
};