Difference between revisions of "Camera Services"

From 3dbrew
Jump to navigation Jump to search
Line 16: Line 16:
 
| 0x00010040
 
| 0x00010040
 
| SetInputFormat(InputFormat)
 
| SetInputFormat(InputFormat)
 +
|-
 +
| 0x0002...
 +
| GetInputFormat()
 
|-
 
|-
 
| 0x00030040
 
| 0x00030040
 
| SetOutputFormat(OutputFormat)
 
| SetOutputFormat(OutputFormat)
 +
|-
 +
| 0x0004...
 +
| GetOutputFormat()
 
|-
 
|-
 
| 0x00050040
 
| 0x00050040
 
| SetRotation(Rotation)
 
| SetRotation(Rotation)
 +
|-
 +
| 0x0006...
 +
| GetRotation()
 
|-
 
|-
 
| 0x00070040
 
| 0x00070040
 
| SetBlockAlignment(BlockAlignment)
 
| SetBlockAlignment(BlockAlignment)
 +
|-
 +
| 0x0008...
 +
| GetBlockAlignment()
 
|-
 
|-
 
| 0x000D0040
 
| 0x000D0040

Revision as of 08:20, 31 May 2015

cam:c (PORT_REG)

cam:s (PORT_CAL)

cam:q (PORT_QTM)

This was added with New3DS.

cam:u (PORT_USER)

y2r:u

Command Header Description
0x00010040 SetInputFormat(InputFormat)
0x0002... GetInputFormat()
0x00030040 SetOutputFormat(OutputFormat)
0x0004... GetOutputFormat()
0x00050040 SetRotation(Rotation)
0x0006... GetRotation()
0x00070040 SetBlockAlignment(BlockAlignment)
0x0008... GetBlockAlignment()
0x000D0040 SetTransferEndInterrupt(bool)
0x000F0000 GetTransferEndEvent(Handle*)
0x00100102 SetSendingY(unsigned int pSrc, unsigned int imageSize, short transferUnit, short transferStride, 0, Handle srcProcess). This DMAs from 0x1EE02000 into your buf.
0x00110102 SetSendingU(unsigned int pSrc, unsigned int imageSize, short transferUnit, short transferStride, 0, Handle srcProcess). This DMAs from 0x1EE02080 into your buf.
0x00120102 SetSendingV(unsigned int pSrc, unsigned int imageSize, short transferUnit, short transferStride, 0, Handle srcProcess). This DMAs from 0x1EE02100 into your buf.
0x00130102 This DMAs from 0x1EE02180 into your buf.
0x00180102 SetReceiving(unsigned int pDst, unsigned int imageSize, short transferUnit, short transferStride, 0, Handle dstProcess). This DMAs from 0x1EE02200 into your buf.
0x001A0040 SetInputLineWidth(short)
0x001C0040 SetInputLines(short)
0x00200040 SetStandardCoefficient(StandardCoefficient)
0x00220040 SetAlpha(short)
0x00260000 StartConversion
0x00270000 StopConversion
0x00280000 IsBusyConversion(bool * state)
0x002901C0 SetConversionParams(ConversionParams conversion_params). The struct is memcpy'd to &cmd_buff[1].
0x002A0000 PingProcess(unsigned char * connectedNumber)
0x002B0000 DriverInitialize
0x002C0000 DriverFinalize


InputFormat

Enum Value
INPUT_YUV422_INDIV_8 0x0
INPUT_YUV420_INDIV_8 0x1
INPUT_YUV422_INDIV_16 0x2
INPUT_YUV420_INDIV_16 0x3
INPUT_YUV422_BATCH 0x4


OutputFormat

Enum Value
OUTPUT_RGB_32 0x0
OUTPUT_RGB_24 0x1
OUTPUT_RGB_16_555 0x2
OUTPUT_RGB_16_565 0x3


Rotation

Enum Value
ROTATION_NONE 0x0
ROTATION_CLOCKWISE_90 0x1
ROTATION_CLOCKWISE_180 0x2
ROTATION_CLOCKWISE_270 0x3


BlockAlignment

Enum Value Description
BLOCK_LINE 0x0 Output buffer's pixels are arranged linearly. Used when outputting to the framebuffer.
BLOCK_8_BY_8 0x1 Output buffer's pixels are morton swizzled. Used when outputting to a GPU texture.


StandardCoefficient

Enum Value
COEFFICIENT_ITU_R_BT_601 0x0
COEFFICIENT_ITU_R_BT_709 0x1
COEFFICIENT_ITU_R_BT_601_SCALING 0x2
COEFFICIENT_ITU_R_BT_709_SCALING 0x3
COEFFICIENT_MAX 0x4


ConversionParams

Offset Name Type
0x0 input_format InputFormat (u8)
0x1 output_format OutputFormat (u8)
0x2 rotation Rotation (u8)
0x3 block_alignment BlockAlignment(u8)
0x4 input_line_width u16
0x6 input_lines u16
0x8 standard_coefficient StandardCoefficient (u8)
0x9 reserved u8
0xA alpha u16