source-engine/common/quicktime_win32/QTSMovie.h

252 lines
6.7 KiB
C
Raw Permalink Normal View History

2020-04-22 16:56:21 +00:00
/*
File: QTSMovie.h
Contains: QuickTime Interfaces.
Version: QuickTime 7.3
Copyright: (c) 2007 (c) 1990-2007 by Apple 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
/* QuickTime is not available to 64-bit clients */
#if !__LP64__
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
-----------------------------------------*/
/*
* QTSMediaSetInfo()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API( ComponentResult )
QTSMediaSetInfo(
MediaHandler mh,
OSType inSelector,
void * ioParams) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0100, 0x7000, 0xA82A);
/*
* QTSMediaGetInfo()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API( ComponentResult )
QTSMediaGetInfo(
MediaHandler mh,
OSType inSelector,
void * ioParams) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
/*
* QTSMediaSetIndStreamInfo()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
EXTERN_API( ComponentResult )
QTSMediaSetIndStreamInfo(
MediaHandler mh,
SInt32 inIndex,
OSType inSelector,
void * ioParams) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0102, 0x7000, 0xA82A);
/*
* QTSMediaGetIndStreamInfo()
*
* Availability:
* Non-Carbon CFM: in QTStreamLib 4.0 and later
* CarbonLib: in CarbonLib 1.1 and later
* Mac OS X: in version 10.0 and later
* Windows: in QTSClient.lib 4.0 and later
*/
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
};
#endif // !__LP64__
#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__ */