av_log(s->avctx, AV_LOG_DEBUG, "invalid coding type\n");
av_log(s->avctx, AV_LOG_ERROR, "invalid coding type\n");
static inline int decode_subframe(FLACContext *s, int channel){    int type, wasted = 0;    int i, tmp;        s->curr_bps = s->bps;    if(channel == 0){        if(s->decorrelation == RIGHT_SIDE)            s->curr_bps++;    }else{        if(s->decorrelation == LEFT_SIDE || s->decorrelation == MID_SIDE)            s->curr_bps++;    }    if (get_bits1(&s->gb))    {        av_log(s->avctx, AV_LOG_DEBUG, "invalid subframe padding\n");        return -1;    }    type = get_bits(&s->gb, 6);//    wasted = get_bits1(&s->gb);    //    if (wasted)//    {//        while (!get_bits1(&s->gb))//            wasted++;//        if (wasted)//            wasted++;//        s->curr_bps -= wasted;//    }#if 0    wasted= 16 - av_log2(show_bits(&s->gb, 17));    skip_bits(&s->gb, wasted+1);    s->curr_bps -= wasted;#else    if (get_bits1(&s->gb))    {        wasted = 1;        while (!get_bits1(&s->gb))            wasted++;        s->curr_bps -= wasted;        av_log(s->avctx, AV_LOG_DEBUG, "%d wasted bits\n", wasted);    }#endif//FIXME use av_log2 for types    if (type == 0)    {        av_log(s->avctx, AV_LOG_DEBUG, "coding type: constant\n");        tmp = get_sbits(&s->gb, s->curr_bps);        for (i = 0; i < s->blocksize; i++)            s->decoded[channel][i] = tmp;    }    else if (type == 1)    {        av_log(s->avctx, AV_LOG_DEBUG, "coding type: verbatim\n");        for (i = 0; i < s->blocksize; i++)            s->decoded[channel][i] = get_sbits(&s->gb, s->curr_bps);    }    else if ((type >= 8) && (type <= 12))    {//        av_log(s->avctx, AV_LOG_DEBUG, "coding type: fixed\n");        if (decode_subframe_fixed(s, channel, type & ~0x8) < 0)            return -1;    }    else if (type >= 32)    {//        av_log(s->avctx, AV_LOG_DEBUG, "coding type: lpc\n");        if (decode_subframe_lpc(s, channel, (type & ~0x20)+1) < 0)            return -1;    }    else    {        av_log(s->avctx, AV_LOG_DEBUG, "invalid coding type\n");        return -1;    }            if (wasted)    {        int i;        for (i = 0; i < s->blocksize; i++)            s->decoded[channel][i] <<= wasted;    }    return 0;}