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