| 
				     | 
				
| Line 15: | 
Line 15: | 
 | |-  |  | |-  | 
 | | 3  |  | | 3  | 
 | | Output data ptr  |  | | Output [[MVD_Services|config]] data ptr  | 
 | |}  |  | |}  | 
 | 
  |  | 
  | 
| Line 29: | 
Line 29: | 
 | | 1  |  | | 1  | 
 | | Resultcode  |  | | Resultcode  | 
 | |}
  |  | 
 | 
  |  | 
 | =Structure=
  |  | 
 | {| class="wikitable" border="1"
  |  | 
 | |-
  |  | 
 | !  Offset
  |  | 
 | !  Size
  |  | 
 | !  Description
  |  | 
 | |-
  |  | 
 | | 0x0
  |  | 
 | | 0x4
  |  | 
 | | Input format type, see below.
  |  | 
 | |-
  |  | 
 | | 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.
  |  | 
 | |-
  |  | 
 | | 0x8
  |  | 
 | | 0x4
  |  | 
 | | The default for this is 0x0. This must be <=1.
  |  | 
 | |-
  |  | 
 | | 0x0C
  |  | 
 | | 0x4
  |  | 
 | | Input video width. Must be >=width_min and <width_max. This must be aligned: the low <dimensions_alignment>-bits must be clear.
  |  | 
 | |-
  |  | 
 | |-
  |  | 
 | | 0x10
  |  | 
 | | 0x4
  |  | 
 | | Input video height. Must be >=height_min and <height_max. This must be aligned: the low <dimensions_alignment>-bits must be clear.
  |  | 
 | |-
  |  | 
 | | 0x14
  |  | 
 | | 0x4
  |  | 
 | | Input data physical address, only set for color-conversion. This isn't used when the value at offset 0x4 is 0x1 or 0x5.
  |  | 
 | |-
  |  | 
 | | 0x18
  |  | 
 | | 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 0x1 or 0x5.
  |  | 
 | |-
  |  | 
 | | 0x1C
  |  | 
 | | 0x4
  |  | 
 | | Physical data address, only used for color-conversion when the type value is 0x20000. This isn't used when the value at offset 0x4 is 0x1 or 0x5.
  |  | 
 | |-
  |  | 
 | | 0x20
  |  | 
 | | 0x4
  |  | 
 | | Physical data address, for color-conversion. This isn't used when the value at offset 0x4 is 0x0 or 0x4.
  |  | 
 | |-
  |  | 
 | | 0x24
  |  | 
 | | 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.
  |  | 
 | |-
  |  | 
 | | 0x40
  |  | 
 | | 0x4
  |  | 
 | | When non-zero this enables usage of the 4 words starting at offset 0x44. Normally this is set to 0x0 for color-conversion, and 0x1 for video processing.
  |  | 
 | |-
  |  | 
 | | 0x44
  |  | 
 | | 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.
  |  | 
 | |-
  |  | 
 | | 0x48
  |  | 
 | | 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.
  |  | 
 | |-
  |  | 
 | | 0x4C
  |  | 
 | | 0x4
  |  | 
 | | See offset 0x40. Output video 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
  |  | 
 | | 0x4
  |  | 
 | | See offset 0x40. Output video 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
  |  | 
 | | 0x4
  |  | 
 | | The default for this is 0x0. Must be <=5. For video processing, and when this value is non-zero, the type value at offset 0x0 must not be any of the following: 0x00010004, 0x00010001, 0x0x00100001, or 0x00200001. For video processing, the type value at offset 0x0 must not be 0x80000 when this value at offset 0x54 is non-zero.
  |  | 
 | |-
  |  | 
 | | 0x58
  |  | 
 | | 0x4
  |  | 
 | | Output format type, see below. SKATER writes value 0x40002 here. The physaddr at offset 0x68 is only checked when this is value 0x00020001.
  |  | 
 | |-
  |  | 
 | | 0x5C
  |  | 
 | | 0x4
  |  | 
 | | Output video width. Must be >=16, and must be <somewidth_statefield.
  |  | 
 | |-
  |  | 
 | | 0x60
  |  | 
 | | 0x4
  |  | 
 | | Output video height. Must be >=16, and must be <someheight_statefield.
  |  | 
 | |-
  |  | 
 | | 0x64
  |  | 
 | | 0x4
  |  | 
 | | Output data physical address.
  |  | 
 | |-
  |  | 
 | | 0x68
  |  | 
 | | 0x4
  |  | 
 | | Output data physical address, only set for color-conversion.
  |  | 
 | |}
  |  | 
 | 
  |  | 
 | The size of this structure is fixed to 0x11C-bytes. The user process does the LINEAR-mem vaddr->physaddr conversion for the above physaddrs, when modifying the config struct before using [[MVDSTD:SetConfig]]. For the above physaddrs that are checked/used, the physaddr must not be 0x0, and the physaddr must be 8-byte aligned(low 3-bits clear).
  |  | 
 | 
  |  | 
 | See [[MVD_Services|here]] regarding "MJPEG". For "MJPEG", the output frame is split into two images via the two output physaddrs.
  |  | 
 | 
  |  | 
 | For *_min/*_max/dimensions_alignment mentioned above: *_min = 16 for color-conversion, 48 for video processing. *_max = 2048 for color-conversion, 4672 for video processing. dimensions_alignment = 4 for color-conversion, 3 for video processing.
  |  | 
 | 
  |  | 
 | The configuration doesn't seem to change at all while SKATER is running video processing(each [[MVDSTD:SetConfig]] input config appears to the same).
  |  | 
 | 
  |  | 
 | Input format type values:
  |  | 
 | {| class="wikitable" border="1"
  |  | 
 | |-
  |  | 
 | !  Type value
  |  | 
 | !  Mode
  |  | 
 | !  Description
  |  | 
 | |-
  |  | 
 | | 0x00010001
  |  | 
 | | Color conversion
  |  | 
 | | yuyv422
  |  | 
 | |-
  |  | 
 | | 0x00010002
  |  | 
 | | Video processing
  |  | 
 | | ?
  |  | 
 | |-
  |  | 
 | | 0x00010004
  |  | 
 | | Video processing
  |  | 
 | | ?
  |  | 
 | |-
  |  | 
 | | 0x00010005
  |  | 
 | | Color conversion
  |  | 
 | | ?
  |  | 
 | |-
  |  | 
 | | 0x00010006
  |  | 
 | | Color conversion
  |  | 
 | | ?
  |  | 
 | |-
  |  | 
 | | 0x00010007
  |  | 
 | | Color conversion
  |  | 
 | | ?
  |  | 
 | |-
  |  | 
 | | 0x00020000
  |  | 
 | | Color conversion
  |  | 
 | | ?
  |  | 
 | |-
  |  | 
 | | 0x00020001
  |  | 
 | | Video processing
  |  | 
 | | H.264
  |  | 
 | |-
  |  | 
 | | 0x00020002
  |  | 
 | | ?
  |  | 
 | | ?
  |  | 
 | |-
  |  | 
 | | 0x00080000
  |  | 
 | | Video processing
  |  | 
 | | Same as 0x00020001, except with gray-scale?
  |  | 
 | |-
  |  | 
 | | 0x00080001
  |  | 
 | | Video processing
  |  | 
 | | ?
  |  | 
 | |-
  |  | 
 | | 0x00180001
  |  | 
 | | Video processing
  |  | 
 | | ?
  |  | 
 | |}
  |  | 
 | 
  |  | 
 | Output format type values:
  |  | 
 | {| class="wikitable" border="1"
  |  | 
 | |-
  |  | 
 | !  Type value
  |  | 
 | !  Description
  |  | 
 | |-
  |  | 
 | | 0x00010001
  |  | 
 | | See the input format type.
  |  | 
 | |-
  |  | 
 | | 0x00010005
  |  | 
 | | Unknown. A certain MVD state field must not be set to 0x8170 in order to use this.
  |  | 
 | |-
  |  | 
 | | 0x00010006
  |  | 
 | | Unknown, see 0x00010005 for the usage requirement.
  |  | 
 | |-
  |  | 
 | | 0x00010007
  |  | 
 | | Unknown, see 0x00010005 for the usage requirement.
  |  | 
 | |-
  |  | 
 | | 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.
  |  | 
 | |-
  |  | 
 | | 0x00010009
  |  | 
 | | Unknown, see 0x00010008 for the usage requirements.
  |  | 
 | |-
  |  | 
 | | 0x0001000A
  |  | 
 | | Unknown, see 0x00010008 for the usage requirements.
  |  | 
 | |-
  |  | 
 | | 0x0001000B
  |  | 
 | | Unknown, see 0x00010008 for the usage requirements.
  |  | 
 | |-
  |  | 
 | | 0x00020001
  |  | 
 | | Some sort of YUV format?
  |  | 
 | |-
  |  | 
 | | 0x00040000
  |  | 
 | | Unknown, doesn't write anything to the out-buffer when doing color-conversion.
  |  | 
 | |-
  |  | 
 | | 0x00040001
  |  | 
 | | RGB555
  |  | 
 | |-
  |  | 
 | | 0x00040002
  |  | 
 | | BGR565
  |  | 
 | |-
  |  | 
 | | 0x00040003
  |  | 
 | | Some sort of 16bit format it seems?
  |  | 
 | |-
  |  | 
 | | 0x00040004
  |  | 
 | | RGB565
  |  | 
 | |-
  |  | 
 | | 0x00041000
  |  | 
 | | Unknown, doesn't write anything to the out-buffer when doing color-conversion.
  |  | 
 | |-
  |  | 
 | | 0x00041001
  |  | 
 | | y400a?
  |  | 
 | |-
  |  | 
 | | 0x00041002
  |  | 
 | | y400a?
  |  | 
 | |}  |  | |}  | 
 | 
  |  | 
  | 
 | =Description=  |  | =Description=  | 
 | For this command, MVD module DMAs 0x11C-bytes from a MVD state structure to the above output buffer.  |  | For this command, MVD module DMAs 0x11C-bytes from a MVD state structure to the above output buffer.  |