h->chroma_subblock_offset[i]= 2*((scan8[i] - scan8[0])&7) + 2*s->uvlinesize*((scan8[i] - scan8[0])>>3);
h->block_offset[24+i]= 4*((scan8[i] - scan8[0])&7) + 8*s->linesize*((scan8[i] - scan8[0])>>3);
static void frame_start(H264Context *h){    MpegEncContext * const s = &h->s;    int i;    MPV_frame_start(s, s->avctx);    ff_er_frame_start(s);    assert(s->linesize && s->uvlinesize);    for(i=0; i<16; i++){        h->block_offset[i]= 4*((scan8[i] - scan8[0])&7) + 4*s->linesize*((scan8[i] - scan8[0])>>3);        h->chroma_subblock_offset[i]= 2*((scan8[i] - scan8[0])&7) + 2*s->uvlinesize*((scan8[i] - scan8[0])>>3);    }    for(i=0; i<4; i++){        h->block_offset[16+i]=        h->block_offset[20+i]= 4*((scan8[i] - scan8[0])&7) + 4*s->uvlinesize*((scan8[i] - scan8[0])>>3);    }    /* can't be in alloc_tables because linesize isn't known there.     * FIXME: redo bipred weight to not require extra buffer? */    if(!s->obmc_scratchpad)        s->obmc_scratchpad = av_malloc(16*s->linesize + 2*8*s->uvlinesize);//    s->decode= (s->flags&CODEC_FLAG_PSNR) || !s->encoding || s->current_picture.reference /*|| h->contains_intra*/ || 1;}