亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? decoder.c

?? 圖象壓縮程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
    }    else if( h->sps->i_poc_type == 1 )    {        /* FIXME */        return -1;    }    else    {        if( nal->i_type == NAL_SLICE_IDR )        {            h->i_frame_offset = 0;            h->i_poc = 0;        }        else        {            if( h->sh.i_frame_num < h->i_frame_num )            {                h->i_frame_offset += 1 << h->sps->i_log2_max_frame_num;            }            if( nal->i_ref_idc > 0 )            {                h->i_poc = 2 * ( h->i_frame_offset + h->sh.i_frame_num );            }            else            {                h->i_poc = 2 * ( h->i_frame_offset + h->sh.i_frame_num ) - 1;            }        }        h->i_frame_num = h->sh.i_frame_num;    }    fprintf( stderr, "x264: pic type=%s poc:%d\n",             h->sh.i_type == SLICE_TYPE_I ? "I" : (h->sh.i_type == SLICE_TYPE_P ? "P" : "B?" ),             h->i_poc );    if( h->sh.i_type != SLICE_TYPE_I && h->sh.i_type != SLICE_TYPE_P )    {        fprintf( stderr, "only SLICE I/P supported\n" );        return -1;    }    /* read and do the ref pic reordering */    if( x264_slice_header_ref_pic_reordering( h, s ) < 0 )    {        return -1;    }    if( ( (h->sh.i_type == SLICE_TYPE_P || h->sh.i_type == SLICE_TYPE_SP) && h->sh.pps->b_weighted_pred  ) ||        ( h->sh.i_type == SLICE_TYPE_B && h->sh.pps->b_weighted_bipred ) )    {        if( x264_slice_header_pred_weight_table( h, s ) < 0 )        {            return -1;        }    }    if( nal->i_ref_idc != 0 )    {        x264_slice_header_dec_ref_pic_marking( h, s, nal->i_type );    }    if( x264_slice_header_part2_read( s, &h->sh ) < 0 )    {        return -1;    }    return 0;}static int x264_slice_data_decode( x264_t *h, bs_t *s ){    int mb_xy = h->sh.i_first_mb;    int i_ret = 0;    if( h->pps->b_cabac )    {        /* TODO: alignement and cabac init */    }    /* FIXME field decoding */    for( ;; )    {        x264_mb_context_t context;        x264_macroblock_t *mb;        if( mb_xy >= h->sps->i_mb_width * h->sps->i_mb_height )        {            break;        }        mb = &h->mb[mb_xy];        /* load neighbour */        x264_macroblock_context_load( h, mb, &context );        if( h->pps->b_cabac )        {            if( h->sh.i_type != SLICE_TYPE_I && h->sh.i_type != SLICE_TYPE_SI )            {                /* TODO */            }            i_ret = x264_macroblock_read_cabac( h, s, mb );        }        else        {            if( h->sh.i_type != SLICE_TYPE_I && h->sh.i_type != SLICE_TYPE_SI )            {                int i_skip = bs_read_ue( s );                while( i_skip > 0 )                {                    x264_macroblock_decode_skip( h, mb );                    /* next macroblock */                    mb_xy++;                    if( mb_xy >= h->sps->i_mb_width * h->sps->i_mb_height )                    {                        break;                    }                    mb++;                    /* load neighbour */                    x264_macroblock_context_load( h, mb, &context );                    i_skip--;                }                if( mb_xy >= h->sps->i_mb_width * h->sps->i_mb_height )                {                    break;                }            }            i_ret = x264_macroblock_read_cavlc( h, s, mb );        }        if( i_ret < 0 )        {            fprintf( stderr, "x264_macroblock_read failed [%d,%d]\n", mb->i_mb_x, mb->i_mb_y );            break;        }        if( x264_macroblock_decode( h, mb ) < 0 )        {            fprintf( stderr, "x264_macroblock_decode failed\n" );            /* try to do some error correction ;) */        }        mb_xy++;    }    if( i_ret >= 0 )    {        int i;        /* expand border for frame reference TODO avoid it when using b-frame */        x264_frame_expand_border( h->fdec );        /* apply deblocking filter to the current decoded picture */        if( !h->pps->b_deblocking_filter_control || h->sh.i_disable_deblocking_filter_idc != 1 )        {            x264_frame_deblocking_filter( h, h->sh.i_type );        }#if 0        /* expand border for frame reference TODO avoid it when using b-frame */        x264_frame_expand_border( h->fdec );#endif        h->picture->i_plane = h->fdec->i_plane;        for( i = 0; i < h->picture->i_plane; i++ )        {            h->picture->i_stride[i] = h->fdec->i_stride[i];            h->picture->plane[i]    = h->fdec->plane[i];        }        /* move frame in the buffer FIXME won't work for B-frame */        h->fdec = h->freference[h->sps->i_num_ref_frames];        for( i = h->sps->i_num_ref_frames; i > 0; i-- )        {            h->freference[i] = h->freference[i-1];        }        h->freference[0] = h->fdec;    }    return i_ret;}/**************************************************************************** * ******************************* x264 libs ********************************** * ****************************************************************************/int x264_nal_decode( x264_nal_t *nal, void *p_data, int i_data ){    uint8_t *src = p_data;    uint8_t *end = &src[i_data];    uint8_t *dst = nal->p_payload;    nal->i_type    = src[0]&0x1f;    nal->i_ref_idc = (src[0] >> 5)&0x03;    src++;    while( src < end )    {        if( src < end - 3 && src[0] == 0x00 && src[1] == 0x00  && src[2] == 0x03 )        {            *dst++ = 0x00;            *dst++ = 0x00;            src += 3;        }        *dst++ = *src++;    }    nal->i_payload = dst - (uint8_t*)p_data;    return 0;}/**************************************************************************** * x264_decoder_open: ****************************************************************************/x264_t *x264_decoder_open   ( x264_param_t *param ){    x264_t *h = x264_malloc( sizeof( x264_t ) );    int i;    memcpy( &h->param, param, sizeof( x264_param_t ) );    h->cpu = param->cpu;    /* no SPS and PPS active yet */    h->sps = NULL;    h->pps = NULL;    for( i = 0; i < 32; i++ )    {        h->sps_array[i].i_id = -1;  /* invalidate it */    }    for( i = 0; i < 256; i++ )    {        h->pps_array[i].i_id = -1;  /* invalidate it */    }    h->picture = x264_malloc( sizeof( x264_picture_t ) );    h->picture->i_width = 0;    h->picture->i_height= 0;    /* init predict_XxX */    x264_predict_16x16_init( h->cpu, h->predict_16x16 );    x264_predict_8x8_init( h->cpu, h->predict_8x8 );    x264_predict_4x4_init( h->cpu, h->predict_4x4 );    x264_pixel_init( h->cpu, &h->pixf );    x264_dct_init( h->cpu, &h->dctf );    x264_mc_init( h->cpu, h->mc );    /* create the vlc table (we could remove it from x264_t but it will need     * to introduce a x264_init() for global librarie) */    for( i = 0; i < 5; i++ )    {        /* max 2 step */        h->x264_coeff_token_lookup[i] = x264_vlc_table_lookup_new( x264_coeff_token[i], 17*4, 4 );    }    /* max 2 step */    h->x264_level_prefix_lookup = x264_vlc_table_lookup_new( x264_level_prefix, 16, 8 );    for( i = 0; i < 15; i++ )    {        /* max 1 step */        h->x264_total_zeros_lookup[i] = x264_vlc_table_lookup_new( x264_total_zeros[i], 16, 9 );    }    for( i = 0;i < 3; i++ )    {        /* max 1 step */        h->x264_total_zeros_dc_lookup[i] = x264_vlc_table_lookup_new( x264_total_zeros_dc[i], 4, 3 );    }    for( i = 0;i < 7; i++ )    {        /* max 2 step */        h->x264_run_before_lookup[i] = x264_vlc_table_lookup_new( x264_run_before[i], 15, 6 );    }    return h;}/**************************************************************************** * x264_decoder_decode: decode one nal unit ****************************************************************************/int     x264_decoder_decode( x264_t *h,                             x264_picture_t **pp_pic, x264_nal_t *nal ){    int i_ret = 0;    bs_t bs;    /* no picture */    *pp_pic = NULL;    /* init bitstream reader */    bs_init( &bs, nal->p_payload, nal->i_payload );    switch( nal->i_type )    {        case NAL_SPS:            if( ( i_ret = x264_sps_read( &bs, h->sps_array ) ) < 0 )            {                fprintf( stderr, "x264: x264_sps_read failed\n" );            }            break;        case NAL_PPS:            if( ( i_ret = x264_pps_read( &bs, h->pps_array ) ) < 0 )            {                fprintf( stderr, "x264: x264_pps_read failed\n" );            }            break;        case NAL_SLICE_IDR:            fprintf( stderr, "x264: NAL_SLICE_IDR\n" );            x264_slice_idr( h );        case NAL_SLICE:            if( ( i_ret = x264_slice_header_decode( h, &bs, nal ) ) < 0 )            {                fprintf( stderr, "x264: x264_slice_header_decode failed\n" );            }            if( h->sh.i_redundant_pic_cnt == 0 && i_ret == 0 )            {                if( ( i_ret = x264_slice_data_decode( h, &bs ) ) < 0 )                {                    fprintf( stderr, "x264: x264_slice_data_decode failed\n" );                }                else                {                    *pp_pic = h->picture;                }            }            break;        case NAL_SLICE_DPA:        case NAL_SLICE_DPB:        case NAL_SLICE_DPC:            fprintf( stderr, "partitioned stream unsupported\n" );            i_ret = -1;            break;        case NAL_SEI:        default:            break;    }    /* restore CPU state (before using float again) */    x264_cpu_restore( h->cpu );    return i_ret;}/**************************************************************************** * x264_decoder_close: ****************************************************************************/void    x264_decoder_close  ( x264_t *h ){    int i;    if( h->picture->i_width != 0 && h->picture->i_height != 0 )    {        for( i = 0; i < h->sps->i_num_ref_frames + 1; i++ )        {            x264_frame_delete( h->freference[i]);        }        x264_free( h->mb );    }    /* free vlc table */    for( i = 0; i < 5; i++ )    {        x264_vlc_table_lookup_delete( h->x264_coeff_token_lookup[i] );    }    x264_vlc_table_lookup_delete( h->x264_level_prefix_lookup );    for( i = 0; i < 15; i++ )    {        x264_vlc_table_lookup_delete( h->x264_total_zeros_lookup[i] );    }    for( i = 0;i < 3; i++ )    {        x264_vlc_table_lookup_delete( h->x264_total_zeros_dc_lookup[i] );    }    for( i = 0;i < 7; i++ )    {        x264_vlc_table_lookup_delete( h->x264_run_before_lookup[i] );    }    x264_free( h->picture );    x264_free( h );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧美一区在线观看| 91精品一区二区三区在线观看| 色综合久久久久网| 91精品在线观看入口| 国产精品美女www爽爽爽| 午夜不卡在线视频| 色综合一个色综合亚洲| 国产精品视频免费| 日韩av在线发布| 欧洲视频一区二区| 中文字幕av免费专区久久| 美女视频一区在线观看| 91久久久免费一区二区| 国产精品久久久久久久午夜片| 免费观看在线综合| 777午夜精品视频在线播放| 成人欧美一区二区三区小说| 国产精品一级黄| 欧美精品一区二区三区很污很色的| 午夜精品久久久久| 久久久精品蜜桃| 欧美日韩五月天| 国产+成+人+亚洲欧洲自线| 偷拍自拍另类欧美| 久久亚洲精华国产精华液| 亚洲一区二区在线免费观看视频| 91视频.com| 国产无人区一区二区三区| 56国语精品自产拍在线观看| 91免费观看视频| 黑人巨大精品欧美一区| 欧美在线观看禁18| 日韩女同互慰一区二区| 一本到三区不卡视频| 国产精品888| 成人晚上爱看视频| 亚洲高清在线精品| 欧美日韩一区小说| 精品一区二区三区蜜桃| 欧美视频第二页| 亚洲不卡一区二区三区| 精品国产三级电影在线观看| 日韩一区二区免费电影| 久久免费精品国产久精品久久久久| 日韩午夜在线观看| 777精品伊人久久久久大香线蕉| 欧美日韩夫妻久久| 91久久香蕉国产日韩欧美9色| 国产精品77777| 丁香婷婷综合激情五月色| 高清国产一区二区| 99综合电影在线视频| 欧美色偷偷大香| 91精品国产色综合久久不卡电影| 国产v综合v亚洲欧| 成人国产一区二区三区精品| 亚洲影院免费观看| 久久久99久久| 国产欧美一区二区精品仙草咪| 日韩亚洲欧美在线观看| 色噜噜偷拍精品综合在线| 91精品国产综合久久久久久久久久| 在线播放日韩导航| 久久综合九色综合欧美就去吻| 26uuu精品一区二区三区四区在线| 欧美成人vps| 国产精品久久久久久久蜜臀 | 天堂久久久久va久久久久| 日韩欧美亚洲另类制服综合在线| 欧美日韩一区不卡| 国产成人亚洲精品狼色在线| 国产美女视频91| 制服丝袜中文字幕一区| 亚洲高清在线视频| 精品国产一区二区三区久久久蜜月| 国产一区二区三区蝌蚪| 中文字幕一区二区三区不卡 | 久久se这里有精品| 1区2区3区欧美| 欧美不卡一二三| 91在线高清观看| 国产在线精品免费av| 亚洲超丰满肉感bbw| 国产精品久久久久9999吃药| 欧美人妖巨大在线| eeuss国产一区二区三区| 蜜桃久久久久久| 亚洲黄色av一区| 国产免费观看久久| 日韩欧美的一区二区| 欧美视频自拍偷拍| 成人国产一区二区三区精品| 狠狠色丁香婷婷综合| 亚洲国产精品麻豆| 日韩美女精品在线| 国产欧美一区二区精品婷婷 | 五月天久久比比资源色| 中文字幕在线不卡国产视频| 26uuu国产日韩综合| 欧美一区二区视频在线观看2020| 99精品久久99久久久久| 风流少妇一区二区| 亚洲影视资源网| 亚洲欧美激情在线| 2021国产精品久久精品| 欧美一区二区三区啪啪| 欧美日韩中文国产| 亚洲丝袜制服诱惑| 国产精品久久久久国产精品日日| 欧美成人aa大片| 678五月天丁香亚洲综合网| 国内精品视频666| 首页综合国产亚洲丝袜| 精品sm在线观看| 看片网站欧美日韩| 国产精品麻豆一区二区| 91麻豆产精品久久久久久 | 日本成人在线网站| 亚洲视频1区2区| 亚洲色图制服丝袜| 综合激情成人伊人| 一区二区三区不卡视频在线观看 | 首页亚洲欧美制服丝腿| 天天做天天摸天天爽国产一区 | 国产精品久久一卡二卡| 国产精品无码永久免费888| 亚洲国产精品二十页| 亚洲色图欧洲色图婷婷| 夜夜爽夜夜爽精品视频| 亚洲夂夂婷婷色拍ww47| 亚洲一卡二卡三卡四卡五卡| 亚洲第一成年网| 美女视频黄 久久| 国产一区二区伦理| 成人短视频下载| 欧美亚洲综合色| 日韩免费一区二区三区在线播放| 亚洲精品在线免费播放| 一区二区中文视频| 香蕉成人啪国产精品视频综合网| 日韩成人精品视频| 国产乱人伦偷精品视频免下载| www.一区二区| 欧美日韩视频在线一区二区| 日韩视频不卡中文| 国产精品福利影院| 天堂一区二区在线| 国产成人午夜99999| 欧美另类高清zo欧美| 日韩亚洲欧美在线| 中文字幕一区二区三中文字幕| 一区二区国产视频| 国产精品77777| 91电影在线观看| 精品国产青草久久久久福利| 中文字幕一区在线观看视频| 日本vs亚洲vs韩国一区三区| 国产传媒欧美日韩成人| 欧美日韩在线直播| 国产精品久久久久久久午夜片| 亚洲国产成人av网| av激情综合网| 欧美刺激午夜性久久久久久久| 国产精品色婷婷久久58| 污片在线观看一区二区 | 日本成人在线电影网| 国产成人鲁色资源国产91色综| 99久久99久久精品国产片果冻| 国产免费久久精品| 精品免费视频一区二区| 亚洲色图视频网| 高清国产一区二区三区| 欧美一区二区三区免费在线看| 国产精品五月天| 国产美女在线精品| 日韩一区二区高清| 午夜欧美大尺度福利影院在线看| 国产suv一区二区三区88区| 欧美一区二区三区小说| 伊人性伊人情综合网| 成人国产精品视频| 久久午夜老司机| 奇米色777欧美一区二区| 欧美色男人天堂| 亚洲欧洲美洲综合色网| 激情综合网av| 欧美成人性福生活免费看| 亚洲成人高清在线| 欧美在线观看视频在线| 亚洲欧美日韩系列| 成人黄色片在线观看| 国产视频一区二区在线观看| 奇米色一区二区| 91精品国产一区二区三区蜜臀| 亚洲国产视频一区| 欧美日韩综合在线| 亚洲综合男人的天堂| 色视频成人在线观看免| 一区2区3区在线看| 欧美色偷偷大香|