topical media & game development

talk show tell print

lib-of-vs-libs-QTDevWin-CIncludes-QTSMovie.h / h



  /*
       File:       QTSMovie.h
   
       Contains:   QuickTime Interfaces.
   
       Version:    Technology: QuickTime 6.0
                   Release:    QuickTime 6.0.2
   
       Copyright:  (c) 1990-2001 by Apple Computer, Inc., all rights reserved
   
       Bugs?:      For bug reports, consult the following page on
                   the World Wide Web:
   
                       http://developer.apple.com/bugreporter/
   
  */
  ifndef __QTSMOVIE__
  define __QTSMOVIE__
  
  ifndef __COMPONENTS__
  include <Components.h>
  endif
  
  ifndef __MOVIES__
  include <Movies.h>
  endif
  
  ifndef __QUICKTIMESTREAMING__
  include <QuickTimeStreaming.h>
  endif
  
  if PRAGMA_ONCE
  #pragma once
  endif
  
  ifdef __cplusplus
  extern "C" {
  endif
  
  if PRAGMA_IMPORT
  #pragma import on
  endif
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=mac68k
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(push, 2)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack(2)
  endif
  
  enum {
      kQTSStreamMediaType         = FOUR_CHAR_CODE('strm')
  };
  
  struct QTSSampleDescription {
      long                            descSize;
      long                            dataFormat;
      long                            resvd1;                     /* set to 0*/
      short                           resvd2;                     /* set to 0*/
      short                           dataRefIndex;
      UInt32                          version;
      UInt32                          resvd3;                     /* set to 0*/
      SInt32                          flags;
                                                                  /* qt atoms follow:*/
                                                                  /*      long size, long type, some data*/
                                                                  /*      repeat as necessary*/
  };
  typedef struct QTSSampleDescription     QTSSampleDescription;
  typedef QTSSampleDescription *          QTSSampleDescriptionPtr;
  typedef QTSSampleDescriptionPtr *       QTSSampleDescriptionHandle;
  enum {
      kQTSSampleDescriptionVersion1 = 1L
  };
  
  enum {
      kQTSDefaultMediaTimeScale   = 600L
  };
  
  /* sample description flags*/
  enum {
      kQTSSampleDescPassSampleDataAsHandleFlag = 0x00000001
  };
  
  /*============================================================================
          Stream Media Handler
  ============================================================================*/
  /*-----------------------------------------
      Info Selectors
  -----------------------------------------*/
  /* all indexes start at 1 */
  
  enum {
      kQTSMediaPresentationInfo   = FOUR_CHAR_CODE('pres'),       /* QTSMediaPresentationParams* */
      kQTSMediaNotificationInfo   = FOUR_CHAR_CODE('noti'),       /* QTSMediaNotificationParams* */
      kQTSMediaTotalDataRateInfo  = FOUR_CHAR_CODE('dtrt'),       /* UInt32*, bits/sec */
      kQTSMediaLostPercentInfo    = FOUR_CHAR_CODE('lspc'),       /* Fixed* */
      kQTSMediaNumStreamsInfo     = FOUR_CHAR_CODE('nstr'),       /* UInt32* */
      kQTSMediaIndSampleDescriptionInfo = FOUR_CHAR_CODE('isdc')  /* QTSMediaIndSampleDescriptionParams* */
  };
  
  struct QTSMediaPresentationParams {
      QTSPresentation                 presentationID;
  };
  typedef struct QTSMediaPresentationParams QTSMediaPresentationParams;
  
  struct QTSMediaNotificationParams {
      QTSNotificationUPP              notificationProc;
      void *                          notificationRefCon;
      SInt32                          flags;
  };
  typedef struct QTSMediaNotificationParams QTSMediaNotificationParams;
  
  struct QTSMediaIndSampleDescriptionParams {
      SInt32                          index;
      OSType                          returnedMediaType;
      SampleDescriptionHandle         returnedSampleDescription;
  };
  typedef struct QTSMediaIndSampleDescriptionParams QTSMediaIndSampleDescriptionParams;
  /*-----------------------------------------
      QTS Media Handler Selectors
  -----------------------------------------*/
  enum {
      kQTSMediaSetInfoSelect      = 0x0100,
      kQTSMediaGetInfoSelect      = 0x0101,
      kQTSMediaSetIndStreamInfoSelect = 0x0102,
      kQTSMediaGetIndStreamInfoSelect = 0x0103
  };
  
  /*-----------------------------------------
      QTS Media Handler functions
  -----------------------------------------*/
  EXTERN_API( ComponentResult )
  QTSMediaSetInfo                 (MediaHandler           mh,
                                   OSType                 inSelector,
                                   void *                 ioParams)                           FIVEWORDINLINE(0x2F3C, 0x0008, 0x0100, 0x7000, 0xA82A);
  
  EXTERN_API( ComponentResult )
  QTSMediaGetInfo                 (MediaHandler           mh,
                                   OSType                 inSelector,
                                   void *                 ioParams)                           FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
  
  EXTERN_API( ComponentResult )
  QTSMediaSetIndStreamInfo        (MediaHandler           mh,
                                   SInt32                 inIndex,
                                   OSType                 inSelector,
                                   void *                 ioParams)                           FIVEWORDINLINE(0x2F3C, 0x000C, 0x0102, 0x7000, 0xA82A);
  
  EXTERN_API( ComponentResult )
  QTSMediaGetIndStreamInfo        (MediaHandler           mh,
                                   SInt32                 inIndex,
                                   OSType                 inSelector,
                                   void *                 ioParams)                           FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
  
  /*============================================================================
          Hint Media Handler
  ============================================================================*/
  enum {
      kQTSHintMediaType           = FOUR_CHAR_CODE('hint')
  };
  
  enum {
      kQTSHintTrackReference      = FOUR_CHAR_CODE('hint')
  };
  
  /* MixedMode ProcInfo constants for component calls */
  enum {
      uppQTSMediaSetInfoProcInfo                 = 0x00000FF0,
      uppQTSMediaGetInfoProcInfo                 = 0x00000FF0,
      uppQTSMediaSetIndStreamInfoProcInfo        = 0x00003FF0,
      uppQTSMediaGetIndStreamInfoProcInfo        = 0x00003FF0
  };
  
  if PRAGMA_STRUCT_ALIGN
      #pragma options align=reset
  #elif PRAGMA_STRUCT_PACKPUSH
      #pragma pack(pop)
  #elif PRAGMA_STRUCT_PACK
      #pragma pack()
  endif
  
  ifdef PRAGMA_IMPORT_OFF
  #pragma import off
  #elif PRAGMA_IMPORT
  #pragma import reset
  endif
  
  ifdef __cplusplus
  }
  endif
  
  endif /* __QTSMOVIE__ */
  
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.