home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD v1.2 / amidev_cd_12.iso / cd32 / cd32-tools / mpegsup-1 / include / devices / mpeg.i < prev    next >
Text File  |  1994-01-21  |  5KB  |  198 lines

  1.     IFND    MPEG_I
  2. MPEG_I    SET    1
  3.  
  4. **
  5. **    $Id: mpeg.i,v 40.3 93/10/23 01:12:48 kcd Exp Locker: kcd $
  6. **
  7. **    CD32 MPEG Device Assembly include file.
  8. **
  9. **    (C) Copyright 1993 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. **
  12.  
  13.     IFND    EXEC_IO_I
  14.     INCLUDE    "exec/io.i"
  15.     ENDC
  16.  
  17. **
  18. ** IOMpegReq structure
  19. **
  20.  
  21.     STRUCTURE    IOMPEGReq,IOSTD_SIZE
  22.  
  23.     ; MPEG Specific Stuff
  24.     UWORD    iomr_MPEGError        ; Extended Error Information
  25.     UBYTE    iomr_Version        ; Must be set to 0 for this spec
  26.     UBYTE    iomr_StreamType        ; Type of stream to play
  27.     ULONG    iomr_MPEGFlags        ; Flags.  See below
  28.     ULONG    iomr_Arg1
  29.     ULONG    iomr_Arg2
  30.  
  31.     UWORD    iomr_PTSHigh            ; Bits 32-30 of this data's PTS
  32.     UWORD    iomr_PTSMid        ; Bits 29-15 of this data's PTS
  33.     UWORD    iomr_PTSLow        ; Bits 14-9  of this data's PTS
  34.  
  35.     ; Private Device Information
  36.  
  37.     UWORD    iomr_Private0
  38.     ULONG    iomr_Private1
  39.     ULONG    iomr_Private2
  40.  
  41.     UWORD    iomr_Private3
  42.     UWORD    iomr_Private4
  43.     UWORD    iomr_Private5
  44.  
  45.     LABEL    IOMPEGReq_SIZE
  46.  
  47. **
  48. ** Handy equates
  49. **
  50. iomr_SlowSpeed      EQU     iomr_Arg1
  51. iomr_PauseMode          EQU    iomr_Arg1
  52. iomr_DisplayType        EQU    iomr_Arg1
  53. iomr_SearchSpeed        EQU    iomr_Arg1
  54. iomr_SectorSize         EQU    iomr_Arg1
  55. iomr_StreamStart        EQU    iomr_Arg2
  56.  
  57. **
  58. ** Defined Stream Types
  59. **
  60. MPEGSTREAM_VIDEO    EQU    1    ; Raw Video bitstream
  61. MPEGSTREAM_AUDIO    EQU    2    ; Raw Audio bitstream
  62. MPEGSTREAM_SYSTEM    EQU    3    ; ISO 1172 System Stream
  63.  
  64. **
  65. ** MPEG Error Values
  66. **
  67. MPEGERR_BAD_STATE    EQU    1    ; Command is illegal for the current device state
  68. MPEGERR_BAD_PARAMETER    EQU    2    ; Some parameter was illegal
  69. MPEGERR_CMD_FAILED    EQU    3    ; Catch-All
  70. MPEGERR_CD_ERROR    EQU    4    ; Error while attempting cd.device I/O
  71.  
  72. **
  73. ** Extended error values.
  74. **
  75. MPEGEXTERR_STREAM_MISMATCH    EQU    1    /* Stream type not appropriate */
  76. MPEGEXTERR_MICROCODE_FAILURE    EQU    2    /* MicroCode failed to respond */
  77. MPEGEXTERR_BAD_STREAM_TYPE    EQU    3    /* Command is incompatible with current stream type */
  78.  
  79. **
  80. ** Defined MPEG Flags
  81. **
  82.     BITDEF    MPEG,VALID_PTS,31    ; This piece of data has a valid PTS
  83.     BITDEF    MPEG,ONESHOT,2        ; One-Shot scan
  84. **
  85. ** MPEG Device Commands
  86. **
  87.  
  88.     DEVINIT
  89.  
  90.     ; Low level commands
  91.  
  92.     DEVCMD    MPEGCMD_PLAY
  93.     DEVCMD    MPEGCMD_PAUSE
  94.     DEVCMD    MPEGCMD_SLOWMOTION
  95.     DEVCMD    MPEGCMD_SINGLESTEP
  96.     DEVCMD    MPEGCMD_SCAN
  97.     DEVCMD    MPEGCMD_RECORD
  98.     DEVCMD    MPEGCMD_GETDEVINFO
  99.     DEVCMD    MPEGCMD_SETWINDOW
  100.     DEVCMD    MPEGCMD_SETBORDER
  101.     DEVCMD    MPEGCMD_GETVIDEOPARAMS
  102.     DEVCMD    MPEGCMD_SETVIDEOPARAMS
  103.     DEVCMD    MPEGCMD_SETAUDIOPARAMS
  104.  
  105.     ; Higher level commands
  106.  
  107.     DEVCMD    MPEGCMD_PLAYLSN
  108.     DEVCMD    MPEGCMD_SEEKLSN
  109.     DEVCMD    MPEGCMD_READFRAMEYUV
  110.  
  111.     DEVCMD    MPEGCMD_MPEG_END
  112.  
  113. **
  114. ** This structure is returned form a MPEGCMD_GETDEVINFO command. Use this
  115. ** to determine what the device driver is capable of doing.  Not all devices
  116. ** will support all commands/features.
  117. **
  118.     STRUCT    MPEGDevInfo,0
  119.     UWORD    mdi_Version
  120.     UWORD    mdi_Flags
  121.     ULONG    mdi_BoardCapabilities
  122.     STRUCT    mdi_BoardDesc,256
  123.     LABEL    mdi_SIZE
  124.  
  125. **
  126. ** This structure is used with the MPEGCMD_SETWINDOW command.
  127. **
  128.     STRUCT    MPEGWindowParams,0
  129.     UWORD    mwp_XOffset        ; Hi-Res Pixels
  130.     UWORD    mwp_YOffset        ; Non-interlaced scanlines
  131.     UWORD    mwp_Width        ; Hi-Res Pixels
  132.     UWORD    mwp_Height        ; Non-interlaced scanlines
  133.     LABEL    mwp_SIZE
  134.  
  135. **
  136. ** This structure is used with the MPEGCMD_SETBORDER command.
  137. **
  138.     STRUCT    MPEGBorderParams,0
  139.     UWORD    mbp_BorderLeft
  140.     UWORD    mbp_BorderTop
  141.     UBYTE    mbp_BorderRed
  142.     UBYTE    mbp_BorderGreen
  143.     UBYTE    mbp_BorderBlue
  144.     LABEL    mbp_SIZE
  145.  
  146. **
  147. ** MPEGFrameStore is used by the MPEGCMD_READFRAMEYUV command.
  148. ** Color components with NULL pointers will not be written to.
  149. **
  150.  
  151.     STRUCT    MPEGFrameStore,0
  152.     UWORD    mfs_Width
  153.     UWORD    mfs_Height
  154.     APTR    mfs_Luma
  155.     APTR    mfs_Cr
  156.     APTR    mfs_Cb
  157.     LABEL    mfs_SIZE
  158.  
  159. **
  160. ** NB: Not all devices support the full functionality that these
  161. **     structure provide for.  Please take this into account.
  162. **
  163.  
  164.     STRUCT    MPEGVideoParamsSet,0
  165.     UWORD    mvp_Fade        ;Fade level. 0 = no MPEG video,
  166.                     ;65535 = full saturation.
  167.     UWORD    mvp_DisplayType        ;0 = No Change, 3 = PAL (50Hz),
  168.                     ;4 = NTSC (60Hz)
  169.     LABEL    mvps_SIZE
  170.  
  171.  
  172.     STRUCT    MPEGVideoParamsGet,0
  173.     UWORD    mvp_PictureWidth    ;Width in lo-res pixels
  174.     UWORD    mvp_PictureHeight    ;Height in non-interlaced scanlines
  175.     UWORD    mvp_PictureRate        ;Pictures per second code
  176.     LABEL    mvpg_SIZE
  177.  
  178.     STRUCT    MPEGAudioParams,0
  179.     UWORD    map_VolumeLeft        ;Left Channel Volume (0=Mute, 65535 = Loudest)
  180.     UWORD    map_VolumeRight        ;Right Channel Volume
  181.     UWORD    map_StreamID        ;MPEG Audio stream ID. ~0 for all streams
  182.     LABEL    map_SIZE
  183.  
  184. **
  185. ** Board Capabilities
  186. **
  187.     BITDEF    MPEGC,PLAYRAWVIDEO,16    ;Can play a raw video stream
  188.     BITDEF    MPEGC,PLAYRAWAUDIO,17    ;Can play a raw audio stream
  189.     BITDEF    MPEGC,PLAYSYSTEM,18    ;Can play an ISO-1172 system stream
  190.     BITDEF    MPEGC,WINDOWVIDEO,19    ;Can do window subpositioning
  191.     BITDEF    MPEGC,SCALEVIDEO,20    ;Can scale video
  192.     BITDEF    MPEGC,STEPPLAY,21    ;Can single-step
  193.     BITDEF    MPEGC,SCANPLAY,22    ;Can scan
  194.     BITDEF    MPEGC,SLOWPLAY,23    ;Can do slow-motion
  195.     BITDEF    MPEGC,READFRAME,24    ;Can read digital frame data
  196.  
  197.     ENDC    ; MPEG_I
  198.