10#define MVD_STATUS_OK 0x17000
11#define MVD_STATUS_PARAMSET 0x17001
12#define MVD_STATUS_BUSY 0x17002
13#define MVD_STATUS_FRAMEREADY 0x17003
14#define MVD_STATUS_INCOMPLETEPROCESSING 0x17004
15#define MVD_STATUS_NALUPROCFLAG 0x17007
18#define MVD_CHECKNALUPROC_SUCCESS(x) (x==MVD_STATUS_OK || x==MVD_STATUS_PARAMSET || x==MVD_STATUS_FRAMEREADY || x==MVD_STATUS_INCOMPLETEPROCESSING || x==MVD_STATUS_NALUPROCFLAG)
21#define MVD_DEFAULT_WORKBUF_SIZE 0x9006C8
23#define MVD_CALC_WITH_LEVEL_FLAG_NONE 0x00
24#define MVD_CALC_WITH_LEVEL_FLAG_ENABLE_CALC 0x01
25#define MVD_CALC_WITH_LEVEL_FLAG_ENABLE_EXTRA_OP 0x02
26#define MVD_CALC_WITH_LEVEL_FLAG_UNK 0x04
28#define MVD_H264_LEVEL_1_0 0x00
29#define MVD_H264_LEVEL_1_0B 0x01
30#define MVD_H264_LEVEL_1_1 0x02
31#define MVD_H264_LEVEL_1_2 0x03
32#define MVD_H264_LEVEL_1_3 0x04
33#define MVD_H264_LEVEL_2_0 0x05
34#define MVD_H264_LEVEL_2_1 0x06
35#define MVD_H264_LEVEL_2_2 0x07
36#define MVD_H264_LEVEL_3_0 0x08
37#define MVD_H264_LEVEL_3_1 0x09
38#define MVD_H264_LEVEL_3_2 0x0A
39#define MVD_H264_LEVEL_4_0 0x0B
40#define MVD_H264_LEVEL_4_1 0x0C
41#define MVD_H264_LEVEL_4_2 0x0D
42#define MVD_H264_LEVEL_5_0 0x0E
43#define MVD_H264_LEVEL_5_1 0x0F
44#define MVD_H264_LEVEL_5_2 0x10
81 u32 input_crop_height;
116 s8 cmd5_inval0, cmd5_inval1, cmd5_inval2;
void mvdstdExit(void)
Shuts down MVDSTD.
Result MVDSTD_SetConfig(MVDSTD_Config *config)
Sets the current configuration of MVDSTD.
Result mvdstdSetupOutputBuffers(MVDSTD_OutputBuffersEntryList *entrylist, u32 bufsize)
New3DS Internet Browser doesn't use this.
MVDSTD_Mode
Processing mode.
Definition mvd.h:47
@ MVDMODE_VIDEOPROCESSING
Processing video.
Definition mvd.h:49
@ MVDMODE_COLORFORMATCONV
Converting color formats.
Definition mvd.h:48
Result mvdstdCalculateBufferSize(const MVDSTD_CalculateWorkBufSizeConfig *config, u32 *size_out)
Calculate working buffer size for H.264 decoding.
Result mvdstdRenderVideoFrame(MVDSTD_Config *config, bool wait)
Renders the video frame.
void mvdstdGenerateDefaultConfig(MVDSTD_Config *config, u32 input_width, u32 input_height, u32 output_width, u32 output_height, u32 *vaddr_colorconv_indata, u32 *vaddr_outdata0, u32 *vaddr_outdata1)
Generates a default MVDSTD configuration.
Result mvdstdInit(MVDSTD_Mode mode, MVDSTD_InputFormat input_type, MVDSTD_OutputFormat output_type, u32 size, MVDSTD_InitStruct *initstruct)
Initializes MVDSTD.
MVDSTD_InputFormat
Input format.
Definition mvd.h:53
@ MVD_INPUT_H264
H264.
Definition mvd.h:55
@ MVD_INPUT_YUYV422
YUYV422.
Definition mvd.h:54
MVDSTD_OutputFormat
Output format.
Definition mvd.h:59
@ MVD_OUTPUT_RGB565
RGB565.
Definition mvd.h:62
@ MVD_OUTPUT_BGR565
BGR565.
Definition mvd.h:61
@ MVD_OUTPUT_YUYV422
YUYV422.
Definition mvd.h:60
Result mvdstdOverrideOutputBuffers(void *cur_outdata0, void *cur_outdata1, void *new_outdata0, void *new_outdata1)
New3DS Internet Browser doesn't use this.
Result mvdstdConvertImage(MVDSTD_Config *config)
Run color-format-conversion.
Result mvdstdProcessVideoFrame(void *inbuf_vaddr, size_t size, u32 flag, MVDSTD_ProcessNALUnitOut *out)
Processes a video frame(specifically a NAL-unit).
H.264 buffer calculation configuration.
Definition mvd.h:138
Processing configuration.
Definition mvd.h:66
u32 output_y_pos
Same as above except for the Y pos.
Definition mvd.h:92
u32 unk_x04
Unknown.
Definition mvd.h:68
u32 physaddr_colorconv_unk2
Physical address used with color conversion.
Definition mvd.h:75
u32 output_height_override
Same as output_width_override except for the output height.
Definition mvd.h:94
MVDSTD_InputFormat input_type
Input type.
Definition mvd.h:67
u32 flag_x104
This enables using the following 4 words when non-zero.
Definition mvd.h:90
u32 outwidth
Output width.
Definition mvd.h:85
MVDSTD_OutputFormat output_type
Output type.
Definition mvd.h:84
u32 physaddr_outdata0
Physical address of output data.
Definition mvd.h:87
u32 inheight
Input height.
Definition mvd.h:71
u32 unk_x08
Unknown. Referred to as "H264 range" in SKATER.
Definition mvd.h:69
u32 outheight
Output height.
Definition mvd.h:86
u32 enable_cropping
Enables cropping with the input image when non-zero via the following 4 words.
Definition mvd.h:78
u32 physaddr_colorconv_unk0
Physical address used with color conversion.
Definition mvd.h:73
u32 output_x_pos
Output X position in the output buffer.
Definition mvd.h:91
u32 unk_x54
Unknown.
Definition mvd.h:83
u32 physaddr_colorconv_indata
Physical address of color conversion input data.
Definition mvd.h:72
u32 physaddr_colorconv_unk1
Physical address used with color conversion.
Definition mvd.h:74
u32 inwidth
Input width.
Definition mvd.h:70
u32 output_width_override
Used for aligning the output width when larger than the output width. Overrides the output width when...
Definition mvd.h:93
u32 physaddr_colorconv_unk3
Physical address used with color conversion.
Definition mvd.h:76
u32 physaddr_outdata1
Additional physical address for output data, only used when the output format type is value 0x0002000...
Definition mvd.h:88
This can be used to override the default input values for MVDSTD commands during initialization with ...
Definition mvd.h:115
uint8_t u8
would be nice if newlib had this already
Definition types.h:21
int8_t s8
8-bit signed integer
Definition types.h:26
s32 Result
Function result.
Definition types.h:42
uint32_t u32
32-bit unsigned integer
Definition types.h:23