MVD Services: Difference between revisions
| (64 intermediate revisions by 3 users not shown) | |||
| Line 11: | Line 11: | ||
| !  Available since system version   | !  Available since system version   | ||
| !  Description | !  Description | ||
| !  Used by [[Internet_Browser|SKATER]] | |||
| |- | |- | ||
| | 0x00010082 | | 0x00010082 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | [[MVDSTD:Initialize|Initialize]] | | [[MVDSTD:Initialize|Initialize]] | ||
| | Yes | |||
| |- | |- | ||
| | 0x00020000 | | 0x00020000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | [[MVDSTD:Shutdown|Shutdown]] | | [[MVDSTD:Shutdown|Shutdown]] | ||
| | Yes | |||
| |- | |- | ||
| | 0x00030300 | | 0x00030300 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | [[MVDSTD:CalculateWorkBufSize|CalculateWorkBufSize]] | | [[MVDSTD:CalculateWorkBufSize|CalculateWorkBufSize]] | ||
| | Yes | |||
| |- | |- | ||
| | 0x000400C0 | | 0x000400C0 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| |  | | [[MVDSTD:CalculateImageSize|CalculateImageSize]] | ||
| | No | |||
| |- | |- | ||
| | 0x00050100 | | 0x00050100 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | (s8 unk0, s8 unk1, s8 unk2, u32 unk3) SKATER uses hard-coded value 0 for all of these params. | | (s8 unk0, s8 unk1, s8 unk2, u32 unk3) SKATER uses hard-coded value 0 for all of these params. Using different input data for this doesn't seem to affect video-processing output. | ||
| | Yes | |||
| |- | |- | ||
| | 0x00060000 | | 0x00060000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown.  | | Unknown. | ||
| | No | |||
| |- | |- | ||
| | 0x00070000 | | 0x00070000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Used during shutdown with video-processing. | | Used during shutdown with video-processing. | ||
| | Yes | |||
| |- | |- | ||
| | 0x00080142 | | 0x00080142 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | [[MVDSTD:ProcessNALUnit|ProcessNALUnit]] | | [[MVDSTD:ProcessNALUnit|ProcessNALUnit]] | ||
| | Yes | |||
| |- | |- | ||
| | 0x00090042 | | 0x00090042 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | [[MVDSTD:ControlFrameRendering|ControlFrameRendering]] | | [[MVDSTD:ControlFrameRendering|ControlFrameRendering]] | ||
| | Yes | |||
| |- | |- | ||
| | 0x000A0000 | | 0x000A0000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | [[MVDSTD:GetStatus|GetStatus]] | | [[MVDSTD:GetStatus|GetStatus]] | ||
| | Yes | |||
| |- | |- | ||
| | 0x000B0000 | | 0x000B0000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | GetStatusOther(unknown what this is used for). Same output size as [[MVDSTD:GetStatus|GetStatus]]. | | GetStatusOther(unknown what this is used for). Same output size as [[MVDSTD:GetStatus|GetStatus]]. | ||
| | No | |||
| |- | |- | ||
| | 0x000C0100 | | 0x000C0100 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | (u8 unk0, s8 unk1, u32 unk2, u32 unk3) Unknown.  | | (u8 unk0, s8 unk1, u32 unk2, u32 unk3) Unknown. | ||
| | No | |||
| |- | |- | ||
| | 0x000D0000 | | 0x000D0000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown.  | | Unknown. | ||
| | No | |||
| |- | |- | ||
| | 0x000E0202 | | 0x000E0202 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown | | Unknown. The code for this appears to be similar to [[MVDSTD:ProcessNALUnit|ProcessNALUnit]], this DMAs data from the input buffer as well. | ||
| | No | |||
| |- | |- | ||
| | 0x000F0042 | | 0x000F0042 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | (s8 unk, val0, handle) Unknown | | (s8 unk, val0, handle) Unknown. Presumably the command 0x000E0202 version of [[MVDSTD:ControlFrameRendering]]. | ||
| | No | |||
| |- | |- | ||
| |  | | 0x00100000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown.  | | Unknown. This writes 0x28-bytes of output starting at cmdreply[2]. | ||
| | No | |||
| |- | |- | ||
| | 0x00110000 | | 0x00110000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown.  | | Unknown. | ||
| | No | |||
| |- | |- | ||
| | 0x001200C0 | | 0x001200C0 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | (s8 unk0, u32 unk1, u32 unk2) Unknown.  | | (s8 unk0, u32 unk1, u32 unk2) Unknown. | ||
| | No | |||
| |- | |- | ||
| | 0x00130000 | | 0x00130000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown.  | | Unknown. | ||
| | No | |||
| |- | |- | ||
| | 0x001400C2 | | 0x001400C2 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown | | Unknown. The code for this appears to be similar to [[MVDSTD:ProcessNALUnit|ProcessNALUnit]], this DMAs data from the input buffer as well. | ||
| | No | |||
| |- | |- | ||
| | 0x00150042 | | 0x00150042 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | (s8 unk, val0, handle) Unknown | | (s8 unk, val0, handle) Unknown. Presumably the command 0x001400C2 version of [[MVDSTD:ControlFrameRendering]]. | ||
| | No | |||
| |- | |- | ||
| | 0x00160000 | | 0x00160000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown.  | | Unknown. | ||
| | No | |||
| |- | |- | ||
| | 0x00170000 | | 0x00170000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown.  | | Unknown. | ||
| | No | |||
| |- | |- | ||
| | 0x00180000 | | 0x00180000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown. Used during initialization regardless of the operation mode(color-conversion/video-processing). | | Unknown. Used during initialization regardless of the operation mode(color-conversion/video-processing). | ||
| | Yes | |||
| |- | |- | ||
| | 0x00190000 | | 0x00190000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Unknown. Used during shutdown regardless of the operation mode(color-conversion/video-processing). | | Unknown. Used during shutdown regardless of the operation mode(color-conversion/video-processing). | ||
| | Yes | |||
| |- | |- | ||
| | 0x001A0000 | | 0x001A0000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Used when doing color-format conversion. This triggers writing to the output buffer specified via config. | | Used when doing color-format conversion. This triggers writing to the output buffer specified via config. | ||
| | Yes | |||
| |- | |- | ||
| | 0x001B0040 | | 0x001B0040 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | (u8  | | (u8 inval) Used during video-processing initialization. SKATER uses hard-coded value 1 for this. MVD-sysmodule checks that the input value is not 0 or higher than 11. The input value must be one of the following: 1, 6, 9, or 10. Using any of these values instead of 1 results in no data being written to the output buffer with normal video processing, without any errors being thrown. | ||
| | Yes | |||
| |- | |- | ||
| | 0x001C0000 | | 0x001C0000 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | Used during shutdown with video-processing. | | Used during shutdown with video-processing. | ||
| | Yes | |||
| |- | |- | ||
| | 0x001D0042 | | 0x001D0042 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | [[MVDSTD:GetConfig|GetConfig]] | | [[MVDSTD:GetConfig|GetConfig]] | ||
| | Yes | |||
| |- | |- | ||
| | 0x001E0044 | | 0x001E0044 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | [[MVDSTD:SetConfig|SetConfig]] | | [[MVDSTD:SetConfig|SetConfig]] | ||
| | Yes | |||
| |- | |- | ||
| | 0x001F0902 | | 0x001F0902 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| |  | | [[MVDSTD:SetupOutputBuffers|SetupOutputBuffers]] | ||
| | No | |||
| |- | |- | ||
| | 0x00200002 | | 0x00200002 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| | (val0, handle) Unknown | | (val0, handle) Unknown. This loads data from the table entry which has a field matching a certain value. This is the global table used by [[MVDSTD:SetupOutputBuffers|SetupOutputBuffers]]. | ||
| | No | |||
| |- | |- | ||
| | 0x00210100 | | 0x00210100 | ||
| |   | | [[8.1.0-0_New3DS]] | ||
| |  | | [[MVDSTD:OverrideOutputBuffers|OverrideOutputBuffers]] | ||
| | No | |||
| |} | |} | ||
| Line 151: | Line 185: | ||
| Linear-memory vaddrs passed to this service should be in the 0x30* region, MVD-sysmodule doesn't support the 0x14* region. | Linear-memory vaddrs passed to this service should be in the 0x30* region, MVD-sysmodule doesn't support the 0x14* region. | ||
| By default MVD does(?) various post-processing with the output image, this is controlled by the [[MVDSTD:GetConfig|configuration]]. This post-processing isn't done at all in certain cases | By default MVD does(?) various post-processing with the output image, this is controlled by the [[MVDSTD:GetConfig|configuration]]. This post-processing isn't done at all in certain cases. | ||
| Initialization procedures: | Initialization procedures: | ||
| Line 174: | Line 208: | ||
| | 0x4 | | 0x4 | ||
| | 0x4 | | 0x4 | ||
| | The default for this is 0x0. Must be <=5. When non-zero, the type value at offset 0x0 must be one of the following: 0x00020001, 0x00010001, 0x00010005, 0x00010006, or 0x00010007. | | The default for this is 0x0. Must be <=5. When non-zero, the type value at offset 0x0 must be one of the following: 0x00020001, 0x00010001, 0x00010005, 0x00010006, or 0x00010007. Doesn't seem to have any visible affect on the output for video processing. | ||
| |- | |- | ||
| | 0x8 | | 0x8 | ||
| | 0x4 | | 0x4 | ||
| | The default for this is 0x0. This must be <=1. | | The default for this is 0x0. This must be <=1. Referred to as "H264 range" in SKATER. When 0x1 the output image is brighter than normal. | ||
| |- | |- | ||
| | 0x0C | | 0x0C | ||
| Line 208: | Line 242: | ||
| | 0x4 | | 0x4 | ||
| | Physical data address, only used for color-conversion when the type value has bitmask 0x20000 set. This isn't used when the value at offset 0x4 is 0x0 or 0x4. | | Physical data address, only used for color-conversion when the type value has bitmask 0x20000 set. This isn't used when the value at offset 0x4 is 0x0 or 0x4. | ||
| |- | |||
| | 0x28 | |||
| | 0x4 | |||
| | Unknown. Doesn't seem to have any visible affect on the output. | |||
| |- | |||
| | 0x2C | |||
| | 0x4 | |||
| | When non-zero this enables some sort of color adjustment for the output? | |||
| |- | |||
| | 0x30 | |||
| | 0x4 | |||
| | Same affect as offset 0x2C? This must not be enabled at the same time as that field. | |||
| |- | |||
| | 0x34 | |||
| | 0x4 | |||
| | Unknown, must be <8 for video-processing? Doesn't seem to have any visible affect on the output. | |||
| |- | |||
| | 0x38 | |||
| | 0x4 | |||
| | Unknown. Doesn't seem to have any visible affect on the output. | |||
| |- | |||
| | 0x3C | |||
| | 0x4 | |||
| | Unknown, must be <8 for video-processing? Doesn't seem to have any visible affect on the output. | |||
| |- | |- | ||
| | 0x40 | | 0x40 | ||
| | 0x4 | | 0x4 | ||
| | When non-zero this enables usage of the 4 words starting at offset 0x44.  | | When non-zero this enables usage of the 4 words starting at offset 0x44. SKATER sets this to 0x0 for color-conversion, and 0x1 for video processing(this flag isn't mandatory for the latter). | ||
| |- | |- | ||
| | 0x44 | | 0x44 | ||
| | 0x4 | | 0x4 | ||
| | See offset 0x40. The default for this is 0x0. Must be <=widthval. Where widthval = <width value from the field at offset 0xC>. The low 4-bits of this value must be clear. | | See offset 0x40. The default for this is 0x0. u32 input_crop_x_pos. Must be <=widthval. Where widthval = <width value from the field at offset 0xC>. The low 4-bits of this value must be clear. | ||
| |- | |- | ||
| | 0x48 | | 0x48 | ||
| | 0x4 | | 0x4 | ||
| | See offset 0x40. The default for this is 0x0. Must be <=heightval. Where heightval = <height value from the field at offset 0x10>. The low 4-bits of this value must be clear. | | See offset 0x40. The default for this is 0x0. u32 input_crop_y_pos. Must be <=heightval. Where heightval = <height value from the field at offset 0x10>. The low 4-bits of this value must be clear. | ||
| |- | |- | ||
| | 0x4C | | 0x4C | ||
| | 0x4 | | 0x4 | ||
| | See offset 0x40.  | | See offset 0x40. u32 input_crop_height. Must be >=16 and <=heightval. Where heightval = <height value from the field at offset 0x10>. The low 3-bits of this value must be clear. | ||
| |- | |- | ||
| | 0x50 | | 0x50 | ||
| | 0x4 | | 0x4 | ||
| | See offset 0x40.  | | See offset 0x40. u32 input_crop_width. Must be >=width_min and <=widthval. Where widthval = <width value from the field at offset 0xC>. The low 3-bits of this value must be clear. | ||
| |- | |- | ||
| | 0x54 | | 0x54 | ||
| Line 235: | Line 293: | ||
| | 0x58 | | 0x58 | ||
| | 0x4 | | 0x4 | ||
| | Output format type, see below. SKATER writes value 0x40002 here | | Output format type, see below. SKATER writes value 0x40002 here. | ||
| |- | |- | ||
| | 0x5C | | 0x5C | ||
| Line 251: | Line 309: | ||
| | 0x68 | | 0x68 | ||
| | 0x4 | | 0x4 | ||
| |  | | Additional output data physical address. This is only used when the output format type is value 0x00020001. | ||
| |- | |||
| | 0x6C | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. Must be <3 for video-processing? | |||
| |- | |||
| | 0x70 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x74 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x78 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x7C | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x80 | |||
| | 0x4 | |||
| | Unknown. Must be <=1 for video processing? Doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x84 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x88 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x8C | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x90 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x94 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x98 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x9C | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0xA0 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0xA4 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0xA8 | |||
| | 0x4 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0xAC | |||
| | 0x4 | |||
| | Unknown, must be zero for video-processing. | |||
| |- | |||
| | 0xB0 | |||
| | 0x28 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0xD8 | |||
| | 0x4 | |||
| | Unknown, must be zero for video-processing. | |||
| |- | |||
| | 0xDC | |||
| | 0x28 | |||
| | Unknown, doesn't seem to have a visible affect on the output. | |||
| |- | |||
| | 0x104 | |||
| | 0x4 | |||
| | This flag enables using the following 4 words when non-zero. | |||
| |- | |||
| | 0x108 | |||
| | 0x4 | |||
| | u32 output_x_pos. Output X position in the output buffer. | |||
| |- | |||
| | 0x10C | |||
| | 0x4 | |||
| | u32 output_y_pos. Same as above except for the Y pos. | |||
| |- | |||
| | 0x110 | |||
| | 0x4 | |||
| | u32 output_width_override. The low 2-bits must be clear. When the output width is less than this, this value is used to align the output image width to the specified value via value0-pixels. When this value is less than the output width, this value is used for the output width instead. | |||
| |- | |||
| | 0x114 | |||
| | 0x4 | |||
| | Same as the field at offset 0x110 except for the output height. | |||
| |- | |||
| | 0x118 | |||
| | 0x4 | |||
| | Unknown, when non-zero it seems the output buffer isn't written any more? | |||
| |} | |} | ||
| Line 400: | Line 562: | ||
| !  Type value | !  Type value | ||
| !  Mode | !  Mode | ||
| !   | !  Video processing | ||
| !  Color conversion | |||
| |- | |- | ||
| | 0x00010001 | | 0x00010001 | ||
| | Color conversion | | Color conversion | ||
| |  | | N/A | ||
| | YUYV422 | |||
| |- | |- | ||
| | 0x00010002 | | 0x00010002 | ||
| | Video processing | | Video processing | ||
| |  | | H.264, but no output will be written to output buffer with error code 0xD961710A | ||
| | N/A | |||
| |- | |- | ||
| | 0x00010004 | | 0x00010004 | ||
| | Video processing | | Video processing | ||
| |  | | H.264, but no output will be written to output buffer with error code 0xD961710A | ||
| | N/A | |||
| |- | |- | ||
| | 0x00010005 | | 0x00010005 | ||
| | Color conversion | | Color conversion, Video processing | ||
| |  | | H.264, but no output will be written to output buffer with error code 0xD961710A | ||
| | YVYU422 | |||
| |- | |- | ||
| | 0x00010006 | | 0x00010006 | ||
| | Color conversion | | Color conversion, Video processing | ||
| |  | | H.264, but no output will be written to output buffer with error code 0xD961710A | ||
| | UYVY422 | |||
| |- | |- | ||
| | 0x00010007 | | 0x00010007 | ||
| | Color conversion | | Color conversion, Video processing | ||
| | ? | | H.264, but no output will be written to output buffer with error code 0xD961710A | ||
| | VYUY422? | |||
| |- | |- | ||
| | 0x00020000 | | 0x00020000 | ||
| |  | | Video processing | ||
| |  | | H.264, but no output will be written to output buffer with error code 0xD961710A | ||
| | N/A | |||
| |- | |- | ||
| | 0x00020001 | | 0x00020001 | ||
| | Video processing | | Video processing | ||
| | H.264 | | H.264 | ||
| | N/A | |||
| |- | |- | ||
| | 0x00020002 | | 0x00020002 | ||
| | ? | | Video processing | ||
| |  | | H.264, output will be corrupt a little?? | ||
| | N/A | |||
| |- | |- | ||
| | 0x00080000 | | 0x00080000 | ||
| | Video processing | | Video processing | ||
| |  | | H.264, output will be gray-scale. | ||
| | N/A | |||
| |- | |- | ||
| | 0x00080001 | | 0x00080001 | ||
| | Video processing | | Video processing | ||
| |  | | H.264, but no output will be written to output buffer with error code 0xD961710A | ||
| | N/A | |||
| |- | |- | ||
| | 0x00180001 | | 0x00180001 | ||
| | Video processing | | Video processing | ||
| |  | | H.264, but no output will be written to output buffer with error code 0xD961710A | ||
| | N/A | |||
| |} | |} | ||
| Line 456: | Line 631: | ||
| !  Type value | !  Type value | ||
| !  Description | !  Description | ||
| !  Note | |||
| |- | |- | ||
| | 0x00010001 | | 0x00010001 | ||
| |  | | YUYV422 | ||
| | N/A | |||
| |- | |- | ||
| | 0x00010005 | | 0x00010005 | ||
| |  | | YVYU422 | ||
| | A certain MVD state field must not be set to 0x8170 in order to use this. | |||
| |- | |- | ||
| | 0x00010006 | | 0x00010006 | ||
| |  | | UYVY422 | ||
| | see 0x00010005 for the usage requirement. | |||
| |- | |- | ||
| | 0x00010007 | | 0x00010007 | ||
| |  | | VYUY422 | ||
| | see 0x00010005 for the usage requirement. | |||
| |- | |- | ||
| | 0x00010008 | | 0x00010008 | ||
| | A certain MVD-module state field must not be set to 0x8170 in order to use this. Whether this can actually be used is determined by another MVD-module state field. | | YUYV422 with some align? | ||
| | A certain MVD-module state field must not be set to 0x8170 in order to use this. Whether this can actually be used is determined by another MVD-module state field. 16bit format. | |||
| |- | |- | ||
| | 0x00010009 | | 0x00010009 | ||
| |  | | YVYU422 with some align? | ||
| | see 0x00010008 for the usage requirements. 16bit format. | |||
| |- | |- | ||
| | 0x0001000A | | 0x0001000A | ||
| |  | | UYVY422 with some align? | ||
| | see 0x00010008 for the usage requirements. 16bit format. | |||
| |- | |- | ||
| | 0x0001000B | | 0x0001000B | ||
| |  | | VYUY422 with some align? | ||
| | see 0x00010008 for the usage requirements. 16bit format. | |||
| |- | |- | ||
| | 0x00020001 | | 0x00020001 | ||
| | Some sort of YUV format? | | Some sort of YUV format?   | ||
| | 12bit format. The initial output is written to the normal output buffer, then the rest is written to the additional output buffer dedicated to this out-type. | |||
| |- | |- | ||
| | 0x00040000 | | 0x00040000 | ||
| | Unknown | | Unknown | ||
| | Doesn't write anything to the out-buffer when doing color-conversion. | |||
| |- | |- | ||
| | 0x00040001 | | 0x00040001 | ||
| |  | | ARGB1555? | ||
| | N/A | |||
| |- | |- | ||
| | 0x00040002 | | 0x00040002 | ||
| |  | | RGB565 | ||
| | N/A | |||
| |- | |- | ||
| | 0x00040003 | | 0x00040003 | ||
| |  | | ABGR1555? | ||
| | N/A | |||
| |- | |- | ||
| | 0x00040004 | | 0x00040004 | ||
| |  | | BGR565 | ||
| | N/A | |||
| |- | |- | ||
| | 0x00041000 | | 0x00041000 | ||
| | Unknown | | Unknown | ||
| | Doesn't write anything to the out-buffer when doing color-conversion. | |||
| |- | |- | ||
| | 0x00041001 | | 0x00041001 | ||
| |  | | ARGB32 | ||
| | N/A | |||
| |- | |- | ||
| | 0x00041002 | | 0x00041002 | ||
| |  | | ABGR32 | ||
| | N/A | |||
| |} | |} | ||
| ==MVD Service "l2b:u"== | ==MVD Service "l2b:u"== | ||
| This one uses the I/O mapped @ 0x10130000. | This one uses the I/O mapped @ 0x10130000. | ||
| {| class="wikitable" border="1" | |||
| |- | |||
| !  Command Header  | |||
| !  Description | |||
| |- | |||
| | 0x00010040 | |||
| | SetInputFormat? | |||
| |- | |||
| | 0x00020080 | |||
| | GetInputFormat? | |||
| |- | |||
| | 0x00030040 | |||
| | SetOutputFormat | |||
| |- | |||
| | 0x00040080 | |||
| | GetOutputFormat | |||
| |- | |||
| | 0x00050040 | |||
| | SetTransferEndInterrupt | |||
| |- | |||
| | 0x00060080 | |||
| | GetTransferEndInterrupt | |||
| |- | |||
| | 0x00070080 | |||
| | GetL2BEndEvent | |||
| |- | |||
| | 0x00080102 | |||
| | ? | |||
| |- | |||
| | 0x00090080 | |||
| | Waits on a DMA Handle | |||
| |- | |||
| | 0x000A0102 | |||
| | MaybeSetRecieving | |||
| |- | |||
| | 0x000B0080 | |||
| | isDoneRecieving | |||
| |- | |||
| | 0x000C0040 | |||
| | SetInputLineWidth | |||
| |- | |||
| | 0x000D0080 | |||
| | GetInputLineWidth | |||
| |- | |||
| | 0x000E0040 | |||
| | SetInputLines | |||
| |- | |||
| | 0x000F0080 | |||
| | GetInputLines | |||
| |- | |||
| | 0x00100040 | |||
| | MaybeSetAlpha | |||
| |- | |||
| | 0x00110080 | |||
| | MaybeGetAlpha | |||
| |- | |||
| | 0x00120040 | |||
| | StartConversion | |||
| |- | |||
| | 0x00130040 | |||
| | StopConversion | |||
| |- | |||
| | 0x00140080 | |||
| | isBusyConversion | |||
| |- | |||
| | 0x00150040 | |||
| | SetPackageParameter | |||
| |- | |||
| | 0x00160080 | |||
| | GetPackageParameter | |||
| |- | |||
| | 0x00170080 | |||
| | PingProcess | |||
| |} | |||
| ==MVD Service "l2b2:u"== | ==MVD Service "l2b2:u"== | ||
| Line 516: | Line 783: | ||
| ==MVD Service "y2r2:u"== | ==MVD Service "y2r2:u"== | ||
| This  | This is a exact copy of y2r camera service and hence named y2r2. | ||
| ==MVD Result-codes== | ==MVD Result-codes== | ||
| Line 528: | Line 795: | ||
| |   | |   | ||
| | Invalid [[MVDSTD:GetConfig|configuration]], mainly when setting the config. | | Invalid [[MVDSTD:GetConfig|configuration]], mainly when setting the config. | ||
| |- | |||
| | 0xD96170CA | |||
| | -2(~1) | |||
| |  | |||
| |- | |||
| | 0xE16170C9 | |||
| | -1(~0) | |||
| |  | |||
| |- | |||
| | 0xF96171C8 | |||
| | -0xFB(~0xFA) | |||
| |  | |||
| |- | |- | ||
| | 0x17000 | | 0x17000 | ||
| |   | | 0x0 | ||
| | OK | | OK | ||
| |- | |||
| | 0x17001 | |||
| | 0x1 | |||
| | Returned after processing NAL-unit parameter-sets. | |||
| |- | |- | ||
| | 0x17002 | | 0x17002 | ||
| | 0x2 | |||
| | Busy. When returned by command 0x00090042 during video processing, SKATER uses the {[[MVDSTD:GetConfig]], [[MVDSTD:SetConfig]], and 0x00090042} commands again(same config as before). The SKATER code for this includes this debug string: "H264 output %lld us corrected to %lld us\n". | |||
| |- | |||
| | 0x17003 | |||
| | 0x3 | |||
| |  | |||
| |- | |||
| | 0x17004 | |||
| | 0x4 | |||
| | Returned when not all of the input NAL-unit buffer was processed. | |||
| |- | |||
| | 0x17005 | |||
| | 0x5 | |||
| |  | |||
| |- | |||
| | 0x17006 | |||
| | 0x6 | |||
| |  | |||
| |- | |||
| | 0x17007 | |||
| | 0x7 | |||
| |  | |||
| |- | |||
| | 0x17038 | |||
| |  | |||
| |   | |   | ||
| |} | |} | ||