Home XBIOSXBIOS TastaturfunktionenTastaturfunktionen XBIOS-FunktionslisteXBIOS-Funktionsliste

4.22 VIDIX-XBIOS-Erweiterung

VIDIX (VIDeo Interface for *niX) is a programming interface for Unix-like operating systems that allows direct access to the framebuffer of a video card. VIDIX integration inside TOS (for CT60/CTPCI/Firebee) was added on January 24, 2007.

vdxConfigPlayback      Prepare BES (BackEnd Scaler).
vdxDestroy             Quit driver.
vdxGetCapability       Get capability.
vdxGetGrKeys           Get graphic keys.
vdxGetVersion          Get version.
vdxInit                Initialize driver.
vdxPlaybackCopyFrame   Copy frame with DMA.
vdxPlaybackFrameSelect Prepare frame.
vdxPlaybackGetDeint    Get interlacing.
vdxPlaybackGetEq       Get color correction.
vdxPlaybackOff         Deactivate BES (BackEnd Scaler).
vdxPlaybackOn          Activate BES (BackEnd Scaler).
vdxPlaybackSetDeint    Set interlacing.
vdxPlaybackSetEq       Set color correction.
vdxProbe               Probe the board.
vdxQueryDMAStatus      Get DMA status.
vdxQueryFourcc         Request fourcc.
vdxSetGrKeys           Set graphic keys.

4.22.1 vdxConfigPlayback

Name: »vdxConfigPlayback« - Prepare BES (BackEnd Scaler).
 
Xbiosnummer: 406 (0x0196)
 
Deklaration: int32_t vdxConfigPlayback ( vidix_playback_t *info );
 
Beschreibung: Driver should prepare BES on this call.
 
APP pass to driver the following info:
 
Field Meaning
vidix_playback_t.fourcc Contains fourcc of movie.
vidix_playback_t.capability Currently contains a copy of vidix_capability_t.flags.
vidix_playback_t.blend_factor Currently unused.
vidix_playback_t.src x,y,w,h fields contain original movie size (in pixels) x and y often are nulls.
vidix_playback_t.src.pitch y, u, v fields contain source pitches for each Y,U,V plane in bytes (For packed fourcc only Y value is used). They are hints for driver to use same destinition pitches as in source memory (to speed up memcpy process). Note: when source pitches are unknown or variable these field will be filled into 0.
vidix_playback_t.dest x,y,w,h fields contains destination rectangle on the screen in pixels.
vidix_playback_t.num_frames Maximal # of frames which can be used by APP. (Currently 10).

Driver should fill following fields:
 
Field Meaning
vidix_playback_t.num_frames Real # of frames which will be used by driver. (Should be less or equal to app's num_frames).
vidix_playback_t.dest.pitch y, u, v fields should contain alignment for each Y,U,V plane in bytes. (For packed fourcc only Y value is used).
vidix_playback_t.frame_size Driver should tell to app which size of source frame (src.w and src.h) should use APP (according to pitches and offsets).
vidix_playback_t.offsets Offsets from begin of BES memory for each frame.
vidix_playback_t.offset y, u, v fields should contain offset for each Y,U,V plane within frame. (For packed fourcc only Y value is used).
vidix_playback_t.dga_addr Address of BES memory.

