static const unsigned int _ac3_FrameSizeTbl[38][3] = { {64, 69, 96}, {64, 70, 96}, {80, 87, 120}, {80, 88, 120}, {96, 104, 144}, {96, 105, 144}, {112, 121, 168}, {112, 122, 168}, {128, 139, 192}, {128, 140, 192}, {160, 174, 240}, {160, 175, 240}, {192, 208, 288}, {192, 209, 288}, {224, 243, 336}, {224, 244, 336}, {256, 278, 384}, {256, 279, 384}, {320, 348, 480}, {320, 349, 480}, {384, 417, 576}, {384, 418, 576}, {448, 487, 672}, {448, 488, 672}, {512, 557, 768}, {512, 558, 768}, {640, 696, 960}, {640, 697, 960}, {768, 835, 1152}, {768, 836, 1152}, {896, 975, 1344}, {896, 976, 1344}, {1024, 1114, 1536}, {1024, 1115, 1536}, {1152, 1253, 1728}, {1152, 1254, 1728}, {1280, 1393, 1920}, {1280, 1394, 1920}};static unsigned int _AC3GetFrameLen(char *pFrameBuf){ unsigned int nFsCod, nFrmSizeCod; if (pFrameBuf == NULL) { return 0; } // Sync word check if (pFrameBuf[0] != 0x0b || pFrameBuf[1] != 0x77) { return 0; } nFsCod = (pFrameBuf[4] & 0xc0) >> 6; if (nFsCod > 3) { // nFsCod 가 4 이면 Reserved.... return 0; } nFrmSizeCod = pFrameBuf[4] & 0x3f; if (nFrmSizeCod > 37) { // nFrmSizeCod 가 37 보다 크면 Error return 0; } return _ac3_FrameSizeTbl[nFrmSizeCod][nFsCod] << 1;}