Difference between revisions of "MVDSTD:GetConfig"

From 3dbrew
Jump to navigation Jump to search
Line 44: Line 44:
 
| 0x0C
 
| 0x0C
 
| 0x4
 
| 0x4
| Video width. Must be >=width_min. width_min = 16 for color-conversion, 48 for video processing.
+
| Video width. Must be >=width_min and <width_max.
 
|-
 
|-
 
| 0x10
 
| 0x10
 
| 0x4
 
| 0x4
| Video height. Must be >=height_min. height_min = 16 for color-conversion, 48 for video processing.
+
| Video height. Must be >=height_min and <height_max.
 
|-
 
|-
 
| 0x14
 
| 0x14
 
| 0x4
 
| 0x4
| Input data physical address, only set for "MJPEG".
+
| Input data physical address, only set for color-conversion.
 
|-
 
|-
 
| 0x40
 
| 0x40
 
| 0x4
 
| 0x4
| 0x0 for "MJPEG", 0x1 for H.264.
+
| 0x0 for color-conversion, 0x1 for H.264.
 
|-
 
|-
 
| 0x4C
 
| 0x4C
Line 84: Line 84:
 
| 0x68
 
| 0x68
 
| 0x4
 
| 0x4
| Output data physical address, only set for "MJPEG".
+
| Output data physical address, only set for color-conversion.
 
|}
 
|}
  
Line 90: Line 90:
  
 
See [[MVD_Services|here]] regarding "MJPEG". For "MJPEG", the output frame is split into two images via the two output physaddrs.
 
See [[MVD_Services|here]] regarding "MJPEG". For "MJPEG", the output frame is split into two images via the two output physaddrs.
 +
 +
For *_min/*_max mentioned above: *_min = 16 for color-conversion, 48 for video processing. *_max = 2048 for color-conversion, 4672 for video processing.
  
 
Types:
 
Types:

Revision as of 05:33, 10 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.
0x0C 0x4 Video width. Must be >=width_min and <width_max.
0x10 0x4 Video height. Must be >=height_min and <height_max.
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 here regarding "MJPEG". For "MJPEG", the output frame is split into two images via the two output physaddrs.

For *_min/*_max mentioned above: *_min = 16 for color-conversion, 48 for video processing. *_max = 2048 for color-conversion, 4672 for video processing.

Types:

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

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