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

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

?? cavlc.c

?? H264EncPlayer,H264協議解碼與播放代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
                        T264_predict_mv(t, 0, luma_index[4 * i + 3], 1, &vec);
                        eg_write_se(t->bs, t->mb.vec[0][luma_index[4 * i + 3]].x - vec.x);
                        eg_write_se(t->bs, t->mb.vec[0][luma_index[4 * i + 3]].y - vec.y);
                        break;
                    }
                }
                break;
            default:
                break;
            }
        }
        else
        {
            switch (t->mb.mb_part)
            {
            case MB_16x16:
                 if (t->mb.is_copy != 1)
                 {
                    switch (t->mb.mb_part2[0])
                    {
                    case B_L0_16x16:
                        eg_write_ue(t->bs, 1);
                        if (t->ps.num_ref_idx_l0_active_minus1 > 0)
                        {
                            eg_write_te(t->bs, t->ps.num_ref_idx_l0_active_minus1, t->mb.vec[0][0].refno);
                        }
                        vec = t->mb.vec[0][0];
                        T264_predict_mv(t, 0, 0, 4, &vec);
                        eg_write_se(t->bs, t->mb.vec[0][0].x - vec.x);
                        eg_write_se(t->bs, t->mb.vec[0][0].y - vec.y);
                        break;
                    case B_L1_16x16:
                        eg_write_ue(t->bs, 2);
                        if (t->ps.num_ref_idx_l1_active_minus1 > 0)
                        {
                            eg_write_te(t->bs, t->ps.num_ref_idx_l1_active_minus1, t->mb.vec[1][0].refno);
                        }
                        vec = t->mb.vec[1][0];
                        T264_predict_mv(t, 1, 0, 4, &vec);
                        eg_write_se(t->bs, t->mb.vec[1][0].x - vec.x);
                        eg_write_se(t->bs, t->mb.vec[1][0].y - vec.y);
                        break;
                    case B_Bi_16x16:
                        eg_write_ue(t->bs, 3);
                        if (t->ps.num_ref_idx_l0_active_minus1 > 0)
                        {
                            eg_write_te(t->bs, t->ps.num_ref_idx_l0_active_minus1, t->mb.vec[0][0].refno);
                        }
                        if (t->ps.num_ref_idx_l1_active_minus1 > 0)
                        {
                            eg_write_te(t->bs, t->ps.num_ref_idx_l1_active_minus1, t->mb.vec[1][0].refno);
                        }
                        vec = t->mb.vec[0][0];
                        T264_predict_mv(t, 0, 0, 4, &vec);
                        eg_write_se(t->bs, t->mb.vec[0][0].x - vec.x);
                        eg_write_se(t->bs, t->mb.vec[0][0].y - vec.y);
                        vec = t->mb.vec[1][0];
                        T264_predict_mv(t, 1, 0, 4, &vec);
                        eg_write_se(t->bs, t->mb.vec[1][0].x - vec.x);
                        eg_write_se(t->bs, t->mb.vec[1][0].y - vec.y);
                        break;
                    }
                }
                else
                {
                    eg_write_ue(t->bs, 0);
                }
                break;
            case MB_16x8:
                {
                    static int8_t mode_16x8[3][3] = 
                    {
                        B_L0_L0_16x8, B_L0_L1_16x8, B_L0_Bi_16x8,
                        B_L1_L0_16x8, B_L1_L1_16x8, B_L1_Bi_16x8,
                        B_Bi_L0_16x8, B_Bi_L1_16x8, B_Bi_Bi_16x8
                    };
                    eg_write_ue(t->bs, mode_16x8[t->mb.mb_part2[0] - B_L0_16x8][t->mb.mb_part2[1] - B_L0_16x8]);
                    if (t->ps.num_ref_idx_l0_active_minus1 > 0)
                    {
                        if (t->mb.mb_part2[0] != B_L1_16x8)
                            eg_write_te(t->bs, t->ps.num_ref_idx_l0_active_minus1, t->mb.vec[0][0].refno);
                        if (t->mb.mb_part2[1] != B_L1_16x8)
                            eg_write_te(t->bs, t->ps.num_ref_idx_l0_active_minus1, t->mb.vec[0][8].refno);
                    }
                    if (t->ps.num_ref_idx_l1_active_minus1 > 0)
                    {
                        if (t->mb.mb_part2[0] != B_L0_16x8)
                            eg_write_te(t->bs, t->ps.num_ref_idx_l1_active_minus1, t->mb.vec[1][0].refno);
                        if (t->mb.mb_part2[1] != B_L0_16x8)
                            eg_write_te(t->bs, t->ps.num_ref_idx_l1_active_minus1, t->mb.vec[1][8].refno);
                    }
                    // l0
                    for (i = 0 ; i < 2 ; i ++)
                    {
                        switch(t->mb.mb_part2[i]) 
                        {
                        case B_L0_16x8:
                            vec = t->mb.vec[0][8 * i];
                            T264_predict_mv(t, 0, luma_index[8 * i], 4, &vec);
                            eg_write_se(t->bs, t->mb.vec[0][luma_index[8 * i]].x - vec.x);
                            eg_write_se(t->bs, t->mb.vec[0][luma_index[8 * i]].y - vec.y);
                            break;
                        case B_Bi_16x8:
                            vec = t->mb.vec[0][luma_index[8 * i]];
                            T264_predict_mv(t, 0, luma_index[8 * i], 4, &vec);
                            eg_write_se(t->bs, t->mb.vec[0][luma_index[8 * i]].x - vec.x);
                            eg_write_se(t->bs, t->mb.vec[0][luma_index[8 * i]].y - vec.y);
                        }
                    }
                    for (i = 0 ; i < 2 ; i ++)
                    {
                        switch(t->mb.mb_part2[i]) 
                        {
                        case B_L1_16x8:
                            vec = t->mb.vec[1][luma_index[8 * i]];
                            T264_predict_mv(t, 1, luma_index[8 * i], 4, &vec);
                            eg_write_se(t->bs, t->mb.vec[1][luma_index[8 * i]].x - vec.x);
                            eg_write_se(t->bs, t->mb.vec[1][luma_index[8 * i]].y - vec.y);
                            break;
                        case B_Bi_16x8:
                            vec = t->mb.vec[1][luma_index[8 * i]];
                            T264_predict_mv(t, 1, luma_index[8 * i], 4, &vec);
                            eg_write_se(t->bs, t->mb.vec[1][luma_index[8 * i]].x - vec.x);
                            eg_write_se(t->bs, t->mb.vec[1][luma_index[8 * i]].y - vec.y);
                            break;
                        }
                    }
                }
                break;
            case MB_8x16:
                {
                    static int8_t mode_8x16[3][3] = 
                    {
                        B_L0_L0_8x16, B_L0_L1_8x16, B_L0_Bi_8x16,
                        B_L1_L0_8x16, B_L1_L1_8x16, B_L1_Bi_8x16,
                        B_Bi_L0_8x16, B_Bi_L1_8x16, B_Bi_Bi_8x16
                    };
                    eg_write_ue(t->bs, mode_8x16[t->mb.mb_part2[0] - B_L0_8x16][t->mb.mb_part2[1] - B_L0_8x16]);
                    if (t->ps.num_ref_idx_l0_active_minus1 > 0)
                    {
                        if (t->mb.mb_part2[0] != B_L1_8x16)
                            eg_write_te(t->bs, t->ps.num_ref_idx_l0_active_minus1, t->mb.vec[0][0].refno);
                        if (t->mb.mb_part2[1] != B_L1_8x16)
                            eg_write_te(t->bs, t->ps.num_ref_idx_l0_active_minus1, t->mb.vec[0][2].refno);
                    }
                    if (t->ps.num_ref_idx_l1_active_minus1 > 0)
                    {
                        if (t->mb.mb_part2[0] != B_L0_8x16)
                            eg_write_te(t->bs, t->ps.num_ref_idx_l1_active_minus1, t->mb.vec[1][0].refno);
                        if (t->mb.mb_part2[1] != B_L0_8x16)
                            eg_write_te(t->bs, t->ps.num_ref_idx_l1_active_minus1, t->mb.vec[1][2].refno);
                    }
                    // l0
                    for (i = 0 ; i < 2 ; i ++)
                    {
                        switch(t->mb.mb_part2[i]) 
                        {
                        case B_L0_8x16:
                            vec = t->mb.vec[0][2 * i];
                            T264_predict_mv(t, 0, luma_index[4 * i], 2, &vec);
                            eg_write_se(t->bs, t->mb.vec[0][2 * i].x - vec.x);
                            eg_write_se(t->bs, t->mb.vec[0][2 * i].y - vec.y);
                            break;
                        case B_Bi_8x16:
                            vec = t->mb.vec[0][2 * i];
                            T264_predict_mv(t, 0, luma_index[4 * i], 2, &vec);
                            eg_write_se(t->bs, t->mb.vec[0][2 * i].x - vec.x);
                            eg_write_se(t->bs, t->mb.vec[0][2 * i].y - vec.y);
                        }
                    }
                    for (i = 0 ; i < 2 ; i ++)
                    {
                        switch(t->mb.mb_part2[i]) 
                        {
                        case B_L1_8x16:
                            vec = t->mb.vec[1][2 * i];
                            T264_predict_mv(t, 1, luma_index[4 * i], 2, &vec);
                            eg_write_se(t->bs, t->mb.vec[1][2 * i].x - vec.x);
                            eg_write_se(t->bs, t->mb.vec[1][2 * i].y - vec.y);
                            break;
                        case B_Bi_8x16:
                            vec = t->mb.vec[1][2 * i];
                            T264_predict_mv(t, 1, luma_index[4 * i], 2, &vec);
                            eg_write_se(t->bs, t->mb.vec[1][2 * i].x - vec.x);
                            eg_write_se(t->bs, t->mb.vec[1][2 * i].y - vec.y);
                            break;
                        }
                    }
                }
                break;
            case MB_8x8:
                {
                    eg_write_ue(t->bs, 22);
                    for (i = 0 ; i < 4 ; i ++)
                    {
                        if (t->mb.sub_is_copy[i] != 1)
                        {
                            switch (t->mb.submb_part[luma_index[4 * i]]) 
                            {
                            case B_L0_8x8:
                                eg_write_ue(t->bs, 1);
                                break;
                            case B_L1_8x8:
                                eg_write_ue(t->bs, 2);
                                break;
                            case B_Bi_8x8:
                                eg_write_ue(t->bs, 3);
                                break;
                            default:
                                assert(0);
                                break;
                            }
                        }
                        else
                        {
                            eg_write_ue(t->bs, 0);
                            break;
                        }
                    }
                    if (t->ps.num_ref_idx_l0_active_minus1 > 0)
                    {
                        for (i = 0 ; i < 4 ; i ++)
                        {
                            if (t->mb.submb_part[luma_index[4 * i]] != 2 && t->mb.submb_part[luma_index[4 * i]] != 0)
                                eg_write_te(t->bs, t->ps.num_ref_idx_l0_active_minus1, t->mb.vec[0][4 * i].refno);
                        }
                    }
                    if (t->ps.num_ref_idx_l1_active_minus1 > 0)
                    {
                        for (i = 0 ; i < 4 ; i ++)
                        {
                            if (t->mb.submb_part[luma_index[4 * i]] != 1 && t->mb.submb_part[luma_index[4 * i]] != 0)
                                eg_write_te(t->bs, t->ps.num_ref_idx_l1_active_minus1, t->mb.vec[1][4 * i].refno);
                        }
                    }
                    // l0
                    for (i = 0 ; i < 4 ; i ++)
                    {
                        switch(t->mb.submb_part[luma_index[4 * i]]) 
                        {
                        case B_L0_8x8:
                        case B_Bi_8x8:
                            vec = t->mb.vec[0][luma_index[4 * i]];
                            T264_predict_mv(t, 0, luma_index[4 * i], 2, &vec);
                            eg_write_se(t->bs, t->mb.vec[0][luma_index[4 * i]].x - vec.x);
                            eg_write_se(t->bs, t->mb.vec[0][luma_index[4 * i]].y - vec.y);
                            break;
                        }
                    }
                    for (i = 0 ; i < 4 ; i ++)
                    {
                        switch(t->mb.submb_part[luma_index[4 * i]]) 
                        {
                        case B_L1_8x8:
                        case B_Bi_8x8:
                            vec = t->mb.vec[1][luma_index[4 * i]];
                            T264_predict_mv(t, 1, luma_index[4 * i], 2, &vec);
                            eg_write_se(t->bs, t->mb.vec[1][luma_index[4 * i]].x - vec.x);
                            eg_write_se(t->bs, t->mb.vec[1][luma_index[4 * i]].y - vec.y);
                            break;
                        }
                    }
                }
                break;
            }
        }
        eg_write_ue(t->bs, inter_cbp_to_golomb[(t->mb.cbp_c << 4)| t->mb.cbp_y]);
        //delta_qp
        if (t->mb.cbp_y > 0 || t->mb.cbp_c > 0)
        {
            eg_write_se(t->bs, t->mb.mb_qp_delta);	/* 0 = no change on qp */

            for (i = 0; i < 16 ; i ++)
            {
                if(t->mb.cbp_y & (1 << ( i / 4 )))
                {
                    block_residual_write_cavlc(t, i, t->mb.dct_y_z[i], 16);
                }
            }
        }
    }

    if (t->mb.cbp_c != 0)
    {
        block_residual_write_cavlc(t, BLOCK_INDEX_CHROMA_DC, t->mb.dc2x2_z[0], 4);
        block_residual_write_cavlc(t, BLOCK_INDEX_CHROMA_DC, t->mb.dc2x2_z[1], 4);
        if (t->mb.cbp_c & 0x2)
        {
            for(i = 0 ; i < 8 ; i ++)
            {
                block_residual_write_cavlc(t, 16 + i, &(t->mb.dct_uv_z[i / 4][i % 4][1]), 15);
            }
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
岛国av在线一区| 91亚洲精华国产精华精华液| 91色视频在线| av中文字幕不卡| 国产精品天天看| 日韩一区二区在线免费观看| 99视频精品在线| 乱中年女人伦av一区二区| 国产美女av一区二区三区| 亚洲美女在线国产| 久久婷婷久久一区二区三区| 欧美久久一二区| 91网站最新地址| 国产成人一区在线| 久久精品国产网站| 亚洲国产欧美在线| 亚洲三级在线看| 欧美国产一区在线| 久久一区二区三区国产精品| 8x福利精品第一导航| 色哟哟国产精品免费观看| 国产成人无遮挡在线视频| 老司机精品视频在线| 日韩成人av影视| 午夜精品免费在线观看| 亚洲一区二区欧美| 一区二区三区欧美激情| 国产精品久久久久天堂| 欧美xfplay| 日韩片之四级片| 日韩欧美久久一区| 日韩视频一区二区| 欧美一区二区精美| 欧美一区二区三区视频在线| 在线电影院国产精品| 色综合久久99| 91网上在线视频| 在线视频国内自拍亚洲视频| 在线观看网站黄不卡| 91成人国产精品| 欧美日韩一区二区三区视频| 欧美三级日韩在线| 在线播放欧美女士性生活| 欧美日韩一区二区三区在线| 欧美伦理视频网站| 欧美一二三四在线| 精品久久一区二区三区| 久久久影院官网| 国产精品素人一区二区| 中文字幕中文在线不卡住| 中文字幕亚洲欧美在线不卡| 亚洲日本丝袜连裤袜办公室| 91在线一区二区三区| 91视频免费播放| 欧美性受xxxx黑人xyx性爽| 欧美日韩精品欧美日韩精品一 | 中文字幕制服丝袜成人av| 亚洲国产精华液网站w| 最新不卡av在线| 一二三区精品福利视频| 午夜精品福利一区二区三区av| 日本免费在线视频不卡一不卡二| 国内精品久久久久影院色| 成人精品gif动图一区| 色狠狠色噜噜噜综合网| 欧美一区在线视频| 久久亚洲私人国产精品va媚药| 中文字幕av免费专区久久| 一区二区三区免费观看| 男人的j进女人的j一区| 粉嫩av一区二区三区| 91国模大尺度私拍在线视频| 欧美一级一级性生活免费录像| 2021久久国产精品不只是精品| 国产欧美精品一区二区色综合| 高清免费成人av| 成人免费视频网站在线观看| 91精品1区2区| 精品免费国产一区二区三区四区| 久久久电影一区二区三区| 亚洲欧洲日产国产综合网| 亚洲电影一级片| 国产精品一区免费在线观看| 在线欧美一区二区| 欧美大尺度电影在线| 国产精品成人午夜| 一区二区三区在线视频免费| 亚洲国产精品成人综合| 一区二区三区四区乱视频| 蜜臀av一区二区| 91麻豆.com| 精品国产123| 亚洲综合免费观看高清在线观看| 麻豆国产欧美一区二区三区| 91麻豆123| 国产欧美日韩视频在线观看| 天天综合网天天综合色| 99久久精品免费看| 2024国产精品视频| 视频一区二区中文字幕| 99精品一区二区三区| 精品国产电影一区二区| 亚洲福利视频导航| av色综合久久天堂av综合| 精品久久久久久久久久久院品网 | 国产午夜精品久久| 亚洲国产精品黑人久久久| 懂色av噜噜一区二区三区av | 久久亚洲影视婷婷| 日韩精品91亚洲二区在线观看 | 精品剧情在线观看| 欧美丝袜自拍制服另类| 在线电影欧美成精品| 26uuu国产在线精品一区二区| 亚洲国产日韩综合久久精品| 成人sese在线| 国产午夜亚洲精品午夜鲁丝片| 日本中文在线一区| 欧美色图片你懂的| 日韩毛片一二三区| 高清beeg欧美| 久久综合国产精品| 久久不见久久见免费视频1| 欧美视频精品在线观看| 亚洲综合免费观看高清完整版| a亚洲天堂av| 国产精品美女久久久久久| 国产精品系列在线播放| 精品国产青草久久久久福利| 久久66热偷产精品| 欧美成人一级视频| 免费观看日韩av| 精品剧情v国产在线观看在线| 捆绑调教一区二区三区| 日韩一级片在线观看| 日韩精品一级中文字幕精品视频免费观看| 欧美在线制服丝袜| 亚洲高清在线精品| 在线综合视频播放| 免费观看在线综合| 26uuu久久天堂性欧美| 国产精品77777| 国产精品久久久久一区| 99精品国产91久久久久久 | 亚洲午夜久久久久久久久电影网| 日本韩国精品在线| 亚洲一级不卡视频| 欧美福利一区二区| 免费观看91视频大全| 久久综合丝袜日本网| 成熟亚洲日本毛茸茸凸凹| 综合色中文字幕| 欧美婷婷六月丁香综合色| 日本不卡免费在线视频| 精品国产免费一区二区三区四区 | 欧美精品成人一区二区三区四区| 日日夜夜免费精品视频| 欧美mv日韩mv| 成人精品视频一区二区三区| 亚洲美女视频在线| 8x8x8国产精品| 风间由美中文字幕在线看视频国产欧美| 国产精品色一区二区三区| 欧美亚洲丝袜传媒另类| 美国一区二区三区在线播放| 国产视频在线观看一区二区三区| 91麻豆国产在线观看| 日韩国产欧美在线视频| 日本一区二区三区四区| 欧美亚洲禁片免费| 久久不见久久见免费视频1| 中文字幕一区二区三区不卡在线 | 久久精品999| 国产精品萝li| 717成人午夜免费福利电影| 国产伦精品一区二区三区在线观看 | 精品一区二区三区免费观看| 中文字幕一区二区三| 日韩一区二区三免费高清| 福利一区二区在线| 亚洲18影院在线观看| 欧美国产丝袜视频| 911国产精品| 91女人视频在线观看| 蜜乳av一区二区| 亚洲美女淫视频| 国产亚洲欧美激情| 欧美久久高跟鞋激| 99久久精品久久久久久清纯| 捆绑调教美女网站视频一区| 一区二区久久久久久| 久久婷婷国产综合国色天香| 欧美日韩精品专区| 成人精品视频一区二区三区尤物| 日本特黄久久久高潮| 一区二区三区 在线观看视频| 日本一区二区三区dvd视频在线| 欧美精品一卡二卡| 日本丰满少妇一区二区三区| 国产黑丝在线一区二区三区|