Also see this picture:
 
    VIDEO MEMORY layout:
     +-----------  It's begin of video memory     End of video memory--------------+
     |                                                                             |
     v                                                                             v
     [      RGB memory                         |         YUV memory    |  UNDEF    ]
                                               ^
                                               |
                                               +---- begin of BES memory
    BES MEMORY layout:
     +-------- begin of BES memory
     |
     v
     [ | |                      |       |       |
       ^ ^                      ^       ^       ^
       | |                      |       |       + BEGIN of second frame
       | |                      |       + BEGIN of V plane
       | |                      + BEGIN of U plane
       | +------- BEGIN of Y plane
       |
       +--------- BEGIN of first frame

This means that in general case:
offset of frame != offset of BES
offset of Y plane != offset of first frame
 
But often: vidix_playback_t.offsets[0] = vidix_playback_t.offset.y = 0;
 
Formula: (For Y plane) copy source to: vidix_playback_t.dga_addr + vidix_playback_t.offsets[i] + vidix_playback_t.offset.y
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxPlaybackCopyFrame   vdxPlaybackFrameSelect   vdxQueryDMAStatus   vdxQueryFourcc
 

4.22.1.1 Bindings für vdxConfigPlayback

C: int32_t vdxConfigPlayback ( vidix_playback_t *info );
 
Assembler:
 
pea       info         ; Offset 2
move.w    #406,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

4.22.2 vdxDestroy

Name: »vdxDestroy« - Destroy driver.
 
Xbiosnummer: 403 (0x0193)
 
Deklaration: void vdxDestroy ( void );
 
Beschreibung: Quit the VIDIX driver.
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Nothing.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxInit
 

4.22.2.1 Bindings für vdxDestroy

C: void vdxDestroy ( void );
 
Assembler:
 
move.w    #403,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

4.22.3 vdxGetCapability

Name: »vdxGetCapability« - Get capability.
 
Xbiosnummer: 404 (0x0194)
 
Deklaration: int32_t vdxGetCapability ( vidix_capability_t *to );
 
Beschreibung: Driver should return capability with filled vidix_capability_t.type field.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxGetVersion   vdxProbe
 

4.22.3.1 Bindings für vdxGetCapability

C: int32_t vdxGetCapability ( vidix_capability_t *to );
 
Assembler:
 
pea       to           ; Offset 2
move.w    #404,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

4.22.4 vdxGetGrKeys

Name: »vdxGetGrKeys« - Get graphic keys.
 
Xbiosnummer: 410 (0x019a)
 
Deklaration: int32_t vdxGetGrKeys ( vidix_grkey_t *grkey );
 
Beschreibung: This interface should be tuned but introduced for overlapped playback and video effects (TYPE_FX).
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxSetGrKeys
 

4.22.4.1 Bindings für vdxGetGrKeys

C: int32_t vdxGetGrKeys ( vidix_grkey_t *grkey );
 
Assembler:
 
pea       grkey        ; Offset 2
move.w    #410,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

4.22.5 vdxGetVersion

Name: »Get Version« - Get version.
 
Xbiosnummer: 400 (0x0190)
 
Deklaration: unsigned vdxGetVersion ( void );
 
Beschreibung: Get the version.
 
Ergebnis: Version.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxGetCapability   vdxProbe
 

4.22.5.1 Bindings für vdxGetVersion

C: unsigned vdxGetVersion ( void );
 
Assembler:
 
move.w    #400,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

4.22.6 vdxInit

Name: »vdxInit« - Initialize driver.
 
Xbiosnummer: 402 (0x0192)
 
Deklaration: int32_t vdxInit ( void );
 
Beschreibung: Initialize the VIDIX driver.
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxDestroy
 

4.22.6.1 Bindings für vdxInit

C: int32_t vdxInit ( void );
 
Assembler:
 
move.w    #402,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

4.22.7 vdxPlaybackCopyFrame

Name: »vdxPlaybackCopyFrame« - Copy frame with DMA.
 
Xbiosnummer: 416 (0x01a0)
 
Deklaration: int32_t vdxPlaybackCopyFrame ( vidix_dma_t *dmai );
 
Beschreibung: Function for copy frame with the DMA.
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Driver should return 0 else EINVAL, ERANGE, ENOMEM, E2BIG or ENOSYS.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxConfigPlayback   vdxPlaybackFrameSelect   vdxQueryDMAStatus   vdxQueryFourcc
 

4.22.7.1 Bindings für vdxPlaybackCopyFrame

C: int32_t vdxPlaybackCopyFrame ( vidix_dma_t *dmai );
 
Assembler:
 
pea       dmai         ; Offset 2
move.w    #416,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

4.22.8 vdxPlaybackFrameSelect

Name: »vdxPlaybackFrameSelect« - Prepare frame.
 
Xbiosnummer: 409 (0x0199)
 
Deklaration: int32_t vdxPlaybackFrameSelect ( uint32_t frame );
 
Beschreibung: Driver should prepare and activate corresponded frame. This function is used only for double and triple buffering and never used for single buffering playback.
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxConfigPlayback   vdxPlaybackCopyFrame   vdxQueryDMAStatus   vdxQueryFourcc
 

4.22.8.1 Bindings für vdxPlaybackFrameSelect

C: int32_t vdxPlaybackFrameSelect ( uint32_t frame );
 
Assembler:
 
move.l    frame,-(sp)  ; Offset 2
move.w    #409,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

4.22.9 vdxPlaybackGetDeint

Name: »vdxPlaybackGetDeint« - Get interlacing.
 
Xbiosnummer: 414 (0x019e)
 
Deklaration: int32_t vdxPlaybackGetDeint ( vidix_deinterlace_t *info );
 
Beschreibung: Function for get interlacing.
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxPlaybackSetDeint
 

4.22.9.1 Bindings für vdxPlaybackGetDeint

C: int32_t vdxPlaybackGetDeint ( vidix_deinterlace_t *info );
 
Assembler:
 
pea       info         ; Offset 2
move.w    #414,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

4.22.10 vdxPlaybackGetEq

Name: »vdxPlaybackGetEq« - Get color correction.
 
Xbiosnummer: 412 (0x019c)
 
Deklaration: int32_t vdxPlaybackGetEq ( vidix_video_eq_t *eq );
 
Beschreibung: Function for get color correction.
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxPlaybackSetEq
 

4.22.10.1 Bindings für vdxPlaybackGetEq

C: int32_t vdxPlaybackGetEq ( vidix_video_eq_t *eq );
 
Assembler:
 
pea       eq           ; Offset 2
move.w    #412,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

4.22.11 vdxPlaybackOff

Name: »vdxPlaybackOff« - Deactivate BES.
 
Xbiosnummer: 408 (0x0198)
 
Deklaration: int32_t vdxPlaybackOff ( void );
 
Beschreibung: Driver should deactivate BES on this call.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxPlaybackOn
 

4.22.11.1 Bindings für vdxPlaybackOff

C: int32_t vdxPlaybackOff ( void );
 
Assembler:
 
move.w    #408,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

4.22.12 vdxPlaybackOn

Name: »vdxPlaybackOn« - Activate BES.
 
Xbiosnummer: 407 (0x0197)
 
Deklaration: int32_t vdxPlaybackOn ( void );
 
Beschreibung: Driver should activate BES on this call.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxPlaybackOff
 

4.22.12.1 Bindings für vdxPlaybackOn

C: int32_t vdxPlaybackOn ( void );
 
Assembler:
 
move.w    #407,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

4.22.13 vdxPlaybackSetDeint

Name: »vdxPlaybackSetDeint« - Set interlacing.
 
Xbiosnummer: 415 (0x019f)
 
Deklaration: int32_t vdxPlaybackSetDeint ( vidix_deinterlace_t *info );
 
Beschreibung: Function for set interlacing.
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxPlaybackGetDeint
 

4.22.13.1 Bindings für vdxPlaybackSetDeint

C: int32_t vdxPlaybackSetDeint ( vidix_deinterlace_t *info );
 
Assembler:
 
pea       info         ; Offset 2
move.w    #415,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

4.22.14 vdxPlaybackSetEq

Name: »vdxPlaybackSetEq« - Set color correction.
 
Xbiosnummer: 413 (0x019d)
 
Deklaration: int32_t vdxPlaybackSetEq ( vidix_video_eq_t *eq );
 
Beschreibung: Function for set color correction.
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding vdxPlaybackGetEq
 

4.22.14.1 Bindings für vdxPlaybackSetEq

C: int32_t vdxPlaybackSetEq ( vidix_video_eq_t *eq );
 
Assembler:
 
pea       eq           ; Offset 2
move.w    #413,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

4.22.15 vdxProbe

Name: »vdxProbe« - Probe the board.
 
Xbiosnummer: 401 (0x0191)
 
Deklaration: int32_t vdxProbe ( int32_t verbose, int32_t force );
 
Beschreibung: Probe the board. verbose and force are unused for the Atari driver.
 
Ergebnis: Driver should return 0 if it can handle something else ENXIO.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxGetCapability   vdxGetVersion
 

4.22.15.1 Bindings für vdxProbe

C: int32_t vdxProbe ( int32_t verbose, int32_t force );
 
Assembler:
 
move.l    force,-(sp)  ; Offset 6
move.l    verbose,-(sp); Offset 2
move.w    #401,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
lea       10(sp),sp    ; Stack korrigieren

4.22.16 vdxQueryDMAStatus

Name: »vdxQueryDMAStatus« - Get DMA status.
 
Xbiosnummer: 417 (0x01a1)
 
Deklaration: int32_t vdxQueryDMAStatus ( void );
 
Beschreibung: Function for get the status of the DMA after a vdxPlaybackCopyFrame().
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Driver should return 0 or 1 if busy, else ENOSYS.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxConfigPlayback   vdxPlaybackCopyFrame   vdxPlaybackFrameSelect   vdxQueryFourcc
 

4.22.16.1 Bindings für vdxQueryDMAStatus

C: int32_t vdxQueryDMAStatus ( void );
 
Assembler:
 
move.w    #417,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #2,sp        ; Stack korrigieren

4.22.17 vdxQueryFourcc

Name: »vdxQueryFourcc« - Request fourcc.
 
Xbiosnummer: 405 (0x0195)
 
Deklaration: int32_t vdxQueryFourcc ( vidix_fourcc_t *to );
 
Beschreibung: Select requested fourcc, width and heigth. Driver should answer - can it configure video memory for a given fourcc or not.
 
Ergebnis: Driver should return 0 else ENOSYS.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxConfigPlayback   vdxPlaybackCopyFrame   vdxPlaybackFrameSelect   vdxQueryDMAStatus
 

4.22.17.1 Bindings für vdxQueryFourcc

C: int32_t vdxQueryFourcc ( vidix_fourcc_t *to );
 
Assembler:
 
pea       to           ; Offset 2
move.w    #405,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

4.22.18 vdxSetGrKeys

Name: »vdxSetGrKeys« - Set graphic keys.
 
Xbiosnummer: 411 (0x019b)
 
Deklaration: int32_t vdxSetGrKeys ( const vidix_grkey_t *grkey );
 
Beschreibung: This interface should be tuned but introduced for overlapped playback and video effects (TYPE_FX).
 
Achtung: Diese Funktion ist optional.
 
Ergebnis: Driver should return 0.
 
Verfügbar: CT60/CTPCI hardware acceleration board and FireBee.
 
Gruppe: VIDIX-XBIOS-Erweiterung
 
Querverweis: Binding   vdxGetGrKeys
 

4.22.18.1 Bindings für vdxSetGrKeys

C: int32_t vdxSetGrKeys ( const vidix_grkey_t *grkey );
 
Assembler:
 
pea       grkey        ; Offset 2
move.w    #411,-(sp)   ; Offset 0
trap      #14          ; XBIOS aufrufen
addq.l    #6,sp        ; Stack korrigieren

Home XBIOSXBIOS TastaturfunktionenTastaturfunktionen XBIOS-FunktionslisteXBIOS-Funktionsliste