const dec_2dvlc_t *r, int esc_golomb_order,
int qp, uint8_t *dst, int stride) {
int i, level_code, esc_code, level, run, mask;
- DCTELEM level_buf[64];
- uint8_t run_buf[64];
+ DCTELEM level_buf[65];
+ uint8_t run_buf[65];
DCTELEM *block = h->block;
for(i=0;i<65;i++) {
int align;
align = (-get_bits_count(gb)) & 7;
if((show_bits_long(gb,24+align) & 0xFFFFFF) == 0x000001) {
- get_bits_long(gb,24+align);
+ skip_bits_long(gb,24+align);
h->stc = get_bits(gb,8);
decode_slice_header(h,gb);
}
return -1;
ff_init_scantable(s->dsp.idct_permutation,&h->scantable,ff_zigzag_direct);
}
- get_bits(&s->gb,16);//bbv_dwlay
+ skip_bits(&s->gb,16);//bbv_dwlay
if(h->stc == PIC_PB_START_CODE) {
h->pic_type = get_bits(&s->gb,2) + FF_I_TYPE;
if(h->pic_type > FF_B_TYPE) {
} else {
h->pic_type = FF_I_TYPE;
if(get_bits1(&s->gb))
- get_bits(&s->gb,16);//time_code
+ skip_bits(&s->gb,16);//time_code
}
/* release last B frame */
if(h->picture.data[0])
if(h->progressive)
h->pic_structure = 1;
else if(!(h->pic_structure = get_bits1(&s->gb) && (h->stc == PIC_PB_START_CODE)) )
- get_bits1(&s->gb); //advanced_pred_mode_disable
+ skip_bits1(&s->gb); //advanced_pred_mode_disable
skip_bits1(&s->gb); //top_field_first
skip_bits1(&s->gb); //repeat_first_field
h->qp_fixed = get_bits1(&s->gb);
}
static int cavs_decode_frame(AVCodecContext * avctx,void *data, int *data_size,
- uint8_t * buf, int buf_size) {
+ const uint8_t * buf, int buf_size) {
AVSContext *h = avctx->priv_data;
MpegEncContext *s = &h->s;
int input_size;
const uint8_t *buf_end;
const uint8_t *buf_ptr;
AVFrame *picture = data;
- uint32_t stc;
+ uint32_t stc = -1;
s->avctx = avctx;
cavs_decode_frame,
CODEC_CAP_DR1 | CODEC_CAP_DELAY,
.flush= cavs_flush,
+ .long_name= NULL_IF_CONFIG_SMALL("Chinese AVS video (AVS1-P2, JiZhun profile)"),
};