home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mmpm21tk.zip / TK / ULIOT / FF.H < prev    next >
Text File  |  1993-04-25  |  7KB  |  169 lines

  1. /**************************START OF SPECIFICATIONS **************************/
  2. /*                                                                          */
  3. /* SOURCE FILE NAME:  FF.H                                                  */
  4. /*                                                                          */
  5. /* DESCRIPTIVE NAME: Ultimotion specific IO Proc defintions (Internal)      */
  6. /*                   Multi-Media I/O Procedure for digital video files      */
  7. /*                                                                          */
  8. /* COPYRIGHT:     IBM - International Business Machines                     */
  9. /*            Copyright (c) IBM Corporation  1991, 1992, 1993               */
  10. /*                        All Rights Reserved                               */
  11. /*                                                                          */
  12. /* STATUS: OS/2 Release 2.0                                                 */
  13. /*                                                                          */
  14. /************************** END OF SPECIFICATIONS ***************************/
  15.  
  16. #include "umformat.h"              /* include file format specific header file */
  17. #include "ulionls.h"
  18.  
  19. /* XLATOFF */
  20. #pragma pack(4)
  21. /* XLATON */
  22.  
  23.  
  24. /******************
  25.  * Defines:
  26.  ******************/
  27. #define FFIO_FORMATNAMEKEY ULIO_FORMATNAMEKEY
  28. #define FFIO_DEF_FMT_EXT   "UMB"
  29. #define DLLNAME            "ULIO"                       /* Filename of this "DLL"        */
  30. #define EXTAUDIOPERCENT   .15
  31. #define NUMBER_CODEC_TABLE 3
  32.  
  33. #define INVALID_OPEN_FLAGS   (MMIO_WRITE |      \
  34.                               MMIO_READWRITE |  \
  35.                               MMIO_BUFSHARED |  \
  36.                               MMIO_CREATE |     \
  37.                               MMIO_DELETE |     \
  38.                               MMIO_ALLOCBUF |   \
  39.                               MMIO_APPEND)
  40.  
  41. #define INVALID_READ_FLAGS  ( MMIO_WRITE | INVALID_OPEN_FLAGS )
  42.  
  43. #define INVALID_WRITE_FLAGS  ( MMIO_READ | INVALID_OPEN_FLAGS )
  44.  
  45. #define VALID_FORMAT_FLAGS  ( MMIO_CANREADUNTRANSLATED |            \
  46.                               MMIO_CANWRITEUNTRANSLATED |           \
  47.                               MMIO_CANREADWRITEUNTRANSLATED |       \
  48.                               MMIO_CANSEEKUNTRANSLATED |            \
  49.                               MMIO_CANSAVEUNTRANSLATED |            \
  50.                               MMIO_CANMULTITRACKREADUNTRANSLATED |  \
  51.                               MMIO_CANMULTITRACKWRITEUNTRANSLATED | \
  52.                               MMIO_CANTRACKSEEKUNTRANSLATED |       \
  53.                               MMIO_CANTRACKREADUNTRANSLATED)
  54.  
  55. #ifdef WORKSHOP
  56. #define CLIPBRD_FORMAT  0     // no clip board support provided
  57. #endif
  58.  
  59. /***************************************************************************************/
  60. /* Ultimotion specific define!                                                         */
  61. /*                                                                                     */
  62. /*  TRACKI.ulMisc1 = Length of left-over data that need to be picked up in next        */
  63. /*                   call.(Otherwise, out of sync)                                     */
  64. /*  (NOT USED) TRACKI.ulMisc1 = Length of data chunk for external audio files.         */
  65. /*  (NOT USED) TRACKI.ulMisc2 = Pointer to external audio buffer to use for reads.     */
  66. /*  (NOT USED) TRACKI.ulMisc3 = Pointer to begin of data in external audio read buffer.*/
  67. /*  (NOT USED) TRACKI.ulMisc4 = Pointer to end of data in external audio read buffer.  */
  68. /*                                                                                     */
  69. /*  INSTANCE.ulMisc1 = Offset of Data Frame List Chunk end                             */
  70. /*  INSTANCE.ulMisc2 = Offset of Data Frame List Chunk Begin                           */
  71. /*                                                                                     */
  72. /***************************************************************************************/
  73. #define RAWFILEHEADER   VOID                /*rawhdr */
  74. #define PRAWFILEHEADER  PVOID               /*prawhdr */
  75.  
  76.  
  77. /*****************************************************************************/
  78. /*  ULTIMOTION PROTOTYPE DECLARATIONS                                        */
  79. /*****************************************************************************/
  80.  
  81. /*****************
  82.  * ulopen.c
  83.  *****************/
  84. LONG ffOpenRead ( PMMIOINFO pmmioinfo,
  85.                   PINSTANCE pinstance );
  86.  
  87. LONG ffOpenWrite ( PMMIOINFO pmmioinfo,
  88.                    PINSTANCE pinstance );
  89.  
  90. LONG ffReadHeader ( PMMIOINFO pmmioinfo,
  91.                     PINSTANCE pinstance,
  92.                     PMMCKINFO pmmckinfoHdr );
  93.  
  94. LONG ffInitCodecs ( PINSTANCE pinstance,
  95.                     PTRACKI ptracki,
  96.                     PMMIOINFO pmmioinfo );
  97.  
  98. LONG ffProcessVideoHeader ( PINSTANCE pinstance,
  99.                             PUMVIDEOHEADER  pumvhHdr,
  100.                             PMMIOINFO pmmioinfo );
  101.  
  102. LONG ffProcessAudioHeaderList ( PINSTANCE pinstance,
  103.                                 PVOID  pListHdr,
  104.                                 ULONG  ulChunkLength,
  105.                                 PULONG pulNumTracks );
  106.  
  107. LONG ffProcessExtAudioHeader ( PINSTANCE pinstance,
  108.                                PEXTAUDIONAME pumeaHdr,
  109.                                ULONG ulHdrLength );
  110.  
  111. LONG ffProcessIntAudioHeader ( PINSTANCE pinstance,
  112.                                PAUDIOHEADER pumahHdr,
  113.                                ULONG ulHdrLength );
  114.  
  115. /*****************
  116.  * ulident.c
  117.  *****************/
  118. LONG IOProcIdentifyFile ( PMMIOINFO pmmioinfo,
  119.                           PSZ pszFileName,
  120.                           HMMIO FileHandle );
  121.  
  122. /*****************
  123.  * ulread.c
  124.  *****************/
  125. LONG IOProcRead ( PMMIOINFO pmmioinfo,
  126.                   PBYTE pbBuffer,
  127.                   LONG  lBytes );
  128.  
  129. LONG IOProcMultiTrackRead ( PMMIOINFO pmmioinfo,
  130.                              PMMMULTITRACKREAD pmtread );
  131.  
  132. /*****************
  133.  * ulsrv.c
  134.  *****************/
  135. LONG ffSeekTrack ( PMMIOINFO pmmioinfo,
  136.                    HMMIO hmmio,
  137.                    LONG lSeekValue,
  138.                    LONG lSeekType );
  139.  
  140. LONG ffSeekToDataBegin ( PMMIOINFO pmmioinfo,
  141.                          PINSTANCE pinstance);
  142.  
  143. PTRACKI ffFindExtAudioTrack ( PINSTANCE pinstance,
  144.                               ULONG ulNumTracks,
  145.                               PTRACKMAP patrackmapList);
  146.  
  147. LONG ffCleanUp ( PINSTANCE pinstance );
  148.  
  149. /*****************
  150.  * ulcodec.c
  151.  *****************/
  152. LONG IOProcDecompress ( PMMIOINFO pmmioinfo,
  153.                         PMMDECOMPRESS pmmdec );
  154.  
  155. LONG ffOpenCodec ( PINSTANCE pinstance,
  156.                    PCCB pccb,
  157.                    ULONG hCodec,
  158.                    PTRACKI ptracki);
  159.  
  160. LONG ffAssociateCodec( PINSTANCE pinstance,
  161.                        PMMEXTENDINFO pmmextendinfo );
  162.  
  163.  
  164. /* XLATOFF */
  165. #pragma pack()
  166. /* XLATON */
  167.  
  168.  
  169.