34 #define MPEG_BITSTREAM_FILE "host:test.bin"
36 #define MAX_SIZE ( 1024 * 1024 * 24 )
52 static int SetDMA (
void* );
85 lSize = lseek ( lFD, 0, SEEK_END );
86 lseek ( lFD, 0, SEEK_SET );
89 printf (
"test_mpeg: could not obtain file size (%ld)\n", lSize );
96 printf (
"test_mpeg: could not allocate enough memory (%ld)\n", lSize );
104 printf (
"test_mpeg: could not read file\n" );
160 if ( lInfo.
m_pInfo -> m_fEOF )
break;
181 printf (
"test_mpeg: test finished\n" );
220 int lDataSize = apInfo -> m_Width * apInfo -> m_Height * 4;
221 char* retVal = (
char* )malloc ( lDataSize );
223 int lMBW = ( apInfo -> m_Width ) >> 4;
224 int lMBH = ( apInfo -> m_Height ) >> 4;
225 int lTBW = ( apInfo -> m_Width + 63 ) >> 6;
226 int lTW =
draw_log2 ( apInfo -> m_Width );
227 int lTH =
draw_log2 ( apInfo -> m_Height );
232 lpParam -> m_TexAddr >>= 6;
234 lpParam -> m_pData = lpImg = retVal;
235 lpParam -> m_pInfo = apInfo;
244 q = lpParam-> m_XFerPck ->
data;
255 for ( lY = 0; lY < apInfo -> m_Height; lY += 16 ) {
256 for ( lX = 0; lX < apInfo -> m_Width; lX += 16, lpImg += 1024 ) {
267 DMATAG_REF(q, 64, (
unsigned )lpImg, 0, 0, 0);
275 lpParam-> m_XFerPck -> qwc = q - lpParam-> m_XFerPck ->
data;
281 q = lpParam -> m_DrawPck ->
data;
284 PACK_GIFTAG(q,
GS_SET_TEX0( lpParam -> m_TexAddr, lTBW,
GS_PSM_32, lTW, lTH, 1, 1, 0, 0, 0, 0, 0 ),
GS_REG_TEX0_1 );
286 PACK_GIFTAG(q,
GS_SET_PRIM( 6, 0, 1, 0, 0, 0, 1, 0, 0 ),
GS_REG_PRIM );
297 lpParam -> m_DrawPck -> qwc = q - lpParam -> m_DrawPck ->
data;
int dma_channel_send_normal(int channel, void *data, int qwc, int flags, int spr)
#define DMA_CHANNEL_toIPU
int dma_channel_wait(int channel, int timeout)
int dma_channel_initialize(int channel, void *handler, int flags)
void dma_channel_fast_waits(int channel)
int dma_channel_send_chain(int channel, void *data, int qwc, int flags, int spr)
qword_t * draw_setup_environment(qword_t *q, int context, framebuffer_t *frame, zbuffer_t *z)
qword_t * draw_clear(qword_t *q, int context, float x, float y, float width, float height, int r, int g, int b)
unsigned char draw_log2(unsigned int x)
int graph_initialize(int fbp, int width, int height, int psm, int x, int y)
void graph_wait_vsync(void)
#define GRAPH_ALIGN_BLOCK
int graph_vram_allocate(int width, int height, int psm, int alignment)
#define GS_SET_XYZ(X, Y, Z)
#define GS_SET_TRXREG(W, H)
#define GS_SET_PRIM(PRIM, IIP, TME, FGE, ABE, AA1, FST, CTXT, FIX)
#define GS_SET_BITBLTBUF(SBA, SBW, SPSM, DBA, DBW, DPSM)
#define GS_SET_TRXPOS(SX, SY, DX, DY, DIR)
#define GS_SET_TEX0(TBA, TBW, PSM, TW, TH, TCC, TFNCT, CBA, CPSM, CSM, CSA, CLD)
#define GS_SET_TRXDIR(DIR)
void SyncDCache(void *start, void *end)
int(* MPEG_Picture)(void *, s64 *)
void MPEG_Initialize(int(*)(void *), void *, void *(*)(void *, MPEGSequenceInfo *), void *, s64 *)
static unsigned char * s_pTransferPtr
static int SetDMA(void *)
static void * InitCB(void *, MPEGSequenceInfo *)
static unsigned char * s_pMPEGData
#define MPEG_BITSTREAM_FILE
static unsigned int s_MPEGDataSize
packet_t * packet_init(int qwords, int type)
MPEGSequenceInfo * m_pInfo