static inline int decode_residual_inter(AVSContext *h) { int block; /* get coded block pattern */ int cbp = get_ue_golomb(&h->gb); if (cbp > 63) { av_log(h->avctx, AV_LOG_ERROR, "illegal inter cbp\n"); return AVERROR_INVALIDDATA; } h->cbp = cbp_tab[cbp][1]; /* get quantizer */ if (h->cbp && !h->qp_fixed) h->qp = (h->qp + get_se_golomb(&h->gb)) & 63; for (block = 0; block < 4; block++) if (h->cbp & (1 << block)) decode_residual_block(h, &h->gb, inter_dec, 0, h->qp, h->cy + h->luma_scan[block], h->l_stride); decode_residual_chroma(h); return 0; }