Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 多重定义[…]首先在此处定义_C++_H.264_Undefined Reference - Fatal编程技术网

C++ 多重定义[…]首先在此处定义

C++ 多重定义[…]首先在此处定义,c++,h.264,undefined-reference,C++,H.264,Undefined Reference,我正在编写一个H264解析器(没有OO),但我正在尝试使用一些模块来更好地组织事情 我有这样的问题: `CMakeFiles/server.dir/mainclass.cpp.o:(.bss+0x0): multiple definition of `I_Macroblock_Modes' `CMakeFiles/server.dir/main.cpp.o:(.bss+0x0): first defined here `CMakeFiles/server.dir/mainclass.cp

我正在编写一个H264解析器(没有OO),但我正在尝试使用一些模块来更好地组织事情

我有这样的问题:

`CMakeFiles/server.dir/mainclass.cpp.o:(.bss+0x0): multiple definition of `I_Macroblock_Modes'  
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x0): first defined here  
`CMakeFiles/server.dir/mainclass.cpp.o:(.bss+0x300): multiple definition of `P_and_SP_macroblock_modes'  
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x300): first defined here  
`CMakeFiles/server.dir/mainclass.cpp.o:(.bss+0x680): multiple definition of `B_Macroblock_Modes' 
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x680): first defined here  
`CMakeFiles/server.dir/thRunAppl.cpp.o:(.bss+0x0): multiple definition of `I_Macroblock_Modes'  
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x0): first defined here  
`CMakeFiles/server.dir/thRunAppl.cpp.o:(.bss+0x300): multiple definition of `P_and_SP_macroblock_modes'  
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x300): first defined here  
`CMakeFiles/server.dir/thRunAppl.cpp.o:(.bss+0x680): multiple definition of `B_Macroblock_Modes'  
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x680): first defined here  
`CMakeFiles/server.dir/h.264parser.cpp.o:(.bss+0x0): multiple definition of `I_Macroblock_Modes'  
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x0): first defined here  
`CMakeFiles/server.dir/h.264parser.cpp.o:(.bss+0x300): multiple definition of `P_and_SP_macroblock_modes'  
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x300): first defined here  
`CMakeFiles/server.dir/h.264parser.cpp.o:(.bss+0x680): multiple definition of `B_Macroblock_Modes'  
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x680): first defined here  
`CMakeFiles/server.dir/moc_mainclass.cxx.o:(.bss+0x0): multiple definition of `I_Macroblock_Modes'
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x0): first defined here
`CMakeFiles/server.dir/moc_mainclass.cxx.o:(.bss+0x300): multiple definition of `P_and_SP_macroblock_modes'
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x300): first defined here
`CMakeFiles/server.dir/moc_mainclass.cxx.o:(.bss+0x680): multiple definition of `B_Macroblock_Modes'
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x680): first defined here
`CMakeFiles/server.dir/moc_thRunAppl.cxx.o:(.bss+0x0): multiple definition of `I_Macroblock_Modes'
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x0): first defined here
`CMakeFiles/server.dir/moc_thRunAppl.cxx.o:(.bss+0x300): multiple definition of `P_and_SP_macroblock_modes'
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x300): first defined here
`CMakeFiles/server.dir/moc_thRunAppl.cxx.o:(.bss+0x680): multiple definition of `B_Macroblock_Modes'
`CMakeFiles/server.dir/main.cpp.o:(.bss+0x680): first defined here
`CMakeFiles/server.dir/h.264parser.cpp.o: In function `MbPartPredMode(int, int)':  
`h.264parser.cpp:(.text+0xf0): undefined reference to `B_macroblockmodes(int, int)'  
`h.264parser.cpp:(.text+0x104): undefined reference to `B_macroblockmodes(int, int)'  
`h.264parser.cpp:(.text+0x111): undefined reference to `I_macroblockmodes(int, int)'  
`h.264parser.cpp:(.text+0x124): undefined reference to `P_and_SP_macroblockmodes(int, int)'  
`h.264parser.cpp:(.text+0x134): undefined reference to `P_and_SP_macroblockmodes(int, int)' 
我的设想是:

宏块类型。仅仅是定义

宏块表.h:

#include "macroblocktypes.h"

int I_Macroblock_Modes[27][7];
int P_and_SP_macroblock_modes[32][7];
int B_Macroblock_Modes[50][7];

int I_macroblockmodes(int line, int column);
int P_and_SP_macroblockmodes(int line, int column);
int B_macroblockmodes(int line, int column);
macroblocktables.cpp,为.h文件中的每个数组和函数定义一个数组和函数,如下所示

#include "macroblocktables.h"
int I_macroblock_modes[27][7] ={
{0, I_4x4, 0, Intra_4x4, NA, NA, NA},
//If this line was to be commented out, the MbPartPredMode macro would have to be changed
//since it relies on the linear rise of the value in the first column.
//{0,   I_NxN,          1,  Intra_8x8,   NA, NA, NA},
{1, I_16x16_0_0_0, NA, Intra_16x16, 0, 0, 0},
{2, I_16x16_1_0_0, NA, Intra_16x16, 1, 0, 0},
{3, I_16x16_2_0_0, NA, Intra_16x16, 2, 0, 0},
{4, I_16x16_3_0_0, NA, Intra_16x16, 3, 0, 0},
{5, I_16x16_0_1_0, NA, Intra_16x16, 0, 1, 0},
{6, I_16x16_1_1_0, NA, Intra_16x16, 1, 1, 0},
{7, I_16x16_2_1_0, NA, Intra_16x16, 2, 1, 0},
{8, I_16x16_3_1_0, NA, Intra_16x16, 3, 1, 0},
{9, I_16x16_0_2_0, NA, Intra_16x16, 0, 2, 0},
{10, I_16x16_1_2_0, NA, Intra_16x16, 1, 2, 0},
{11, I_16x16_2_2_0, NA, Intra_16x16, 2, 2, 0},
{12, I_16x16_3_2_0, NA, Intra_16x16, 3, 2, 0},
{13, I_16x16_0_0_1, NA, Intra_16x16, 0, 0, 15},
{14, I_16x16_1_0_1, NA, Intra_16x16, 1, 0, 15},
{15, I_16x16_2_0_1, NA, Intra_16x16, 2, 0, 15},
{16, I_16x16_3_0_1, NA, Intra_16x16, 3, 0, 15},
{17, I_16x16_0_1_1, NA, Intra_16x16, 0, 1, 15},
{18, I_16x16_1_1_1, NA, Intra_16x16, 1, 1, 15},
{19, I_16x16_2_1_1, NA, Intra_16x16, 2, 1, 15},
{20, I_16x16_3_1_1, NA, Intra_16x16, 3, 1, 15},
{21, I_16x16_0_2_1, NA, Intra_16x16, 0, 2, 15},
{22, I_16x16_1_2_1, NA, Intra_16x16, 1, 2, 15},
{23, I_16x16_2_2_1, NA, Intra_16x16, 2, 2, 15},
{24, I_16x16_3_2_1, NA, Intra_16x16, 3, 2, 15},
{25, I_PCM, NA, NA, NA, NA, NA}};

int P_and_SP_macroblock_modes[32][7] = {
{0, P_L0_16x16, 1, Pred_L0, NA, 16, 16},
{1, P_L0_L0_16x8, 2, Pred_L0, Pred_L0, 16, 8},
{2, P_L0_L0_8x16, 2, Pred_L0, Pred_L0, 8, 16},
{3, P_8x8, 4, NA, NA, 8, 8},
{4, P_8x8ref0, 4, NA, NA, 8, 8},
{0, I_4x4, 0, Intra_4x4, NA, NA, NA},
{1, I_16x16_0_0_0, NA, Intra_16x16, 0, 0, 0},
{2, I_16x16_1_0_0, NA, Intra_16x16, 1, 0, 0},
{3, I_16x16_2_0_0, NA, Intra_16x16, 2, 0, 0},
{4, I_16x16_3_0_0, NA, Intra_16x16, 3, 0, 0},
{5, I_16x16_0_1_0, NA, Intra_16x16, 0, 1, 0},
{6, I_16x16_1_1_0, NA, Intra_16x16, 1, 1, 0},
{7, I_16x16_2_1_0, NA, Intra_16x16, 2, 1, 0},
{8, I_16x16_3_1_0, NA, Intra_16x16, 3, 1, 0},
{9, I_16x16_0_2_0, NA, Intra_16x16, 0, 2, 0},
{10, I_16x16_1_2_0, NA, Intra_16x16, 1, 2, 0},
{11, I_16x16_2_2_0, NA, Intra_16x16, 2, 2, 0},
{12, I_16x16_3_2_0, NA, Intra_16x16, 3, 2, 0},
{13, I_16x16_0_0_1, NA, Intra_16x16, 0, 0, 15},
{14, I_16x16_1_0_1, NA, Intra_16x16, 1, 0, 15},
{15, I_16x16_2_0_1, NA, Intra_16x16, 2, 0, 15},
{16, I_16x16_3_0_1, NA, Intra_16x16, 3, 0, 15},
{17, I_16x16_0_1_1, NA, Intra_16x16, 0, 1, 15},
{18, I_16x16_1_1_1, NA, Intra_16x16, 1, 1, 15},
{19, I_16x16_2_1_1, NA, Intra_16x16, 2, 1, 15},
{20, I_16x16_3_1_1, NA, Intra_16x16, 3, 1, 15},
{21, I_16x16_0_2_1, NA, Intra_16x16, 0, 2, 15},
{22, I_16x16_1_2_1, NA, Intra_16x16, 1, 2, 15},
{23, I_16x16_2_2_1, NA, Intra_16x16, 2, 2, 15},
{24, I_16x16_3_2_1, NA, Intra_16x16, 3, 2, 15},
{25, I_PCM, NA, NA, NA, NA, NA},
{NA, P_Skip, 1, Pred_L0, NA, 16, 16}};

int B_macroblock_modes[50][7] = {
{0, B_Direct_16x16, NA, Direct, NA, 8, 8},
{1, B_L0_16x16, 1, Pred_L0, NA, 16, 16},
{2, B_L1_16x16, 1, Pred_L1, NA, 16, 16},
{3, B_Bi_16x16, 1, BiPred, NA, 16, 16},
{4, B_L0_L0_16x8, 2, Pred_L0, Pred_L0, 16, 8},
{5, B_L0_L0_8x16, 2, Pred_L0, Pred_L0, 8, 16},
{6, B_L1_L1_16x8, 2, Pred_L1, Pred_L1, 16, 8},
{7, B_L1_L1_8x16, 2, Pred_L1, Pred_L1, 8, 16},
{8, B_L0_L1_16x8, 2, Pred_L0, Pred_L1, 16, 8},
{9, B_L0_L1_8x16, 2, Pred_L0, Pred_L1, 8, 16},
{10, B_L1_L0_16x8, 2, Pred_L1, Pred_L0, 16, 8},
{11, B_L1_L0_8x16, 2, Pred_L1, Pred_L0, 8, 16},
{12, B_L0_Bi_16x8, 2, Pred_L0, BiPred, 16, 8},
{13, B_L0_Bi_8x16, 2, Pred_L0, BiPred, 8, 16},
{14, B_L1_Bi_16x8, 2, Pred_L1, BiPred, 16, 8},
{15, B_L1_Bi_8x16, 2, Pred_L1, BiPred, 8, 16},
{16, B_Bi_L0_16x8, 2, BiPred, Pred_L0, 16, 8},
{17, B_Bi_L0_8x16, 2, BiPred, Pred_L0, 8, 16},
{18, B_Bi_L1_16x8, 2, BiPred, Pred_L1, 16, 8},
{19, B_Bi_L1_8x16, 2, BiPred, Pred_L1, 8, 16},
{20, B_Bi_Bi_16x8, 2, BiPred, BiPred, 16, 8},
{21, B_Bi_Bi_8x16, 2, BiPred, BiPred, 8, 16},
{22, B_8x8, 4, NA, NA, 8, 8},
{0, I_4x4, 0, Intra_4x4, NA, NA, NA},
{1, I_16x16_0_0_0, NA, Intra_16x16, 0, 0, 0},
{2, I_16x16_1_0_0, NA, Intra_16x16, 1, 0, 0},
{3, I_16x16_2_0_0, NA, Intra_16x16, 2, 0, 0},
{4, I_16x16_3_0_0, NA, Intra_16x16, 3, 0, 0},
{5, I_16x16_0_1_0, NA, Intra_16x16, 0, 1, 0},
{6, I_16x16_1_1_0, NA, Intra_16x16, 1, 1, 0},
{7, I_16x16_2_1_0, NA, Intra_16x16, 2, 1, 0},
{8, I_16x16_3_1_0, NA, Intra_16x16, 3, 1, 0},
{9, I_16x16_0_2_0, NA, Intra_16x16, 0, 2, 0},
{10, I_16x16_1_2_0, NA, Intra_16x16, 1, 2, 0},
{11, I_16x16_2_2_0, NA, Intra_16x16, 2, 2, 0},
{12, I_16x16_3_2_0, NA, Intra_16x16, 3, 2, 0},
{13, I_16x16_0_0_1, NA, Intra_16x16, 0, 0, 15},
{14, I_16x16_1_0_1, NA, Intra_16x16, 1, 0, 15},
{15, I_16x16_2_0_1, NA, Intra_16x16, 2, 0, 15},
{16, I_16x16_3_0_1, NA, Intra_16x16, 3, 0, 15},
{17, I_16x16_0_1_1, NA, Intra_16x16, 0, 1, 15},
{18, I_16x16_1_1_1, NA, Intra_16x16, 1, 1, 15},
{19, I_16x16_2_1_1, NA, Intra_16x16, 2, 1, 15},
{20, I_16x16_3_1_1, NA, Intra_16x16, 3, 1, 15},
{21, I_16x16_0_2_1, NA, Intra_16x16, 0, 2, 15},
{22, I_16x16_1_2_1, NA, Intra_16x16, 1, 2, 15},
{23, I_16x16_2_2_1, NA, Intra_16x16, 2, 2, 15},
{24, I_16x16_3_2_1, NA, Intra_16x16, 3, 2, 15},
{25, I_PCM, NA, NA, NA, NA, NA},
{NA, B_Skip, NA, Direct, NA, 8, 8}};

int I_macroblockmodes(int line, int column) {
if (line < 27 && column < 7)
    return I_macroblock_modes[line][column];
else {
    if (line >= 27) {
        return -10000; //line is bigger than the array size
    } else {
        return -20000; //column is bigger than the array size
    }
}}
//Inter prediction slices - Macroblock types
//Defined strictly by norm, page 121.

//(Table 7-13 Macroblock type values 0 to 4 for P and SP slices)
/*
First column:   mb_type
Second column:  Name of mb_type
Third column:   NumMbPart( mb_type )
Fourth column:  MbPartPredMode( mb_type, 0 )
Fifth column:   MbPartPredMode( mb_type, 1 )
Sixth column:   MbPartWidth( mb_type )
Seventh column: MbPartHeight( mb_type )
*/
int P_and_SP_macroblockmodes(int line, int column){
 if (line < 32 && column < 7)
    return P_and_SP_macroblock_modes[line][column];
else {
    if (line >= 32) {
        return -10000; //line is bigger than the array size
    } else {
        return -20000; //column is bigger than the array size
    }
}}



//p94. Table 7-14 – Macroblock type values 0 to 22 for B slices
/*
First column:   mb_type
Second column:  Name of mb_type
Third column:   NumMbPart( mb_type )
Fourth column:  MbPartPredMode( mb_type, 0 )
Fifth column:   MbPartPredMode( mb_type, 1 )
Sixth column:   MbPartWidth( mb_type )
Seventh column: MbPartHeight( mb_type )
 */
int B_macroblockmodes(int line, int column){
 if (line < 50 && column < 7)
    return B_macroblock_modes[line][column];
else {
    if (line >= 50) {
        return -10000; //line is bigger than the array size
    } else {
        return -20000; //column is bigger than the array size
    }
}}
#包括“macroblocktables.h”
int I_宏块_模式[27][7]={
{0,I_4x4,0,in_4x4,NA,NA,NA},
//如果要注释掉此行,则必须更改MbPartPredMode宏
//因为它依赖于第一列中值的线性上升。
//{0,I_NxN,1,Intra_8x8,NA,NA,NA},
{1,I_16x16_0_0,NA,Intra_16x16,0,0},
{2,I_16x16_1_0_0,NA,Intra_16x16,1,0,0},
{3,I_16x16_2_0_0,NA,Intra_16x16,2,0,0},
{4,I_16x16_3_0_0,NA,Intra_16x16,3,0,0},
{5,I_16x16_0_1_0,NA,Intra_16x16,0,1,0},
{6,I_16x16_1_1_0,NA,Intra_16x16,1,1,0},
{7,I_16x16_2_1_0,NA,Intra_16x16,2,1,0},
{8,I_16x16_3_1_0,NA,Intra_16x16,3,1,0},
{9,I_16x16_0_2_0,NA,Intra_16x16,0,2,0},
{10,I_16x16_1_2_0,NA,Intra_16x16,1,2,0},
{11,I_16x16_2_2_0,NA,Intra_16x16,2,2,0},
{12,I_16x16_3_2_0,NA,Intra_16x16,3,2,0},
{13,I_16x16_0_0_1,NA,Intra_16x16,0,0,15},
{14,I_16x16_1_0_1,NA,Intra_16x16,1,0,15},
{15,I_16x16_2_0_1,NA,Intra_16x16,2,0,15},
{16,I_16x16_3_0_1,NA,Intra_16x16,3,0,15},
{17,I_16x16_0_1_1,NA,Intra_16x16,0,1,15},
{18,I_16x16_1_1_1,NA,Intra_16x16,1,1,15},
{19,I_16x16_2_1_1,NA,Intra_16x16,2,1,15},
{20,I_16x16_3_1_1,NA,Intra_16x16,3,1,15},
{21,I_16x16_0_2_1,NA,Intra_16x16,0,2,15},
{22,I_16x16_1_2_1,NA,Intra_16x16,1,2,15},
{23,I_16x16_2_2_1,NA,Intra_16x16,2,2,15},
{24,I_16x16_3_2_1,NA,Intra_16x16,3,2,15},
{25,I_PCM,NA,NA,NA,NA,NA};
int P_和_SP_宏块_模式[32][7]={
{0,P_L0_16x16,1,Pred_L0,NA,16,16},
{1,P_L0_L0_16x8,2,Pred_L0,Pred_L0,16,8},
{2,P_L0_L0_8x16,2,Pred_L0,Pred_L0,8,16},
{3,P_8x8,4,NA,NA,8,8},
{4,P_8x8ref0,4,NA,NA,8,8},
{0,I_4x4,0,in_4x4,NA,NA,NA},
{1,I_16x16_0_0,NA,Intra_16x16,0,0},
{2,I_16x16_1_0_0,NA,Intra_16x16,1,0,0},
{3,I_16x16_2_0_0,NA,Intra_16x16,2,0,0},
{4,I_16x16_3_0_0,NA,Intra_16x16,3,0,0},
{5,I_16x16_0_1_0,NA,Intra_16x16,0,1,0},
{6,I_16x16_1_1_0,NA,Intra_16x16,1,1,0},
{7,I_16x16_2_1_0,NA,Intra_16x16,2,1,0},
{8,I_16x16_3_1_0,NA,Intra_16x16,3,1,0},
{9,I_16x16_0_2_0,NA,Intra_16x16,0,2,0},
{10,I_16x16_1_2_0,NA,Intra_16x16,1,2,0},
{11,I_16x16_2_2_0,NA,Intra_16x16,2,2,0},
{12,I_16x16_3_2_0,NA,Intra_16x16,3,2,0},
{13,I_16x16_0_0_1,NA,Intra_16x16,0,0,15},
{14,I_16x16_1_0_1,NA,Intra_16x16,1,0,15},
{15,I_16x16_2_0_1,NA,Intra_16x16,2,0,15},
{16,I_16x16_3_0_1,NA,Intra_16x16,3,0,15},
{17,I_16x16_0_1_1,NA,Intra_16x16,0,1,15},
{18,I_16x16_1_1_1,NA,Intra_16x16,1,1,15},
{19,I_16x16_2_1_1,NA,Intra_16x16,2,1,15},
{20,I_16x16_3_1_1,NA,Intra_16x16,3,1,15},
{21,I_16x16_0_2_1,NA,Intra_16x16,0,2,15},
{22,I_16x16_1_2_1,NA,Intra_16x16,1,2,15},
{23,I_16x16_2_2_1,NA,Intra_16x16,2,2,15},
{24,I_16x16_3_2_1,NA,Intra_16x16,3,2,15},
{25,I_PCM,NA,NA,NA,NA,NA},
{NA,P_Skip,1,Pred_L0,NA,16,16};
int B_宏块_模式[50][7]={
{0,B_Direct_16x16,NA,Direct,NA,8,8},
{1,B_L0_16x16,1,Pred_L0,NA,16,16},
{2,B_L1_16x16,1,Pred_L1,NA,16,16},
{3,B_Bi_16x16,1,BiPred,NA,16,16},
{4,B_L0_L0_16x8,2,Pred_L0,Pred_L0,16,8},
{5,B_L0_L0_8x16,2,Pred_L0,Pred_L0,8,16},
{6,B_L1_L1_16x8,2,Pred_L1,Pred_L1,16,8},
{7,B_L1_L1_8x16,2,Pred_L1,Pred_L1,8,16},
{8,B_L0_L1_16x8,2,Pred_L0,Pred_L1,16,8},
{9,B_L0_L1_8x16,2,Pred_L0,Pred_L1,8,16},
{10,B_L1_L0_16x8,2,Pred_L1,Pred_L0,16,8},
{11,B_L1_L0_8x16,2,Pred_L1,Pred_L0,8,16},
{12,B_L0_Bi_16x8,2,Pred_L0,BiPred,16,8},
{13,B_L0_Bi_8x16,2,Pred_L0,BiPred,8,16},
{14,B_L1_Bi_16x8,2,Pred_L1,BiPred,16,8},
{15,B_L1_Bi_8x16,2,Pred_L1,BiPred,8,16},
{16,B_Bi_L0_16x8,2,BiPred,Pred_L0,16,8},
{17,B_Bi_L0_8x16,2,双红色,Pred_L0,8,16},
{18,B_Bi_L1_16x8,2,BiPred_L1,16,8},
{19,B_Bi_L1_8x16,2,双红色,Pred_L1,8,16},
{20,B_Bi_Bi_16x8,2,BiPred,BiPred,16,8},
{21,B_Bi_Bi_8x16,2,双红色,双红色,8,16},
{22,B_8x8,4,NA,NA,8,8},
{0,I_4x4,0,in_4x4,NA,NA,NA},
{1,I_16x16_0_0,NA,Intra_16x16,0,0},
{2,I_16x16_1_0_0,NA,Intra_16x16,1,0,0},
{3,I_16x16_2_0_0,NA,Intra_16x16,2,0,0},
{4,I_16x16_3_0_0,NA,Intra_16x16,3,0,0},
{5,I_16x16_0_1_0,NA,Intra_16x16,0,1,0},
{6,I_16x16_1_1_0,NA,Intra_16x16,1,1,0},
{7,I_16x16_2_1_0,NA,Intra_16x16,2,1,0},
{8,I_16x16_3_1_0,NA,Intra_16x16,3,1,0},
{9,I_16x16_0_2_0,NA,Intra_16x16,0,2,0},
{10,I_16x16_1_2_0,NA,Intra_16x16,1,2,0},
{11,I_16x16_2_2_0,NA,Intra_16x16,2,2,0},
{12,I_16x16_3_2_0,NA,Intra_16x16,3,2,0},
{13,I_16x16_0_0_1,NA,Intra_16x16,0,0,15},
{14,I_16x16_1_0_1,NA,Intra_16x16,1,0,15},
{15,I_16x16_2_0_1,NA,Intra_16x16,2,0,15},
{16,I_16x16_3_0_1,NA,Intra_16x16,3,0,15},
{17,I_16x16_0_1_1,NA,Intra_16x16,0,1,15},
{18,I_16x16_1_1_1,NA,Intra_16x16,1,1,15},
{19,I_16x16_2_1_1,NA,Intra_16x16,2,1,15},
{20,I_16x16_3_1_1,NA,Intra_16x16,3,1,15},
{21,I_16x16_0_2_1,NA,Intra_16x16,0,2,15},
{22,I_16x16_1_2_1,NA,Intra_16x16,1,2,15},
{23,I_16x16_2_2_1,NA,Intra_16x16,2,2,15},
{24,I_16x16_3_2_1,NA,Intra_16x16,3,2,15},
{25,I_PCM,NA,NA,NA,NA,NA},
{NA,B_Skip,NA,Direct,NA,8,8};
int I_宏块模式(int行、int列){
如果(第27行和第7列)
返回I_宏块_模式[行][列];
否则{
如果(行>=27){
return-10000;//行大于数组大小
}否则{
return-20000;//列大于数组大小
}
}}
//帧间预测切片
int I_Macroblock_Modes[27][7];
int P_and_SP_macroblock_modes[32][7];
int B_Macroblock_Modes[50][7];
extern int I_Macroblock_Modes[27][7];
extern int P_and_SP_macroblock_modes[32][7];
extern int B_Macroblock_Modes[50][7];
//resides in macroblocktables.cpp
extern int I_Macroblock_Modes[27][7];
extern int P_and_SP_macroblock_modes[32][7];
extern int B_Macroblock_Modes[50][7];

// the rest of it
int myarray[4];
char mychar;
type var_name;