Difference between revisions of "MVDSTD:GetConfig"
Line 105: | Line 105: | ||
| 0x58 | | 0x58 | ||
| 0x4 | | 0x4 | ||
− | | | + | | Type2, see below. SKATER writes value 0x40002 here. The physaddr at offset 0x68 is only checked when this is value 0x00020001. |
|- | |- | ||
| 0x5C | | 0x5C | ||
Line 130: | Line 130: | ||
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. | 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. | ||
− | + | Type values: | |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 183: | Line 183: | ||
| 0x00180001 | | 0x00180001 | ||
| Video processing | | Video processing | ||
+ | | ? | ||
+ | |} | ||
+ | |||
+ | Type2 values: | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Type value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x00010001 | ||
+ | | ? | ||
+ | |- | ||
+ | | 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 | ||
+ | | ? | ||
+ | |- | ||
+ | | 0x00040000 | ||
+ | | ? | ||
+ | |- | ||
+ | | 0x00040001 | ||
+ | | ? | ||
+ | |- | ||
+ | | 0x00040002 | ||
+ | | ? | ||
+ | |- | ||
+ | | 0x00040003 | ||
+ | | ? | ||
+ | |- | ||
+ | | 0x00040004 | ||
+ | | ? | ||
+ | |- | ||
+ | | 0x00041000 | ||
+ | | ? | ||
+ | |- | ||
+ | | 0x00041001 | ||
+ | | ? | ||
+ | |- | ||
+ | | 0x00041002 | ||
| ? | | ? | ||
|} | |} |
Revision as of 03:59, 11 November 2014
Request
Index Word | Description |
---|---|
0 | Header code [0x001D0042] |
1 | Size, normally 0x11C. |
2 | (Size<<4) | 12 |
3 | Output data ptr |
Response
Index Word | Description |
---|---|
0 | Header code |
1 | Resultcode |
Structure
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | 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 | Video width. Must be >=width_min and <width_max. This must be aligned: the low <dimensions_alignment>-bits must be clear. |
0x10 | 0x4 | 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. 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. 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 | Type2, see below. SKATER writes value 0x40002 here. The physaddr at offset 0x68 is only checked when this is value 0x00020001. |
0x5C | 0x4 | Video width. Must be >=16, and must be <somewidth_statefield. |
0x60 | 0x4 | 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 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.
Type values:
Type value | Mode | Description |
---|---|---|
0x00010001 | Color conversion | "MJPEG" (yuyv422 -> <out color format>) |
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 | ? |
0x00080001 | Video processing | ? |
0x00180001 | Video processing | ? |
Type2 values:
Type value | Description |
---|---|
0x00010001 | ? |
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 | ? |
0x00040000 | ? |
0x00040001 | ? |
0x00040002 | ? |
0x00040003 | ? |
0x00040004 | ? |
0x00041000 | ? |
0x00041001 | ? |
0x00041002 | ? |
Description
For this command, MVD module DMAs 0x11C-bytes from a MVD state structure to the above output buffer.