vitasdk
Documentation of the vitasdk
iftu.h
Go to the documentation of this file.
1 
6 #ifndef _PSP2KERN_LOWIO_IFTU_H_
7 #define _PSP2KERN_LOWIO_IFTU_H_
8 
9 #include <vitasdk/build_utils.h>
10 #include <psp2kern/types.h>
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 typedef enum SceIftuErrorCode {
22 
23 typedef enum SceIftuPixelformat {
32  SCE_IFTU_PIXELFORMAT_BGRP = 0x100, /* 3 planes - R, G, B */
37  SCE_IFTU_PIXELFORMAT_NV12 = 0x10000, /* 2 planes - Y, Cb + Cr interleaved */
38  SCE_IFTU_PIXELFORMAT_YUV420 = 0x20000, /* 3 planes - Y, Cb, Cr */
39  SCE_IFTU_PIXELFORMAT_YUV422 = 0x200000, /* 3 planes - Y, Cb, Cr */
41 
42 typedef struct SceIftuCscParams {
43  unsigned int post_add_0; /* 10-bit integer */
44  unsigned int post_add_1_2; /* 10-bit integer */
45  unsigned int post_clamp_max_0; /* 10-bit integer */
46  unsigned int post_clamp_min_0; /* 10-bit integer */
47  unsigned int post_clamp_max_1_2; /* 10-bit integer */
48  unsigned int post_clamp_min_1_2; /* 10-bit integer */
49  unsigned int ctm[3][3]; /* S3.9 fixed point format */
52 
53 typedef struct SceIftuConvParams {
54  unsigned int size;
55  unsigned int unk04;
58  unsigned int csc_control;
59  unsigned int unk14;
60  unsigned int unk18;
61  unsigned int unk1C;
62  unsigned int alpha;
63  unsigned int unk24;
66 
67 typedef struct SceIftuFrameBuf {
68  unsigned int pixelformat;
69  unsigned int width; /* Aligned to 16 */
70  unsigned int height; /* Aligned to 8 */
71  unsigned int leftover_stride; /* (pitch - aligned_w) * bpp */
72  unsigned int leftover_align; /* if YCbCr: (width >> 1) & 0xF [chroma align?] */
73  unsigned int paddr0; /* Physical address of the first plane */
74  unsigned int paddr1; /* Physical address of the second plane */
75  unsigned int paddr2; /* Physical address of the third plane */
78 
79 typedef struct SceIftuPlaneState {
81  unsigned int unk20;
82  unsigned int src_x; /* In (0x10000 / 960) multiples */
83  unsigned int src_y; /* in (0x10000 / 544) multiples */
84  unsigned int src_w; /* in (0x10000 / 960) multiples */
85  unsigned int src_h; /* in (0x10000 / 544) multiples */
86  unsigned int dst_x;
87  unsigned int dst_y;
88  unsigned int dst_w;
89  unsigned int dst_h;
90  unsigned int vtop_padding;
91  unsigned int vbot_padding; /* h - aligned_h */
92  unsigned int hleft_padding;
93  unsigned int hright_padding; /* w - aligned_w */
96 
98 
99 #ifdef __cplusplus
100 }
101 #endif
102 
103 #endif /* _PSP2KERN_LOWIO_IFTU_H_ */
104 
unsigned int post_clamp_max_0
Definition: iftu.h:45
unsigned int dst_y
Definition: iftu.h:87
unsigned int width
Definition: iftu.h:69
unsigned int src_h
Definition: iftu.h:85
SceIftuCscParams * csc_params2
Definition: iftu.h:57
unsigned int post_add_0
Definition: iftu.h:43
unsigned int post_clamp_max_1_2
Definition: iftu.h:47
unsigned int paddr2
Definition: iftu.h:75
unsigned int src_x
Definition: iftu.h:82
unsigned int paddr0
Definition: iftu.h:73
unsigned int paddr1
Definition: iftu.h:74
unsigned int pixelformat
Definition: iftu.h:68
unsigned int unk20
Definition: iftu.h:81
unsigned int dst_x
Definition: iftu.h:86
unsigned int alpha
Definition: iftu.h:62
VITASDK_BUILD_ASSERT_EQ(0x3C, SceIftuCscParams)
unsigned int src_w
Definition: iftu.h:84
unsigned int leftover_stride
Definition: iftu.h:71
unsigned int unk24
Definition: iftu.h:63
unsigned int post_clamp_min_1_2
Definition: iftu.h:48
unsigned int vtop_padding
Definition: iftu.h:90
unsigned int size
Definition: iftu.h:54
SceIftuPixelformat
Definition: iftu.h:23
SceIftuFrameBuf fb
Definition: iftu.h:80
SceIftuErrorCode
Definition: iftu.h:16
unsigned int unk18
Definition: iftu.h:60
SceIftuCscParams * csc_params1
Definition: iftu.h:56
unsigned int dst_w
Definition: iftu.h:88
unsigned int unk1C
Definition: iftu.h:61
unsigned int height
Definition: iftu.h:70
unsigned int leftover_align
Definition: iftu.h:72
unsigned int unk04
Definition: iftu.h:55
unsigned int csc_control
Definition: iftu.h:58
unsigned int src_y
Definition: iftu.h:83
unsigned int post_add_1_2
Definition: iftu.h:44
unsigned int dst_h
Definition: iftu.h:89
int ksceIftuCsc(SceIftuFrameBuf *dst, SceIftuPlaneState *src, SceIftuConvParams *params)
unsigned int post_clamp_min_0
Definition: iftu.h:46
unsigned int hright_padding
Definition: iftu.h:93
unsigned int ctm[3][3]
Definition: iftu.h:49
unsigned int hleft_padding
Definition: iftu.h:92
unsigned int vbot_padding
Definition: iftu.h:91
unsigned int unk14
Definition: iftu.h:59
@ SCE_IFTU_PIXELFORMAT_BGRX8888_MULT
Definition: iftu.h:34
@ SCE_IFTU_PIXELFORMAT_RGBX8888_MULT
Definition: iftu.h:33
@ SCE_IFTU_PIXELFORMAT_BGRA1010102_MULT
Definition: iftu.h:36
@ SCE_IFTU_PIXELFORMAT_RGBA1010102_MULT
Definition: iftu.h:35
@ SCE_IFTU_PIXELFORMAT_BGRA5551
Definition: iftu.h:26
@ SCE_IFTU_PIXELFORMAT_RGBX8888
Definition: iftu.h:29
@ SCE_IFTU_PIXELFORMAT_NV12
Definition: iftu.h:37
@ SCE_IFTU_PIXELFORMAT_RGB565
Definition: iftu.h:25
@ SCE_IFTU_PIXELFORMAT_BGRX8888
Definition: iftu.h:28
@ SCE_IFTU_PIXELFORMAT_RGBA5551
Definition: iftu.h:27
@ SCE_IFTU_PIXELFORMAT_YUV422
Definition: iftu.h:39
@ SCE_IFTU_PIXELFORMAT_BGR565
Definition: iftu.h:24
@ SCE_IFTU_PIXELFORMAT_RGBA1010102
Definition: iftu.h:31
@ SCE_IFTU_PIXELFORMAT_BGRP
Definition: iftu.h:32
@ SCE_IFTU_PIXELFORMAT_YUV420
Definition: iftu.h:38
@ SCE_IFTU_PIXELFORMAT_BGRA1010102
Definition: iftu.h:30
@ SCE_IFTU_ERROR_INVALID_PARAM
Definition: iftu.h:18
@ SCE_IFTU_ERROR_INVALID_PIXELFORMAT
Definition: iftu.h:19
@ SCE_IFTU_ERROR_INVALID_PLANE
Definition: iftu.h:17
@ SCE_IFTU_ERROR_PLANE_BUSY
Definition: iftu.h:20
Definition: iftu.h:53
Definition: iftu.h:42
Definition: iftu.h:67
Definition: iftu.h:79