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

📄 vld.h

📁 linux下的一款播放器
💻 H
📖 第 1 页 / 共 4 页
字号:
/* ***** BEGIN LICENSE BLOCK ***** * Source last modified: $Id: vld.h,v 1.2.40.1 2004/07/09 01:56:22 hubbe Exp $ *  * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved. *  * The contents of this file, and the files included with this file, * are subject to the current version of the RealNetworks Public * Source License (the "RPSL") available at * http://www.helixcommunity.org/content/rpsl unless you have licensed * the file under the current version of the RealNetworks Community * Source License (the "RCSL") available at * http://www.helixcommunity.org/content/rcsl, in which case the RCSL * will apply. You may also obtain the license terms directly from * RealNetworks.  You may not use this file except in compliance with * the RPSL or, if you have a valid RCSL with RealNetworks applicable * to this file, the RCSL.  Please see the applicable RPSL or RCSL for * the rights, obligations and limitations governing use of the * contents of the file. *  * Alternatively, the contents of this file may be used under the * terms of the GNU General Public License Version 2 or later (the * "GPL") in which case the provisions of the GPL are applicable * instead of those above. If you wish to allow use of your version of * this file only under the terms of the GPL, and not to allow others * to use your version of this file under the terms of either the RPSL * or RCSL, indicate your decision by deleting the provisions above * and replace them with the notice and other provisions required by * the GPL. If you do not delete the provisions above, a recipient may * use your version of this file under the terms of any one of the * RPSL, the RCSL or the GPL. *  * This file is part of the Helix DNA Technology. RealNetworks is the * developer of the Original Code and owns the copyrights in the * portions it created. *  * This file, and the files included with this file, is distributed * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET * ENJOYMENT OR NON-INFRINGEMENT. *  * Technology Compatibility Kit Test Suite(s) Location: *    http://www.helixcommunity.org/content/tck *  * Contributor(s): *  * ***** END LICENSE BLOCK ***** */#ifndef _INC_VLD#define _INC_VLD	1 /*  DECTABENTRY - Description of each entry in the decode tables *  An entry in the decode table contains the following information: *  sym  -      a)  If bits > 0, sym contains decoded symbol *              If sym.type = SYM_EXIT, we find the reason in sym.value *              b)  bits < 0 indicates that long codeword was encountered. *              We continue decoding using table indicated by sym.value. *              sym.type is not defined. *  statechange Add to state to get the new state *  bits  -     abs(bits) is # of parsed bits.  bits < 0 indicates code > 8 bits */typedef struct {    SYMBOL		sym;    S8			statechange;    S8			bits;	} DECTABENTRY;#define DECTABBITS          8       /* Look up DECTABBITS bits at a time */#define DECTABSIZE          256     /* 2 ** DECTABBITS */DECTABENTRY dectable[NUMTABS][DECTABSIZE];U8 selectdectab[NUMSTATES] = {    TAB_ILLEGAL_STATE,                      /* State 0 is not used */    TAB_MVD,                TAB_MVD,        /* ST_MC_NOCBP_MVD */    TAB_MBA_STARTCODE,    TAB_DCT_NEXT,           TAB_DCT_FIRST,  /* Block 6 */    TAB_DCT_NEXT,           TAB_DCT_FIRST,  /* Block 5 */    TAB_DCT_NEXT,           TAB_DCT_FIRST,  /* Block 4 */    TAB_DCT_NEXT,           TAB_DCT_FIRST,  /* Block 3 */    TAB_DCT_NEXT,           TAB_DCT_FIRST,  /* Block 2 */    TAB_DCT_NEXT,           TAB_DCT_FIRST,  /* Block 1 */    TAB_LAST_INTRA_DC,                      /* INTRA Block 6 */    TAB_DCT_NEXT,           TAB_INTRA_DC,   /* INTRA Block 5 */    TAB_DCT_NEXT,           TAB_INTRA_DC,   /* INTRA Block 4 */    TAB_DCT_NEXT,           TAB_INTRA_DC,   /* INTRA Block 3 */    TAB_DCT_NEXT,           TAB_INTRA_DC,   /* INTRA Block 2 */    TAB_DCT_NEXT,           TAB_INTRA_DC,   /* INTRA Block 1 */    TAB_MVD,                TAB_MVD,        /* ST_MC_CBP_MVD */    TAB_CBP,    TAB_QUANT_TR,                           /* ST_INTRA_MQUANT */    TAB_QUANT_TR,                           /* ST_MC_CBP_MQUANT */    TAB_ESCAPE_LEVEL,    TAB_QUANT_TR,                           /* ST_INTER_MQUANT */    TAB_ESCAPE_LEVEL,    TAB_MTYPE,    TAB_ESCAPE_LEVEL,    TAB_GEI_PEI,    TAB_ESCAPE_LEVEL,    TAB_PTYPE,    TAB_ESCAPE_LEVEL,    TAB_QUANT_TR,                           /* ST_GQUANT */    TAB_ESCAPE_LEVEL,    TAB_QUANT_TR,                           /* ST_TR */    TAB_GN,                                 /* ST_AFTER_STARTCODE */    TAB_ESCAPE_LEVEL,    TAB_ILLEGAL_STATE,                      /* State 46 is not used */    TAB_ESCAPE_LEVEL,    TAB_ILLEGAL_STATE,                      /* State 48 is not used */    TAB_ESCAPE_LEVEL,    TAB_ILLEGAL_STATE,                      /* State 50 is not used */    TAB_ESCAPE_LEVEL,    TAB_ILLEGAL_STATE,                      /* State 52 is not used */    TAB_ESCAPE_LEVEL,        // H.263 states start at item 54    TAB263_FINISHED,                        // Done with last block    TAB263_ESCAPE_LEVEL,                    // ESCAPE-RUN-LEVEL as last TCOEF of last block    TAB263_TCOEF,   TAB263_ESCAPE_LEVEL,    // Block 6    TAB263_TCOEF,   TAB263_ESCAPE_LEVEL,    // Block 5    TAB263_TCOEF,   TAB263_ESCAPE_LEVEL,    // Block 4    TAB263_TCOEF,   TAB263_ESCAPE_LEVEL,    // Block 3    TAB263_TCOEF,   TAB263_ESCAPE_LEVEL,    // Block 2    TAB263_TCOEF,   TAB263_ESCAPE_LEVEL,    // Block 1    TAB263_INTRA_DC,                        // INTRA-DC only    TAB_ILLEGAL_STATE,                      // State 69 is not used    TAB263_INTRA_DC                         // INTRA-DC followed by AC coefficients#ifdef DO_H263_PLUS    ,    TAB263_FINISHED,                            // Done with last block    TAB263_ESCAPE_LEVEL,                        // ESCAPE-RUN-LEVEL as last TCOEF of last block    TAB263PLUS_TCOEF, TAB263_ESCAPE_LEVEL,  // Block 6    TAB263PLUS_TCOEF, TAB263_ESCAPE_LEVEL,  // Block 5    TAB263PLUS_TCOEF, TAB263_ESCAPE_LEVEL,  // Block 4    TAB263PLUS_TCOEF, TAB263_ESCAPE_LEVEL,  // Block 3    TAB263PLUS_TCOEF, TAB263_ESCAPE_LEVEL,  // Block 2    TAB263PLUS_TCOEF, TAB263_ESCAPE_LEVEL   // Block 1#endif};#define MAX_STRING_VLD          (DECTABBITS + 4)struct vlc_entry {    char    vlc[MAX_STRING_VLD]; /* Flawfinder: ignore */    int     type;    int     value;    int     statechange;    int     last_value; /* Only used for fixed-length codes */};////////////////  Tables for H.261  //////////////////static  struct vlc_entry dct_next[] = {    {"0000 01",     SYM_ESCAPE, TAB_ESCAPE_RUN,    0},    {"0010 0",      SYM_ESCAPE, TAB_DCT_00100,     0},    {"0000 00",     SYM_ESCAPE, TAB_DCT_000000,    0},    {"10",          SYM_EOB,    0,      (ST_FIRST_BLK_2 - ST_NEXT_BLK_1)},    {"110",         0,      1,      0},    {"111",         0,      -1,     0},    {"0110",        1,      1,      0},    {"0111",        1,      -1,     0},    {"0100 0",      0,      2,      0},    {"0100 1",      0,      -2,     0},    {"0101 0",      2,      1,      0},    {"0101 1",      2,      -1,     0},    {"0010 10",     0,      3,      0},    {"0010 11",     0,      -3,     0},    {"0011 10",     3,      1,      0},    {"0011 11",     3,      -1,     0},    {"0011 00",     4,      1,      0},    {"0011 01",     4,      -1,     0},    {"0001 100",    1,      2,      0},    {"0001 101",    1,      -2,     0},    {"0001 110",    5,      1,      0},    {"0001 111",    5,      -1,     0},    {"0001 010",    6,      1,      0},    {"0001 011",    6,      -1,     0},    {"0001 000",    7,      1,      0},    {"0001 001",    7,      -1,     0},    {"0000 1100",   0,      4,      0},    {"0000 1101",   0,      -4,     0},    {"0000 1000",   2,      2,      0},    {"0000 1001",   2,      -2,     0},    {"0000 1110",   8,      1,      0},    {"0000 1111",   8,      -1,     0},    {"0000 1010",   9,      1,      0},    {"0000 1011",   9,      -1,     0},    {"End"}};static  struct vlc_entry dct_first[] = {    {"0000 01",     SYM_ESCAPE, TAB_ESCAPE_RUN, (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0010 0",      SYM_ESCAPE, TAB_DCT_00100,  (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0000 00",     SYM_ESCAPE, TAB_DCT_000000, (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"10",          0,      1,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"11",          0,      -1,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0110",        1,      1,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0111",        1,      -1,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0100 0",      0,      2,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0100 1",      0,      -2,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0101 0",      2,      1,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0101 1",      2,      -1,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0010 10",     0,      3,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0010 11",     0,      -3,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0011 10",     3,      1,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0011 11",     3,      -1,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0011 00",     4,      1,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0011 01",     4,      -1,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0001 100",    1,      2,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0001 101",    1,      -2,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0001 110",    5,      1,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0001 111",    5,      -1,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0001 010",    6,      1,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0001 011",    6,      -1,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0001 000",    7,      1,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0001 001",    7,      -1,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0000 1100",   0,      4,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0000 1101",   0,      -4,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0000 1000",   2,      2,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0000 1001",   2,      -2,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0000 1110",   8,      1,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0000 1111",   8,      -1,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0000 1010",   9,      1,      (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"0000 1011",   9,      -1,     (ST_NEXT_BLK_1 - ST_FIRST_BLK_1)},    {"End"}};static  struct vlc_entry dct_00100[] = {    {"110 0",       0,      5,      0},    {"110 1",       0,      -5,     0},    {"001 0",       0,      6,      0},    {"001 1",       0,      -6,     0},    {"101 0",       1,      3,      0},    {"101 1",       1,      -3,     0},    {"100 0",       3,      2,      0},    {"100 1",       3,      -2,     0},    {"111 0",       10,     1,      0},    {"111 1",       10,     -1,     0},    {"011 0",       11,     1,      0},    {"011 1",       11,     -1,     0},    {"010 0",       12,     1,      0},    {"010 1",       12,     -1,     0},    {"000 0",       13,     1,      0},    {"000 1",       13,     -1,     0},    {"End"}};static  struct vlc_entry dct_000000[] = {    {"10 100",      0,      7,      0},    {"10 101",      0,      -7,     0},    {"11 000",      1,      4,      0},    {"11 001",      1,      -4,     0},    {"10 110",      2,      3,      0},    {"10 111",      2,      -3,     0},    {"11 110",      4,      2,      0},    {"11 111",      4,      -2,     0},    {"10 010",      5,      2,      0},    {"10 011",      5,      -2,     0},    {"11 100",      14,     1,      0},    {"11 101",      14,     -1,     0},    {"11 010",      15,     1,      0},    {"11 011",      15,     -1,     0},    {"10 000",      16,     1,      0},    {"10 001",      16,     -1,     0},    {"01 1101 0",   0,      8,      0},    {"01 1101 1",   0,      -8,     0},    {"01 1000 0",   0,      9,      0},    {"01 1000 1",   0,      -9,     0},    {"01 0011 0",   0,      10,     0},    {"01 0011 1",   0,      -10,    0},    {"01 0000 0",   0,      11,     0},    {"01 0000 1",   0,      -11,    0},    {"01 1011 0",   1,      5,      0},    {"01 1011 1",   1,      -5,     0},    {"01 0100 0",   2,      4,      0},    {"01 0100 1",   2,      -4,     0},    {"01 1100 0",   3,      3,      0},    {"01 1100 1",   3,      -3,     0},    {"01 0010 0",   4,      3,      0},    {"01 0010 1",   4,      -3,     0},    {"01 1110 0",   6,      2,      0},    {"01 1110 1",   6,      -2,     0},    {"01 0101 0",   7,      2,      0},    {"01 0101 1",   7,      -2,     0},    {"01 0001 0",   8,      2,      0},    {"01 0001 1",   8,      -2,     0},    {"01 1111 0",   17,     1,      0},    {"01 1111 1",   17,     -1,     0},    {"01 1010 0",   18,     1,      0},    {"01 1010 1",   18,     -1,     0},    {"01 1001 0",   19,     1,      0},    {"01 1001 1",   19,     -1,     0},    {"01 0111 0",   20,     1,      0},    {"01 0111 1",   20,     -1,     0},    {"01 0110 0",   21,     1,      0},    {"01 0110 1",   21,     -1,     0},    {"00 1101 00",  0,      12,     0},    {"00 1101 01",  0,      -12,    0},    {"00 1100 10",  0,      13,     0},    {"00 1100 11",  0,      -13,    0},    {"00 1100 00",  0,      14,     0},    {"00 1100 01",  0,      -14,    0},    {"00 1011 10",  0,      15,     0},    {"00 1011 11",  0,      -15,    0},    {"00 1011 00",  1,      6,      0},    {"00 1011 01",  1,      -6,     0},    {"00 1010 10",  1,      7,      0},    {"00 1010 11",  1,      -7,     0},    {"00 1010 00",  2,      5,      0},    {"00 1010 01",  2,      -5,     0},    {"00 1001 10",  3,      4,      0},    {"00 1001 11",  3,      -4,     0},    {"00 1001 00",  5,      3,      0},    {"00 1001 01",  5,      -3,     0},    {"00 1000 10",  9,      2,      0},    {"00 1000 11",  9,      -2,     0},    {"00 1000 00",  10,     2,      0},    {"00 1000 01",  10,     -2,     0},    {"00 1111 10",  22,     1,      0},    {"00 1111 11",  22,     -1,     0},    {"00 1111 00",  23,     1,      0},    {"00 1111 01",  23,     -1,     0},    {"00 1110 10",  24,     1,      0},

⌨️ 快捷键说明

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