PS2SDK
PS2 Homebrew Libraries
Loading...
Searching...
No Matches
libmpeg_internal.h
Go to the documentation of this file.
1/*
2# _____ ___ ____ ___ ____
3# ____| | ____| | | |____|
4# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5#-----------------------------------------------------------------------
6# Copyright (c) 2006 Eugene Plotnikov <e-plotnikov@operamail.com>
7# Licenced under Academic Free License version 2.0
8# Review ps2sdk README & LICENSE files for further details.
9*/
10
16#ifndef __libmpeg_internal_H
17# define __libmpeg_internal_H
18
19# include <libmpeg.h>
20
21# define _MPEG_PT_I 1
22# define _MPEG_PT_P 2
23# define _MPEG_PT_B 3
24# define _MPEG_PT_D 4
25
26# define _MPEG_PS_TOP_FIELD 1
27# define _MPEG_PS_BOTTOM_FIELD 2
28# define _MPEG_PS_FRAME 3
29
30# define _MPEG_MBT_INTRA 1
31# define _MPEG_MBT_PATTERN 2
32# define _MPEG_MBT_MOTION_BACKWARD 4
33# define _MPEG_MBT_MOTION_FORWARD 8
34# define _MPEG_MBT_QUANT 16
35
36# define _MPEG_MC_FIELD 1
37# define _MPEG_MC_FRAME 2
38# define _MPEG_MC_16X8 2
39# define _MPEG_MC_DMV 3
40
41# define _MPEG_MV_FIELD 0
42# define _MPEG_MV_FRAME 1
43
44# define _MPEG_CODE_PIC_START 0x00000100
45# define _MPEG_CODE_SLICE_MIN 0x00000101
46# define _MPEG_CODE_SLICE_MAX 0x000001AF
47# define _MPEG_CODE_USER_DATA 0x000001B2
48# define _MPEG_CODE_SEQ_HDR 0x000001B3
49# define _MPEG_CODE_EXTENSION 0x000001B5
50# define _MPEG_CODE_SEQ_END 0x000001B7
51# define _MPEG_CODE_GRP_START 0x000001B8
52
53# define _MPEG_XID_0 0
54# define _MPEG_XID_SEQUENCE 1
55# define _MPEG_XID_DISPLAY 2
56# define _MPEG_XID_QMATRIX 3
57# define _MPEG_XID_COPYRIGHT 4
58# define _MPEG_XID_SCALABLE 5
59# define _MPEG_XID_6 6
60# define _MPEG_XID_PIC_DSP 7
61# define _MPEG_XID_PIC_COD 8
62# define _MPEG_XID_PIC_SSC 9
63# define _MPEG_XID_PIC_TSC 10
64
65typedef struct _MPEGMBXY {
66
67 unsigned char m_X;
68 unsigned char m_Y;
69
70} _MPEGMBXY;
71
72typedef struct _MPEGMacroBlock8 {
73
74 unsigned char m_Y [ 16 ][ 16 ];
75 unsigned char m_Cb[ 8 ][ 8 ];
76 unsigned char m_Cr[ 8 ][ 8 ];
77
79
80typedef struct _MPEGMotion {
81
82 unsigned char* m_pSrc;
83 short* m_pDstY;
84 short* m_pDstCbCr;
85 int m_X;
86 int m_Y;
87 int m_H;
88 int m_fInt;
89 int m_Field;
90
91 void ( *MC_Luma ) ( u8* a1, u16* a2, int a3, int a4, int var1, int tmpa );
92 void ( *MC_Chroma ) ( u8* a1, u16* a2, int a3, int a4, int var1, int tmpa );
93
95
96typedef struct _MPEGMotions {
97
98 unsigned char* m_pMBDstY;
99 unsigned char* m_pMBDstCbCr;
100 unsigned char* m_pSrc;
101 unsigned char* m_pSPRBlk;
102 unsigned char* m_pSPRRes;
103 unsigned char* m_pSPRMC;
104 int m_Stride;
105 int m_nMotions;
106 void ( *BlockOp ) ( struct _MPEGMotions* );
107 _MPEGMotion m_Motion[ 7 ];
108
110
111typedef struct _MPEGContext {
112
113 MPEGSequenceInfo m_SI;
114 s64 m_FwdPTS;
115 s64 m_BckPTS;
116 s64 m_AuxPTS;
117 int m_MBWidth;
118 int m_MBHeight;
119 _MPEGMacroBlock8* m_pFwdFrame;
120 _MPEGMacroBlock8* m_pBckFrame;
121 _MPEGMacroBlock8* m_pAuxFrame;
122 _MPEGMacroBlock8* m_pCurFrame;
123 _MPEGMBXY* m_pMBXY;
124 unsigned char* m_pCurFrameY;
125 unsigned char* m_pCurFrameCbCr;
126 int m_FRCode;
127 int m_MBStride;
128 int m_MBCount;
129 int m_fProgSeq;
130 int m_fMPEG2;
131 int m_fRepFF;
132 int m_fTopFF;
133 int m_fFPFrmDCT;
134 int m_fConsMV;
135 int m_fSecField;
136 int m_fError;
137 int m_fDCRst;
138 int m_QScale;
139 int m_PictStruct;
140 int m_PictCodingType;
141 int m_FPFVector;
142 int m_FwdFCode;
143 int m_FPBVector;
144 int m_BckFCode;
145 int m_FCode[ 2 ][ 2 ];
146 int m_CurMC;
147 _MPEGMotions m_MC[ 2 ];
148 _MPEGMotions* m_pCurMotions;
149
151
152extern void _MPEG_Initialize ( _MPEGContext*, int ( * ) ( void* ), void*, int* );
153extern void _MPEG_Destroy ( void );
154extern int _MPEG_CSCImage ( void*, void*, int );
155extern void _MPEG_SetDefQM ( int );
156extern void _MPEG_SetQM ( int );
157extern int _MPEG_GetMBAI ( void );
158extern int _MPEG_GetMBType ( void );
159extern int _MPEG_GetMotionCode ( void );
160extern int _MPEG_GetDMVector ( void );
161extern unsigned int _MPEG_NextStartCode ( void );
162extern void _MPEG_AlignBits ( void );
163extern unsigned int _MPEG_GetBits ( unsigned int );
164extern unsigned int _MPEG_ShowBits ( unsigned int );
165extern void _MPEG_SetIDCP ( void );
166extern void _MPEG_SetQSTIVFAS ( void );
167extern void _MPEG_SetPCT ( unsigned int );
168extern void _MPEG_BDEC ( int, int, int, int, void* );
169extern int _MPEG_WaitBDEC ( void );
170extern void _MPEG_dma_ref_image ( _MPEGMacroBlock8*, _MPEGMotion*, s64, int );
171extern void _MPEG_do_mc ( _MPEGMotion* );
172extern void _MPEG_put_luma ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
173extern void _MPEG_put_luma_X ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
174extern void _MPEG_put_luma_Y ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
175extern void _MPEG_put_luma_XY ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
176extern void _MPEG_put_chroma ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
177extern void _MPEG_put_chroma_X ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
178extern void _MPEG_put_chroma_Y ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
179extern void _MPEG_put_chroma_XY ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
180extern void _MPEG_avg_luma ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
181extern void _MPEG_avg_luma_X ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
182extern void _MPEG_avg_luma_Y ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
183extern void _MPEG_avg_luma_XY ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
184extern void _MPEG_avg_chroma ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
185extern void _MPEG_avg_chroma_X ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
186extern void _MPEG_avg_chroma_Y ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
187extern void _MPEG_avg_chroma_XY ( u8* a1, u16* a2, int a3, int a4, int var1, int ta );
188extern void _MPEG_put_block_fr ( _MPEGMotions* );
189extern void _MPEG_put_block_fl ( _MPEGMotions* );
190extern void _MPEG_put_block_il ( _MPEGMotions* );
191extern void _MPEG_add_block_ilfl ( _MPEGMotions* );
192extern void _MPEG_add_block_frfr ( _MPEGMotions* );
193extern void _MPEG_add_block_frfl ( _MPEGMotions* );
194extern void _MPEG_Suspend ( void );
195extern void _MPEG_Resume ( void );
196#endif /* __libmpeg_internal_H */