Difference between revisions of "MVDSTD:GetConfig"

From 3dbrew
Jump to navigation Jump to search
(Replaced content with "=Request= {| class="wikitable" border="1" |- ! Index Word ! Description |- | 0 | Header code [0x001D0042] |- | 1 | Size, normally 0x11C. |- | 2 | (Size<<4) <nowiki>|</n...")
 
(19 intermediate revisions by the same user not shown)
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
 
| Type, see below.
 
|-
 
| 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.
 
|-
 
| 0x40
 
| 0x4
 
| 0x0 for color-conversion, 0x1 for H.264.
 
|-
 
| 0x4C
 
| 0x4
 
| Video height, only set for H.264.
 
|-
 
| 0x50
 
| 0x4
 
| Video width, only set for H.264.
 
|-
 
| 0x58
 
| 0x4
 
| The default for this is 0x40002. 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 [[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.
 
 
Types:
 
{| class="wikitable" border="1"
 
|-
 
!  Type value
 
!  Mode
 
!  Description
 
|-
 
| 0x00000002
 
| Color conversion
 
| ?
 
|-
 
| 0x00000003
 
| Video processing
 
| ?
 
|-
 
| 0x00000005
 
| Video processing
 
| ?
 
|-
 
| 0x00000006
 
| Color conversion
 
| ?
 
|-
 
| 0x00000007
 
| Color conversion
 
| ?
 
|-
 
| 0x00000008
 
| Color conversion
 
| ?
 
|-
 
| 0x00010001
 
| Color conversion
 
| "MJPEG" (yuyv422 -> <out color format>)
 
|-
 
| 0x00020000
 
| Color conversion
 
| ?
 
|-
 
| 0x00020001
 
| Video processing
 
| H.264
 
|-
 
| 0x00020002
 
| ?
 
| ?
 
|-
 
| 0x00080000
 
| Video processing
 
| ?
 
|-
 
| 0x00080009
 
| Video processing
 
| ?
 
|-
 
| 0x00180009
 
| Video processing
 
| ?
 
 
|}
 
|}
  
 
=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.

Latest revision as of 21:50, 21 April 2016

Request[edit]

Index Word Description
0 Header code [0x001D0042]
1 Size, normally 0x11C.
2 (Size<<4) | 12
3 Output config data ptr

Response[edit]

Index Word Description
0 Header code
1 Resultcode

Description[edit]

For this command, MVD module DMAs 0x11C-bytes from a MVD state structure to the above output buffer.