📄 sp_test.cpp
字号:
#include <stdio.h>
#include <iostream>
#include <string.h>
#include "vdvd_types.h"
#include "cSpudec.h"
#ifdef DMALLOC
#include "dmalloc.h"
#endif
// TEST PROGRAM FOR SPU DECODER
// RNN - 01/29/2003
BYTE abRawData[574] = {
0x02, 0x3E, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x98, 0x5A, 0x50, 0x00, 0x00,
0x85, 0x3A, 0x91, 0x25, 0x00, 0x00, 0xC1, 0x51, 0x21, 0x54, 0x51, 0x25, 0x00, 0x00, 0x1C, 0x51,
0x25, 0x14, 0x51, 0x29, 0xE9, 0x18, 0x9E, 0x91, 0x45, 0xAD, 0xED, 0x16, 0x91, 0x49, 0x1A, 0x91,
0x49, 0x16, 0x90, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14, 0x52, 0xE5, 0xC5, 0x26, 0x58, 0x50, 0x52,
0x54, 0x52, 0xE5, 0xC5, 0x2A, 0x50, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14, 0x51, 0x65, 0x45, 0x12,
0x54, 0x51, 0x25, 0x45, 0x12, 0x54, 0x51, 0x65, 0x45, 0x12, 0x58, 0x51, 0x25, 0x45, 0xE5, 0xC5,
0x12, 0x54, 0x51, 0x25, 0x85, 0xE5, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14, 0x51, 0x25, 0x85, 0x12,
0x91, 0x25, 0xC5, 0x12, 0x91, 0x25, 0x85, 0x12, 0x58, 0x51, 0x25, 0x89, 0x4D, 0x1A, 0x58, 0x51,
0xE9, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14, 0x51, 0x25, 0x85, 0x12, 0x91, 0x25, 0xC5, 0x12, 0x91,
0x25, 0x85, 0x12, 0x58, 0x51, 0x25, 0x85, 0x2E, 0x51, 0x09, 0x1E, 0x50, 0x00, 0x00, 0x1C, 0x51,
0x25, 0x14, 0x51, 0x25, 0x85, 0x12, 0x91, 0x25, 0xC5, 0x12, 0x91, 0x25, 0x85, 0x12, 0x58, 0x51,
0x29, 0x12, 0x98, 0x51, 0x25, 0x45, 0xE5, 0x89, 0x12, 0x50, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14,
0x51, 0x25, 0x85, 0x12, 0x54, 0x51, 0x65, 0x16, 0x54, 0x51, 0x25, 0x85, 0x12, 0x58, 0x51, 0x29,
0x16, 0x91, 0xA5, 0x45, 0x16, 0x91, 0x65, 0x45, 0xA5, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14, 0x51,
0x25, 0x85, 0x12, 0x5C, 0x51, 0xE5, 0xC5, 0x12, 0x58, 0x51, 0x25, 0x85, 0x12, 0x54, 0x51, 0xE9,
0x12, 0x54, 0x52, 0x65, 0x85, 0x12, 0x50, 0x00, 0x00, 0x24, 0x92, 0x49, 0x18, 0x92, 0x0D, 0x20,
0x91, 0x89, 0x18, 0x91, 0x8D, 0x14, 0x91, 0x81, 0x51, 0xC9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x09, 0x00, 0x00, 0x85, 0x3A, 0x91, 0x25,
0x00, 0x00, 0x85, 0x3A, 0x91, 0x25, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14, 0x51, 0x25, 0x4D, 0x28,
0xD2, 0x09, 0xCD, 0xC1, 0x52, 0x41, 0x92, 0x41, 0x50, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14, 0x51,
0x25, 0x1A, 0x51, 0x05, 0x1E, 0x5C, 0x50, 0x4E, 0x5C, 0x52, 0xA5, 0xC5, 0x26, 0x50, 0x00, 0x00,
0x1C, 0x51, 0x25, 0x14, 0x51, 0xA5, 0x16, 0x54, 0x51, 0x65, 0x16, 0x54, 0x51, 0x6D, 0x12, 0xD1,
0x65, 0x45, 0x12, 0xD1, 0x65, 0x45, 0x16, 0x91, 0x25, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14, 0x51,
0x25, 0x85, 0x12, 0x91, 0x25, 0xC5, 0x12, 0x91, 0x25, 0x85, 0x12, 0x58, 0x51, 0x25, 0x45, 0xA5,
0xC9, 0x12, 0x54, 0x51, 0x61, 0x16, 0x50, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14, 0x51, 0x25, 0x85,
0x12, 0x91, 0x25, 0xC5, 0x12, 0x91, 0x25, 0x85, 0x12, 0x58, 0x51, 0x25, 0xC9, 0x26, 0x5C, 0x51,
0xE9, 0x00, 0x00, 0x1C, 0x51, 0x25, 0x14, 0x51, 0x25, 0x85, 0x12, 0x91, 0x25, 0xC5, 0x12, 0x91,
0x25, 0x85, 0x12, 0x58, 0x51, 0x25, 0x45, 0x16, 0xD1, 0x25, 0x8D, 0x49, 0x1A, 0x50, 0x00, 0x00,
0x1C, 0x51, 0x25, 0x14, 0x51, 0x25, 0x85, 0x12, 0x54, 0x51, 0x25, 0x45, 0x12, 0x54, 0x51, 0x25,
0x85, 0x12, 0x58, 0x51, 0x29, 0x12, 0x58, 0x91, 0x25, 0x45, 0x12, 0x58, 0x51, 0x25, 0x89, 0x00,
0x00, 0x1C, 0x51, 0x25, 0x14, 0x51, 0x25, 0x85, 0x12, 0x58, 0x52, 0x65, 0x85, 0x12, 0x58, 0x51,
0x25, 0x85, 0x12, 0x93, 0xA9, 0x2E, 0x54, 0x51, 0x25, 0x00, 0x00, 0x20, 0x5A, 0x51, 0xC5, 0xA5,
0x10, 0x5A, 0x51, 0x49, 0xE9, 0x14, 0x5A, 0x51, 0x05, 0xA5, 0x10, 0x5A, 0x5C, 0x9E, 0x98, 0x5A,
0x5C, 0x91, 0x69, 0x10, 0x5A, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x38, 0x03, 0x01, 0x23, 0x04, 0x0F, 0xF0, 0x05, 0x13, 0x41, 0x9D, 0x18, 0xC1,
0xB0, 0x06, 0x00, 0x04, 0x01, 0x14, 0x01, 0xFF, 0x00, 0x72, 0x02, 0x38, 0x02, 0xFF,
} ;
int main (void)
{
cSPUDecoder* pSPUDec = NULL;
ULONG* pulBmp = NULL;
ULONG ulRawSize = sizeof(abRawData);
ULONG ulRetSize = 0;
BYTE* pbRaw = (BYTE*)(abRawData);;
BYTE x = 0;
FILE* pfile = NULL;
/* Create decoder */
pSPUDec = new cSPUDecoder;
if(pSPUDec == NULL)
{
printf("Create cSPUDecoder() FAILED\n");
return(1);
}
/* Decode raw SPU data */
pulBmp = (ULONG*)pSPUDec->DecodeSPU( &pbRaw, &ulRawSize );
if(pulBmp)
{
/* Calculate size of data */
ulRetSize = pSPUDec->GetBmpWidth() * pSPUDec->GetBmpHeight() * 4;
/* Write decoded data to file */
pfile = fopen("dumpbmp.bin", "w");
if(pfile)
{
fwrite(pulBmp, 1, ulRetSize, pfile);
}
fclose(pfile);
}
/* Destroy decoder */
delete pSPUDec;
printf("SUCCESS\n");
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -