sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
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
17
#ifndef __libmpeg_internal_H
18
#define __libmpeg_internal_H
19
20
#include <
libmpeg.h
>
21
22
#define TRACE0() \
23
do { \
24
printf("%s:%d\n", __PRETTY_FUNCTION__, __LINE__); \
25
} while (0)
26
#define TRACE1(val) \
27
do { \
28
printf("%s:%d %s == %08x\n", __PRETTY_FUNCTION__, __LINE__, #val, val); \
29
} while (0)
30
31
#define GET_MACRO(_0, _1, _2, NAME, ...) NAME
32
#define TRACE(...) GET_MACRO(_0, ##__VA_ARGS__, TRACE2, TRACE1, TRACE0)(__VA_ARGS__)
33
34
#define _MPEG_PT_I 1
35
#define _MPEG_PT_P 2
36
#define _MPEG_PT_B 3
37
#define _MPEG_PT_D 4
38
39
#define _MPEG_PS_TOP_FIELD 1
40
#define _MPEG_PS_BOTTOM_FIELD 2
41
#define _MPEG_PS_FRAME 3
42
43
#define _MPEG_MBT_INTRA 1
44
#define _MPEG_MBT_PATTERN 2
45
#define _MPEG_MBT_MOTION_BACKWARD 4
46
#define _MPEG_MBT_MOTION_FORWARD 8
47
#define _MPEG_MBT_QUANT 16
48
49
#define _MPEG_MC_FIELD 1
50
#define _MPEG_MC_FRAME 2
51
#define _MPEG_MC_16X8 2
52
#define _MPEG_MC_DMV 3
53
54
#define _MPEG_MV_FIELD 0
55
#define _MPEG_MV_FRAME 1
56
57
#define _MPEG_CODE_PIC_START 0x00000100
58
#define _MPEG_CODE_SLICE_MIN 0x00000101
59
#define _MPEG_CODE_SLICE_MAX 0x000001AF
60
#define _MPEG_CODE_USER_DATA 0x000001B2
61
#define _MPEG_CODE_SEQ_HDR 0x000001B3
62
#define _MPEG_CODE_EXTENSION 0x000001B5
63
#define _MPEG_CODE_SEQ_END 0x000001B7
64
#define _MPEG_CODE_GRP_START 0x000001B8
65
66
#define _MPEG_XID_0 0
67
#define _MPEG_XID_SEQUENCE 1
68
#define _MPEG_XID_DISPLAY 2
69
#define _MPEG_XID_QMATRIX 3
70
#define _MPEG_XID_COPYRIGHT 4
71
#define _MPEG_XID_SCALABLE 5
72
#define _MPEG_XID_6 6
73
#define _MPEG_XID_PIC_DSP 7
74
#define _MPEG_XID_PIC_COD 8
75
#define _MPEG_XID_PIC_SSC 9
76
#define _MPEG_XID_PIC_TSC 10
77
78
typedef
struct
_MPEGMBXY
79
{
80
unsigned
char
m_X;
81
unsigned
char
m_Y;
82
}
_MPEGMBXY
;
83
84
typedef
struct
_MPEGMacroBlock8
85
{
86
unsigned
char
m_Y[16][16];
87
unsigned
char
m_Cb[8][8];
88
unsigned
char
m_Cr[8][8];
89
}
_MPEGMacroBlock8
;
90
91
typedef
struct
_MPEGMotion
92
{
93
unsigned
char
*m_pSrc;
94
short
*m_pDstY;
95
short
*m_pDstCbCr;
96
int
m_X;
97
int
m_Y;
98
int
m_H;
99
int
m_fInt;
100
int
m_Field;
101
102
// These are used from assembly, supress linter warnings.
103
// cppcheck-suppress unusedStructMember
104
void (*MC_Luma)(
struct
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
tmpa,
int
a7,
int
a8);
105
// cppcheck-suppress unusedStructMember
106
void (*MC_Chroma)(
struct
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
tmpa,
int
a7,
int
a8);
107
}
_MPEGMotion
;
108
109
typedef
struct
_MPEGMotions
110
{
111
unsigned
char
*m_pMBDstY;
112
unsigned
char
*m_pMBDstCbCr;
113
unsigned
char
*m_pSrc;
114
unsigned
char
*m_pSPRBlk;
115
unsigned
char
*m_pSPRRes;
116
unsigned
char
*m_pSPRMC;
117
int
m_Stride;
118
int
m_nMotions;
119
void (*BlockOp)(
struct
_MPEGMotions
*arg0);
120
_MPEGMotion
m_Motion[7];
121
}
_MPEGMotions
;
122
123
typedef
struct
_MPEGContext
124
{
125
MPEGSequenceInfo
m_SI;
126
s64 m_FwdPTS;
127
s64 m_BckPTS;
128
s64 m_AuxPTS;
129
int
m_MBWidth;
130
int
m_MBHeight;
131
void
*m_pFrameArena;
132
_MPEGMacroBlock8
*m_pFwdFrame;
133
_MPEGMacroBlock8
*m_pBckFrame;
134
_MPEGMacroBlock8
*m_pAuxFrame;
135
_MPEGMacroBlock8
*m_pCurFrame;
136
_MPEGMBXY
*m_pMBXY;
137
unsigned
char
*m_pCurFrameY;
138
unsigned
char
*m_pCurFrameCbCr;
139
int
m_FRCode;
140
int
m_MBStride;
141
int
m_MBCount;
142
int
m_fProgSeq;
143
int
m_fMPEG2;
144
int
m_fRepFF;
145
int
m_fTopFF;
146
int
m_fFPFrmDCT;
147
int
m_fConsMV;
148
int
m_fSecField;
149
int
m_fError;
150
int
m_fDCRst;
151
int
m_QScale;
152
int
m_PictStruct;
153
int
m_PictCodingType;
154
int
m_FPFVector;
155
int
m_FwdFCode;
156
int
m_FPBVector;
157
int
m_BckFCode;
158
int
m_FCode[2][2];
159
int
m_CurMC;
160
_MPEGMotions
m_MC[2];
161
_MPEGMotions
*m_pCurMotions;
162
}
_MPEGContext
;
163
164
extern
void
_MPEG_Initialize(
_MPEGContext
*mc,
int
(*data_cb)(
void
*userdata),
void
*cb_user,
int
*eof_flag);
165
extern
void
_MPEG_Destroy(
void
);
166
extern
int
_MPEG_CSCImage(
void
*source,
void
*dest,
int
mbcount);
167
extern
void
_MPEG_SetDefQM(
int
arg0);
168
extern
void
_MPEG_SetQM(
int
iqm);
169
extern
int
_MPEG_GetMBAI(
void
);
170
extern
int
_MPEG_GetMBType(
void
);
171
extern
int
_MPEG_GetMotionCode(
void
);
172
extern
int
_MPEG_GetDMVector(
void
);
173
extern
unsigned
int
_MPEG_NextStartCode(
void
);
174
extern
void
_MPEG_AlignBits(
void
);
175
extern
unsigned
int
_MPEG_GetBits(
unsigned
int
bits);
176
extern
unsigned
int
_MPEG_ShowBits(
unsigned
int
bits);
177
extern
void
_MPEG_SetIDCP(
void
);
178
extern
void
_MPEG_SetQSTIVFAS(
void
);
179
extern
void
_MPEG_SetPCT(
unsigned
int
arg0);
180
extern
void
_MPEG_BDEC(
int
mbi,
int
dcr,
int
dt,
int
qsc,
void
*spaddr);
181
extern
int
_MPEG_WaitBDEC(
void
);
182
extern
void
_MPEG_dma_ref_image(
_MPEGMacroBlock8
*mb,
_MPEGMotion
*motions, s64 n_motions,
int
width);
183
extern
void
_MPEG_do_mc(
_MPEGMotion
*arg0);
184
extern
void
_MPEG_put_luma(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
185
extern
void
_MPEG_put_luma_X(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
186
extern
void
_MPEG_put_luma_Y(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
187
extern
void
_MPEG_put_luma_XY(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
188
extern
void
_MPEG_put_chroma(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
189
extern
void
_MPEG_put_chroma_X(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
190
extern
void
_MPEG_put_chroma_Y(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
191
extern
void
_MPEG_put_chroma_XY(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
192
extern
void
_MPEG_avg_luma(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
193
extern
void
_MPEG_avg_luma_X(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
194
extern
void
_MPEG_avg_luma_Y(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
195
extern
void
_MPEG_avg_luma_XY(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
196
extern
void
_MPEG_avg_chroma(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
197
extern
void
_MPEG_avg_chroma_X(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
198
extern
void
_MPEG_avg_chroma_Y(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
199
extern
void
_MPEG_avg_chroma_XY(
_MPEGMotion
*m, u8 *a2,
short
*a3,
int
a4,
int
var1,
int
ta,
int
a7,
int
a8);
200
extern
void
_MPEG_put_block_fr(
_MPEGMotions
*arg0);
201
extern
void
_MPEG_put_block_fl(
_MPEGMotions
*arg0);
202
extern
void
_MPEG_put_block_il(
_MPEGMotions
*arg0);
203
extern
void
_MPEG_add_block_ilfl(
_MPEGMotions
*arg0);
204
extern
void
_MPEG_add_block_frfr(
_MPEGMotions
*arg0);
205
extern
void
_MPEG_add_block_frfl(
_MPEGMotions
*arg0);
206
extern
void
_MPEG_Suspend(
void
);
207
extern
void
_MPEG_Resume(
void
);
208
209
#endif
/* __libmpeg_internal_H */
libmpeg.h
MPEGSequenceInfo
Definition
libmpeg.h:45
_MPEGContext
Definition
libmpeg_internal.h:124
_MPEGMBXY
Definition
libmpeg_internal.h:79
_MPEGMacroBlock8
Definition
libmpeg_internal.h:85
_MPEGMotion
Definition
libmpeg_internal.h:92
_MPEGMotions
Definition
libmpeg_internal.h:110
core
mpeg
src
libmpeg_internal.h
Generated by
1.18.0