MVD Services

From 3dbrew
Jump to navigation Jump to search

This is for using the MVD hardware video decoder(unknown whether MVD can do more than decoding). The New_3DS Internet Browser uses mvd:STD for video decoding.

See here for the supported hardware decoder video codecs. Going by strings in the browser, the hw decoder seems to also support MJPEG.

A maximum of 4 sessions can be opened at a time, for all of these services combined.

MVD Service "mvd:STD"

Command Header Available since system version Description
0x00010082 Initialize
0x00020000 Shutdown
0x00030300 CalculateVideoOutBufSize
0x00050100 (u8 unk0, u8 unk1, u8 unk2, u8 unk3)
0x00070000
0x00080142 DecodeFrame
0x00090042 (u8 unkval, val0, kprocess handle) This writes some state beginning at cmdreply[2]. unkval is normally 0, when preparing to shutdown MVD unkval is 1.
0x000A0000
0x00180000
0x00190000
0x001A0000 Used when doing MJPEG decoding?
0x001B0040 (u8 unknown)
0x001C0000
0x001D0042 GetConfig
0x001E0044 SetConfig

This one uses the I/O mapped @ 0x10207000.

This service is used by the New_3DS Internet Browser.

MVD Service "l2b:u"

This one uses the I/O mapped @ 0x10130000.

MVD Service "l2b2:u"

This uses the same command-handler as "l2b:u".

MVD Service "y2r2:u"

This one uses the I/O mapped @ 0x10102000.