⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vld.h

📁 linux下的一款播放器
💻 H
📖 第 1 页 / 共 4 页
字号:
    {"00 1110 11",  24,     -1,     0},    {"00 1110 00",  25,     1,      0},    {"00 1110 01",  25,     -1,     0},    {"00 1101 10",  26,     1,      0},    {"00 1101 11",  26,     -1,     0},    {"End"}};static  struct vlc_entry escape_run[] = {    {"FLC"},    {"00 0000",     SYM_ESC_RUN,    0,  -ST_DIFF_ESC_LEVEL,     63},    {"End"}};/* ESC_LEVEL: Levels 0 and -128 are not allowed */static  struct vlc_entry escape_level[] = {    {"FLC"},    {"0000 0001",   SYM_ESC_LEVEL,      1,  ST_DIFF_ESC_LEVEL,  127},    {"1000 0001",   SYM_ESC_LEVEL,   -127,  ST_DIFF_ESC_LEVEL,  -1},    {"End"}};/* INTRA DC coeff:  Levels 0 and 255 not allowed; level 128 repr. by 255 */static  struct vlc_entry intra_dc[] = {    {"FLC"},    {"0000 0001", SYM_INTRA_DC,   1,    -1,     127},    {"1111 1111", SYM_INTRA_DC, 128,    -1,     128},    {"1000 0001", SYM_INTRA_DC, 129,    -1,     254},    {"End"}};/* INTRA DC coeff:  Levels 0 and 255 not allowed; level 128 repr. by 255 */static  struct vlc_entry last_intra_dc[] = {    {"FLC"},    {"0000 0001", SYM_INTRA_DC,   1, (ST_NEXT_BLK_6 - ST_INTRA_DC_BLK_6), 127},    {"1111 1111", SYM_INTRA_DC, 128, (ST_NEXT_BLK_6 - ST_INTRA_DC_BLK_6), 128},    {"1000 0001", SYM_INTRA_DC, 129, (ST_NEXT_BLK_6 - ST_INTRA_DC_BLK_6), 254},    {"End"}};static  struct vlc_entry mba_startcode[] = {    {"1",           SYM_MBA,        1,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"011",         SYM_MBA,        2,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"010",         SYM_MBA,        3,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0011",        SYM_MBA,        4,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0010",        SYM_MBA,        5,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0001 1",      SYM_MBA,        6,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0001 0",      SYM_MBA,        7,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0000 111",    SYM_MBA,        8,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0000 110",    SYM_MBA,        9,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0000 1011",   SYM_MBA,       10,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0000 1010",   SYM_MBA,       11,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0000 1001",   SYM_MBA,       12,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0000 1000",   SYM_MBA,       13,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"0000 0",      SYM_ESCAPE, TAB_LONG_MBA,   0},    {"End"}};static  struct vlc_entry long_mba[] = {    {"111",         SYM_MBA,       14,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"110",         SYM_MBA,       15,  (ST_MTYPE - ST_MBA_STARTCODE)},        {"101 11",      SYM_MBA,       16,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"101 10",      SYM_MBA,       17,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"101 01",      SYM_MBA,       18,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"101 00",      SYM_MBA,       19,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"100 11",      SYM_MBA,       20,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"100 10",      SYM_MBA,       21,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"100 011",     SYM_MBA,       22,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"100 010",     SYM_MBA,       23,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"100 001",     SYM_MBA,       24,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"100 000",     SYM_MBA,       25,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"011 111",     SYM_MBA,       26,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"011 110",     SYM_MBA,       27,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"011 101",     SYM_MBA,       28,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"011 100",     SYM_MBA,       29,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"011 011",     SYM_MBA,       30,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"011 010",     SYM_MBA,       31,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"011 001",     SYM_MBA,       32,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"011 000",     SYM_MBA,       33,  (ST_MTYPE - ST_MBA_STARTCODE)},    {"001 111",     SYM_MBA_STUFFING,   0,  0},    {"000 0000 0",  SYM_ESCAPE, TAB_LONG_STARTCODE, 0},    {"End"}};static  struct vlc_entry long_startcode[] = {    {"001",     SYM_STARTCODE, 0, (ST_AFTER_STARTCODE - ST_MBA_STARTCODE)},    {"End"}};static  struct vlc_entry mtype[] = {    {"0001",    SYM_MTYPE,  MTYPE_INTRA,        (ST_INTRA_DC_BLK_1 - ST_MTYPE)},    {"0000 001",SYM_MTYPE,  MTYPE_INTRA_MQUANT, (ST_INTRA_MQUANT - ST_MTYPE)},    {"1",       SYM_MTYPE,  MTYPE_INTER,        (ST_CBP - ST_MTYPE)},    {"0000 1",  SYM_MTYPE,  MTYPE_INTER_MQUANT, (ST_INTER_MQUANT - ST_MTYPE)},    {"0000 0001",SYM_MTYPE, MTYPE_MC_CBP,       (ST_MC_CBP_MVDX - ST_MTYPE)},    {"001",     SYM_MTYPE,  MTYPE_MCFILT_NOCBP, (ST_MC_NOCBP_MVDX - ST_MTYPE)},    {"01",      SYM_MTYPE,  MTYPE_MCFILT_CBP,   (ST_MC_CBP_MVDX - ST_MTYPE)},    {"0000 01", SYM_MTYPE,  MTYPE_MCFILT_MQUANT,(ST_MC_CBP_MQUANT - ST_MTYPE)},    {"0000 0000", SYM_ESCAPE,   TAB_LONG_MTYPE, 0},    {"End"}};static  struct vlc_entry long_mtype[] = {    {"1",       SYM_MTYPE,  MTYPE_MC_NOCBP,     (ST_MC_NOCBP_MVDX - ST_MTYPE)},    {"01",      SYM_MTYPE,  MTYPE_MC_MQUANT,    (ST_MC_CBP_MQUANT - ST_MTYPE)},    {"End"}};static  struct vlc_entry mvd[] = {    {"1",           SYM_MVD,    0,      1},    {"010",         SYM_MVD,    1,      1},    {"011",         SYM_MVD,    -1,     1},    {"0010",        SYM_MVD,    2,      1},    {"0011",        SYM_MVD,    -2,     1},    {"0001 0",      SYM_MVD,    3,      1},    {"0001 1",      SYM_MVD,    -3,     1},    {"0000 110",    SYM_MVD,    4,      1},    {"0000 111",    SYM_MVD,    -4,     1},    {"0000 1010",   SYM_MVD,    5,      1},    {"0000 1011",   SYM_MVD,    -5,     1},    {"0000 1000",   SYM_MVD,    6,      1},    {"0000 1001",   SYM_MVD,    -6,     1},    {"0000 0",      SYM_ESCAPE, TAB_LONG_MVD,   1},    {"End"}};static  struct vlc_entry long_mvd[] = {    {"110",         SYM_MVD,    7,      0},    {"111",         SYM_MVD,    -7,     0},    {"101 10",      SYM_MVD,    8,      0},    {"101 11",      SYM_MVD,    -8,     0},    {"101 00",      SYM_MVD,    9,      0},    {"101 01",      SYM_MVD,    -9,     0},    {"100 10",      SYM_MVD,    10,     0},    {"100 11",      SYM_MVD,    -10,    0},    {"100 010",     SYM_MVD,    11,     0},    {"100 011",     SYM_MVD,    -11,    0},    {"100 000",     SYM_MVD,    12,     0},    {"100 001",     SYM_MVD,    -12,    0},    {"011 110",     SYM_MVD,    13,     0},    {"011 111",     SYM_MVD,    -13,    0},    {"011 100",     SYM_MVD,    14,     0},    {"011 101",     SYM_MVD,    -14,    0},    {"011 010",     SYM_MVD,    15,     0},    {"011 011",     SYM_MVD,    -15,    0},    {"011 001",     SYM_MVD,    -16,    0},    {"End"}};static  struct vlc_entry cbp[] = {    {"111",         SYM_CBP,    0x3c,   (ST_FIRST_BLK_3 - ST_CBP)},    {"1101",        SYM_CBP,    0x4,    (ST_FIRST_BLK_6 - ST_CBP)},    {"1100",        SYM_CBP,    0x8,    (ST_FIRST_BLK_6 - ST_CBP)},    {"1011",        SYM_CBP,    0x10,   (ST_FIRST_BLK_6 - ST_CBP)},    {"1010",        SYM_CBP,    0x20,   (ST_FIRST_BLK_6 - ST_CBP)},    {"1001 1",      SYM_CBP,    0xc,    (ST_FIRST_BLK_5 - ST_CBP)},    {"1001 0",      SYM_CBP,    0x30,   (ST_FIRST_BLK_5 - ST_CBP)},    {"1000 1",      SYM_CBP,    0x14,   (ST_FIRST_BLK_5 - ST_CBP)},    {"1000 0",      SYM_CBP,    0x28,   (ST_FIRST_BLK_5 - ST_CBP)},    {"0111 1",      SYM_CBP,    0x1c,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0111 0",      SYM_CBP,    0x2c,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0110 1",      SYM_CBP,    0x34,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0110 0",      SYM_CBP,    0x38,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0101 1",      SYM_CBP,    0x1,    (ST_FIRST_BLK_6 - ST_CBP)},    {"0101 0",      SYM_CBP,    0x3d,   (ST_FIRST_BLK_2 - ST_CBP)},    {"0100 1",      SYM_CBP,    0x2,    (ST_FIRST_BLK_6 - ST_CBP)},    {"0100 0",      SYM_CBP,    0x3e,   (ST_FIRST_BLK_2 - ST_CBP)},    {"0011 11",     SYM_CBP,    0x18,   (ST_FIRST_BLK_5 - ST_CBP)},    {"0011 10",     SYM_CBP,    0x24,   (ST_FIRST_BLK_5 - ST_CBP)},    {"0011 01",     SYM_CBP,    0x3,    (ST_FIRST_BLK_5 - ST_CBP)},    {"0011 00",     SYM_CBP,    0x3f,   (ST_FIRST_BLK_1 - ST_CBP)},    {"0010 111",    SYM_CBP,    0x5,    (ST_FIRST_BLK_5 - ST_CBP)},    {"0010 110",    SYM_CBP,    0x9,    (ST_FIRST_BLK_5 - ST_CBP)},    {"0010 101",    SYM_CBP,    0x11,   (ST_FIRST_BLK_5 - ST_CBP)},    {"0010 100",    SYM_CBP,    0x21,   (ST_FIRST_BLK_5 - ST_CBP)},    {"0010 011",    SYM_CBP,    0x6,    (ST_FIRST_BLK_5 - ST_CBP)},    {"0010 010",    SYM_CBP,    0xa,    (ST_FIRST_BLK_5 - ST_CBP)},    {"0010 001",    SYM_CBP,    0x12,   (ST_FIRST_BLK_5 - ST_CBP)},    {"0010 000",    SYM_CBP,    0x22,   (ST_FIRST_BLK_5 - ST_CBP)},    {"0001 1111",   SYM_CBP,    0x7,    (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 1110",   SYM_CBP,    0xb,    (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 1101",   SYM_CBP,    0x13,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 1100",   SYM_CBP,    0x23,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 1011",   SYM_CBP,    0xd,    (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 1010",   SYM_CBP,    0x31,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 1001",   SYM_CBP,    0x15,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 1000",   SYM_CBP,    0x29,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 0111",   SYM_CBP,    0xe,    (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 0110",   SYM_CBP,    0x32,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 0101",   SYM_CBP,    0x16,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 0100",   SYM_CBP,    0x2a,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0001 0011",   SYM_CBP,    0xf,    (ST_FIRST_BLK_3 - ST_CBP)},    {"0001 0010",   SYM_CBP,    0x33,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0001 0001",   SYM_CBP,    0x17,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0001 0000",   SYM_CBP,    0x2b,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0000 1111",   SYM_CBP,    0x19,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0000 1110",   SYM_CBP,    0x25,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0000 1101",   SYM_CBP,    0x1a,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0000 1100",   SYM_CBP,    0x26,   (ST_FIRST_BLK_4 - ST_CBP)},    {"0000 1011",   SYM_CBP,    0x1d,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0000 1010",   SYM_CBP,    0x2d,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0000 1001",   SYM_CBP,    0x35,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0000 1000",   SYM_CBP,    0x39,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0000 0111",   SYM_CBP,    0x1e,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0000 0110",   SYM_CBP,    0x2e,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0000 0101",   SYM_CBP,    0x36,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0000 0100",   SYM_CBP,    0x3a,   (ST_FIRST_BLK_3 - ST_CBP)},    {"0000 00",     SYM_ESCAPE, TAB_LONG_CBP,   0},    {"End"}};static  struct vlc_entry long_cbp[] = {    {"11 1",        SYM_CBP,    0x1f,   (ST_FIRST_BLK_2 - ST_CBP)},    {"11 0",        SYM_CBP,    0x2f,   (ST_FIRST_BLK_2 - ST_CBP)},    {"10 1",        SYM_CBP,    0x37,   (ST_FIRST_BLK_2 - ST_CBP)},    {"10 0",        SYM_CBP,    0x3b,   (ST_FIRST_BLK_2 - ST_CBP)},    {"01 1",        SYM_CBP,    0x1b,   (ST_FIRST_BLK_3 - ST_CBP)},    {"01 0",        SYM_CBP,    0x27,   (ST_FIRST_BLK_3 - ST_CBP)},    {"End"}};static  struct vlc_entry quant_tr[] = {    {"FLC"},    {"00000",   SYM_QUANT_TR,   0,      ST_DIFF_QUANT,      31},    {"End"}};static  struct vlc_entry gei_pei[] = {    {"0",       SYM_GEI_PEI,    0,      (ST_MBA_STARTCODE - ST_GEI_PEI)},    {"1",       SYM_ESCAPE, TAB_LONG_SPARE,     0},    {"End"}};static  struct vlc_entry long_spare[] = {    {"FLC"},    {"0000 0000",   SYM_SPARE,  0,      0,      255},    {"End"}};static  struct vlc_entry gn[] = {    {"FLC"},    {"0000",    SYM_GN,     0,  (ST_TR - ST_AFTER_STARTCODE),       0},    {"0001",    SYM_GN,     1,  (ST_GQUANT - ST_AFTER_STARTCODE),   15},    {"End"}};static  struct vlc_entry ptype[] = {    {"FLC"},    {"0000 00", SYM_PTYPE,  0,  (ST_GEI_PEI - ST_PTYPE),    63},    {"End"}};static  struct vlc_entry illegal_state[] = {    {"0",       SYM_EXIT,   ILLEGAL_STATE,      0},    {"1",       SYM_EXIT,   ILLEGAL_STATE,      0},    {"End"}};////////////////  Tables for H.263  //////////////////// Starts with COD=0 for coded block; COD=1 for skipped blockstatic  struct vlc_entry mcbpc263[] = {    {"0 0000 0",    SYM_ESCAPE, TAB263_LONG_MCBPC_INTER},        {"1",           SYM_MCBPC,  MTYPE_SKIP},        {"0 1",         SYM_MCBPC,  MTYPE263_INTER + 0},    {"0 0011",      SYM_MCBPC,  MTYPE263_INTER + 1},    {"0 0010",      SYM_MCBPC,  MTYPE263_INTER + 2},    {"0 0001 01",   SYM_MCBPC,  MTYPE263_INTER + 3},    {"0 011",       SYM_MCBPC,  MTYPE263_INTER_Q + 0},    {"0 0000 111",  SYM_MCBPC,  MTYPE263_INTER_Q + 1},    {"0 0000 110",  SYM_MCBPC,  MTYPE263_INTER_Q + 2},    {"0 010",       SYM_MCBPC,  MTYPE263_INTER4V + 0},    {"0 0000 101",  SYM_MCBPC,  MTYPE263_INTER4V + 1},    {"0 0000 100",  SYM_MCBPC,  MTYPE263_INTER4V + 2},    {"0 0001 1",    SYM_MCBPC,  MTYPE263_INTRA + 0},    {"0 0001 00",   SYM_MCBPC,  MTYPE263_INTRA_Q + 0},    {"End"}};static  struct vlc_entry long_mcbpc263[] = {        // Starts with "0 0000 0"    {"00 0000 0",  SYM_ESCAPE, TAB263_LONG_STARTCODE},  // Note: no COD=0 preceeds startcode        {"000 1",       SYM_MCBPC_STUFFING,  MTYPE263_STUFFING},    {"010 1",       SYM_MCBPC,  MTYPE263_INTER_Q + 3},    {"101",         SYM_MCBPC,  MTYPE263_INTER4V + 3},    {"100",         SYM_MCBPC,  MTYPE263_INTRA + 1},    {"011",         SYM_MCBPC,  MTYPE263_INTRA + 2},    {"11",          SYM_MCBPC,  MTYPE263_INTRA + 3},    {"010 0",       SYM_MCBPC,  MTYPE263_INTRA_Q + 1},    {"001 1",       SYM_MCBPC,  MTYPE263_INTRA_Q + 2},    {"001 0",       SYM_MCBPC,  MTYPE263_INTRA_Q + 3},    {"End"}};static  struct vlc_entry long_startcode263[] = {    // Starts with "0000 0000 0000 0"    {"000 0",       SYM_ESCAPE,     TAB263_ZEROS_AND_START},    {"000 1",       SYM_STARTCODE,  MTYPE263_STARTCODE},    {"End"}};// Handle startcodes preceded by 1 to 7 zeros// Starts with 17 zeros// CJG 8.13.96: added line containing "0000 0001"//	  Deals with Intel's padding more than 7 bits of zeros (8) after last macroblock in row.//    This does not conform to H.263, and we may want to remove it after(if) Intel fixes//    their video coder.  This change was interop tested in San Jose with all other vendors.static  struct vlc_entry zeros_and_start263[] = {    {"1",           SYM_STARTCODE,  MTYPE263_STARTCODE},    {"01",          SYM_STARTCODE,  MTYPE263_STARTCODE},    {"001",         SYM_STARTCODE,  MTYPE263_STARTCODE},    {"0001",        SYM_STARTCODE,  MTYPE263_STARTCODE},    {"0000 1",      SYM_STARTCODE,  MTYPE263_STARTCODE},    {"0000 01",     SYM_STARTCODE,  MTYPE263_STARTCODE},    {"0000 001",    SYM_STARTCODE,  MTYPE263_STARTCODE},    {"0000 0001",   SYM_STARTCODE,  MTYPE263_STARTCODE},    {"End"}};static  struct vlc_entry intra_mcbpc263[] = {    {"0000 0000",   SYM_ESCAPE, TAB263_LONG_MCBPC_INTRA},        {"1",           SYM_MCBPC,  MTYPE263_INTRA + 0},    {"001",         SYM_MCBPC,  MTYPE263_INTRA + 1},    {"010",         SYM_MCBPC,  MTYPE263_INTRA + 2},    {"011",         SYM_MCBPC,  MTYPE263_INTRA + 3},        {"0001",        SYM_MCBPC,  MTYPE263_INTRA_Q + 0},

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -