static always_inline void decode_line(FFV1Context *s, int w, int_fast16_t *sample[2], int plane_index, int bits){
static inline void decode_line(FFV1Context *s, int w, int_fast16_t *sample[2], int plane_index, int bits){
static always_inline void decode_line(FFV1Context *s, int w, int_fast16_t *sample[2], int plane_index, int bits){    PlaneContext * const p= &s->plane[plane_index];    CABACContext * const c= &s->c;    int x;    int run_count=0;    int run_mode=0;    int run_index= s->run_index;    for(x=0; x<w; x++){        int diff, context, sign;                 context= get_context(s, sample[1] + x, sample[0] + x, sample[1] + x);        if(context < 0){            context= -context;            sign=1;        }else            sign=0;                if(s->ac)            diff= get_symbol(c, p->state[context], 1, bits-1);        else{            if(context == 0 && run_mode==0) run_mode=1;                        if(run_mode){                if(run_count==0 && run_mode==1){                    if(get_bits1(&s->gb)){                        run_count = 1<<log2_run[run_index];                        if(x + run_count <= w) run_index++;                    }else{                        if(log2_run[run_index]) run_count = get_bits(&s->gb, log2_run[run_index]);                        else run_count=0;                        if(run_index) run_index--;                        run_mode=2;                    }                }                run_count--;                if(run_count < 0){                    run_mode=0;                    run_count=0;                    diff= get_vlc_symbol(&s->gb, &p->vlc_state[context], bits);                    if(diff>=0) diff++;                }else                    diff=0;            }else                diff= get_vlc_symbol(&s->gb, &p->vlc_state[context], bits);            //            printf("count:%d index:%d, mode:%d, x:%d y:%d pos:%d\n", run_count, run_index, run_mode, x, y, get_bits_count(&s->gb));        }        if(sign) diff= -diff;        sample[1][x]= (predict(sample[1] + x, sample[0] + x) + diff) & ((1<<bits)-1);    }    s->run_index= run_index;        }