Difference between revisions of "Camera Services"

From 3dbrew
Jump to navigation Jump to search
(y2r:u - Correct Send/Receive busy polling calls)
(y2r:u - Oops, Busy -> Done)
Line 72: Line 72:
 
|-
 
|-
 
| 0x00140000
 
| 0x00140000
| IsBusySendingY(bool * state)
+
| IsDoneSendingY(bool* state)
 
|-
 
|-
 
| 0x00150000
 
| 0x00150000
| IsBusySendingU(bool * state)
+
| IsDoneSendingU(bool* state)
 
|-
 
|-
 
| 0x00160000
 
| 0x00160000
| IsBusySendingV(bool * state)
+
| IsDoneSendingV(bool* state)
 
|-
 
|-
 
| 0x00170000
 
| 0x00170000
| IsBusySendingYUYV(bool * state)
+
| IsDoneSendingYUYV(bool* state)
 
|-
 
|-
 
| 0x00180102
 
| 0x00180102
Line 87: Line 87:
 
|-
 
|-
 
| 0x00190000
 
| 0x00190000
| IsBusyReceiving(bool * state)
+
| IsDoneReceiving(bool* state)
 
|-
 
|-
 
| 0x001A0040
 
| 0x001A0040

Revision as of 08:57, 21 June 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()
0x0009... SetCntBit16(Value)
0x000A... GetCntBit16()
0x000B... SetCntBit17(Value)
0x000C... GetCntBit17()
0x000D0040 SetTransferEndInterrupt(bool)
0x000E... GetTransferEndInterrupt()
0x000F0000 GetTransferEndEvent(Handle*)
0x00100102 SetSendingY
0x00110102 SetSendingU
0x00120102 SetSendingV
0x00130102 SetSendingYUYV
0x00140000 IsDoneSendingY(bool* state)
0x00150000 IsDoneSendingU(bool* state)
0x00160000 IsDoneSendingV(bool* state)
0x00170000 IsDoneSendingYUYV(bool* state)
0x00180102 SetReceiving(unsigned int pDst, unsigned int imageSize, short transferUnit, short transferStride, 0, Handle dstProcess).
0x00190000 IsDoneReceiving(bool* state)
0x001A0040 SetInputLineWidth(short)
0x001B... GetInputLineWidth()
0x001C0040 SetInputLines(short)
0x001D... GetInputLines()
0x001E.... SetCoefficient(0x10-byte CoefficientStruct)
0x001F.... GetCoefficient()
0x00200040 SetStandardCoefficient(StandardCoefficient)

This command is equivalent to SetCoefficient(GenerateStandardCoefficient(StandardCoefficient)).

0x0021.... GenerateStandardCoefficient(StandardCoefficient)
0x00220040 SetAlpha(short)
0x0023.... GetAlpha()
0x0024.... SetUnknownParams(0x24 bytes UnknownParamBlock)
0x0025.... GetUnknownParams
0x00260000 StartConversion
0x00270000 StopConversion
0x00280000 IsBusyConversion(bool * state)
0x002901C0 SetConversionParams
0x002A0000 PingProcess(unsigned char * connectedNumber)
0x002B0000 DriverInitialize
0x002C0000 DriverFinalize
0x002D.... GetConversionParams


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