You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2606 lines
86 KiB
2606 lines
86 KiB
/* |
|
File: QTStreamingComponents.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 __QTSTREAMINGCOMPONENTS__ |
|
#define __QTSTREAMINGCOMPONENTS__ |
|
|
|
#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__ |
|
|
|
/*============================================================================ |
|
Stream Sourcer |
|
============================================================================*/ |
|
enum { |
|
kQTSSourcerType = FOUR_CHAR_CODE('srcr') |
|
}; |
|
|
|
typedef ComponentInstance QTSSourcer; |
|
enum { |
|
kQTSSGChannelSourcerType = FOUR_CHAR_CODE('sgch'), |
|
kQTSMovieTrackSourcerType = FOUR_CHAR_CODE('trak'), |
|
kQTSPushDataSourcerType = FOUR_CHAR_CODE('push') |
|
}; |
|
|
|
/* flags for sourcer data */ |
|
enum { |
|
kQTSSourcerDataFlag_SyncSample = 0x00000001, |
|
kQTSPushDataSourcerFlag_SampleTimeIsValid = (long)0x80000000 |
|
}; |
|
|
|
|
|
enum { |
|
kQTSSourcerInitParamsVersion1 = 1 |
|
}; |
|
|
|
struct QTSSourcerInitParams { |
|
SInt32 version; |
|
SInt32 flags; |
|
OSType dataType; |
|
void * data; |
|
UInt32 dataLength; |
|
}; |
|
typedef struct QTSSourcerInitParams QTSSourcerInitParams; |
|
/* |
|
* QTSNewSourcer() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( OSErr ) |
|
QTSNewSourcer( |
|
void * params, |
|
const QTSSourcerInitParams * inInitParams, |
|
SInt32 inFlags, |
|
ComponentInstance * outSourcer); |
|
|
|
|
|
/* info selectors for sourcers - get and set */ |
|
enum { |
|
kQTSInfo_Track = FOUR_CHAR_CODE('trak'), /* QTSTrackParams* */ |
|
kQTSInfo_Loop = FOUR_CHAR_CODE('loop'), /* QTSLoopParams* */ |
|
kQTSInfo_SourcerTiming = FOUR_CHAR_CODE('stim'), /* QTSSourcerTimingParams* */ |
|
kQTSInfo_TargetFrameRate = FOUR_CHAR_CODE('tfps'), /* Fixed * in frames per second */ |
|
kQTSInfo_PushData = FOUR_CHAR_CODE('push'), /* QTSPushDataParams* */ |
|
kQTSInfo_SourcerCallbackProc = FOUR_CHAR_CODE('scbp'), /* QTSSourcerCallbackProcParams* */ |
|
kQTSInfo_TargetDataRate = FOUR_CHAR_CODE('tdrt'), /* UInt32 * in bytes per second */ |
|
kQTSInfo_AudioAutoGainOnOff = FOUR_CHAR_CODE('agc '), /* Boolean* - error if unavailable*/ |
|
kQTSInfo_AudioGain = FOUR_CHAR_CODE('gain'), /* Fixed* kFixed1 is unity gain */ |
|
kQTSInfo_CroppedInputRect = FOUR_CHAR_CODE('crpr'), /* Rect* - defined relative to kQTSInfo_FullInputRect below */ |
|
kQTSInfo_SpatialSettings = FOUR_CHAR_CODE('sptl'), /* pointer to SCSpatialSettings struct*/ |
|
kQTSInfo_TemporalSettings = FOUR_CHAR_CODE('tprl'), /* pointer to SCTemporalSettings struct*/ |
|
kQTSInfo_DataRateSettings = FOUR_CHAR_CODE('drat'), /* pointer to SCDataRateSettings struct*/ |
|
kQTSInfo_CodecFlags = FOUR_CHAR_CODE('cflg'), /* pointer to CodecFlags*/ |
|
kQTSInfo_CodecSettings = FOUR_CHAR_CODE('cdec'), /* pointer to Handle*/ |
|
kQTSInfo_ForceKeyValue = FOUR_CHAR_CODE('ksim'), /* pointer to long*/ |
|
kQTSInfo_SoundSampleRate = FOUR_CHAR_CODE('ssrt'), /* pointer to UnsignedFixed*/ |
|
kQTSInfo_SoundSampleSize = FOUR_CHAR_CODE('ssss'), /* pointer to short*/ |
|
kQTSInfo_SoundChannelCount = FOUR_CHAR_CODE('sscc'), /* pointer to short*/ |
|
kQTSInfo_SoundCompression = FOUR_CHAR_CODE('ssct'), /* pointer to OSType*/ |
|
kQTSInfo_CompressionList = FOUR_CHAR_CODE('ctyl'), /* pointer to OSType Handle*/ |
|
kQTSInfo_VideoHue = FOUR_CHAR_CODE('hue '), /* UInt16* */ |
|
kQTSInfo_VideoSaturation = FOUR_CHAR_CODE('satr'), /* UInt16* */ |
|
kQTSInfo_VideoContrast = FOUR_CHAR_CODE('trst'), /* UInt16* */ |
|
kQTSInfo_VideoBrightness = FOUR_CHAR_CODE('brit'), /* UInt16* */ |
|
kQTSInfo_VideoSharpness = FOUR_CHAR_CODE('shrp'), /* UInt16* */ |
|
kQTSInfo_TimeScale = FOUR_CHAR_CODE('scal'), /* UInt32* */ |
|
kQTSInfo_SGChannelDeviceName = FOUR_CHAR_CODE('innm'), /* Handle* */ |
|
kQTSInfo_SGChannelDeviceList = FOUR_CHAR_CODE('srdl'), /* SGDeviceList* */ |
|
kQTSInfo_SGChannelDeviceInput = FOUR_CHAR_CODE('sdii'), /* short* */ |
|
kQTSInfo_SGChannelSettings = FOUR_CHAR_CODE('sesg'), /* QTSSGChannelSettingsParams */ |
|
kQTSInfo_PreviewWhileRecordingMode = FOUR_CHAR_CODE('srpr'), /* Boolean* */ |
|
kQTSInfo_CompressionParams = FOUR_CHAR_CODE('sccp') /* QTAtomContainer* */ |
|
}; |
|
|
|
/* info selectors for sourcers - get only*/ |
|
enum { |
|
kQTSInfo_SGChannel = FOUR_CHAR_CODE('sgch'), /* SGChannel* */ |
|
kQTSInfo_SGChannelInputName = FOUR_CHAR_CODE('srnm'), /* Handle* */ |
|
kQTSInfo_FullInputRect = FOUR_CHAR_CODE('fulr') /* Rect* */ |
|
}; |
|
|
|
/* loop flags */ |
|
enum { |
|
kQTSLoopFlag_Loop = 0x00000001 |
|
}; |
|
|
|
enum { |
|
kQTSLoopParamsVersion1 = 1 |
|
}; |
|
|
|
struct QTSLoopParams { |
|
SInt32 version; |
|
SInt32 flags; |
|
SInt32 loopFlags; |
|
SInt32 flagsMask; |
|
SInt32 numLoops; |
|
}; |
|
typedef struct QTSLoopParams QTSLoopParams; |
|
enum { |
|
kQTSTrackParamsVersion1 = 1 |
|
}; |
|
|
|
struct QTSTrackParams { |
|
SInt32 version; |
|
SInt32 flags; |
|
Track track; |
|
TimeValue64 trackStartOffset; /* to start other than at the beginning otherwise set to 0*/ |
|
TimeValue64 duration; /* to limit the duration otherwise set to 0*/ |
|
QTSLoopParams * loopParams; /* set to NULL if not using; default is no looping */ |
|
}; |
|
typedef struct QTSTrackParams QTSTrackParams; |
|
enum { |
|
kQTSSourcerTimingParamsVersion1 = 1 |
|
}; |
|
|
|
struct QTSSourcerTimingParams { |
|
SInt32 version; |
|
SInt32 flags; |
|
TimeScale timeScale; |
|
TimeValue64 presentationStartTime; |
|
TimeValue64 presentationEndTime; |
|
TimeValue64 presentationCurrentTime; |
|
TimeValue64 localStartTime; |
|
TimeValue64 localEndTime; |
|
TimeValue64 localCurrentTime; |
|
}; |
|
typedef struct QTSSourcerTimingParams QTSSourcerTimingParams; |
|
enum { |
|
kQTSPushDataParamsVersion1 = 1 |
|
}; |
|
|
|
enum { |
|
kQTSPushDataFlag_SampleTimeIsValid = 0x00000001, |
|
kQTSPushDataFlag_DurationIsValid = 0x00000002 |
|
}; |
|
|
|
struct QTSPushDataParams { |
|
SInt32 version; |
|
SInt32 flags; |
|
SampleDescriptionHandle sampleDescription; /* caller owns the handle */ |
|
UInt32 sampleDescSeed; |
|
TimeValue64 sampleTime; /* also set flag if you set this */ |
|
TimeValue64 duration; /* also set flag if you set this */ |
|
UInt32 dataLength; |
|
void * dataPtr; /* this does not have to be a real macintosh Ptr */ |
|
}; |
|
typedef struct QTSPushDataParams QTSPushDataParams; |
|
enum { |
|
kQTSSourcerCallbackProcParamsVersion1 = 1 |
|
}; |
|
|
|
|
|
struct QTSSourcerCallbackProcParams { |
|
SInt32 version; |
|
SInt32 flags; |
|
QTSNotificationUPP proc; |
|
void * refCon; |
|
}; |
|
typedef struct QTSSourcerCallbackProcParams QTSSourcerCallbackProcParams; |
|
/* track sourcer callback selectors*/ |
|
enum { |
|
kQTSSourcerCallback_Done = FOUR_CHAR_CODE('done') /* QTSSourcerDoneParams* */ |
|
}; |
|
|
|
|
|
/* push data sourcer callback selectors*/ |
|
enum { |
|
kQTSPushDataSourcerCallback_HasCharacteristic = 0x050D, /* QTSPushDataHasCharacteristicParams* */ |
|
kQTSPushDataSourcerCallback_SetInfo = 0x0507, /* QTSPushDataInfoParams* */ |
|
kQTSPushDataSourcerCallback_GetInfo = 0x0508 /* QTSPushDataInfoParams* */ |
|
}; |
|
|
|
struct QTSPushDataHasCharacteristicParams { |
|
SInt32 version; |
|
SInt32 flags; |
|
OSType characteristic; |
|
Boolean returnedHasIt; |
|
char reserved1; |
|
char reserved2; |
|
char reserved3; |
|
}; |
|
typedef struct QTSPushDataHasCharacteristicParams QTSPushDataHasCharacteristicParams; |
|
struct QTSPushDataInfoParams { |
|
SInt32 version; |
|
SInt32 flags; |
|
OSType selector; |
|
void * ioParams; |
|
}; |
|
typedef struct QTSPushDataInfoParams QTSPushDataInfoParams; |
|
enum { |
|
kQTSSourcerDoneParamsVersion1 = 1 |
|
}; |
|
|
|
struct QTSSourcerDoneParams { |
|
SInt32 version; |
|
SInt32 flags; |
|
ComponentInstance sourcer; |
|
}; |
|
typedef struct QTSSourcerDoneParams QTSSourcerDoneParams; |
|
struct QTSSGChannelSettingsParams { |
|
UserData settings; |
|
SInt32 flags; |
|
}; |
|
typedef struct QTSSGChannelSettingsParams QTSSGChannelSettingsParams; |
|
|
|
/*----------------------------------------- |
|
Stream Sourcer Selectors |
|
-----------------------------------------*/ |
|
enum { |
|
kQTSSourcerInitializeSelect = 0x0500, |
|
kQTSSourcerSetEnableSelect = 0x0503, |
|
kQTSSourcerGetEnableSelect = 0x0504, |
|
kQTSSourcerSetInfoSelect = 0x0507, |
|
kQTSSourcerGetInfoSelect = 0x0508, |
|
kQTSSourcerSetTimeScaleSelect = 0x050E, |
|
kQTSSourcerGetTimeScaleSelect = 0x050F, |
|
kQTSSourcerIdleSelect = 0x0516 |
|
}; |
|
|
|
/*----------------------------------------- |
|
Stream Sourcer Prototypes |
|
-----------------------------------------*/ |
|
/* |
|
* QTSSourcerInitialize() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0.1 and later |
|
* CarbonLib: in CarbonLib 1.6 and later |
|
* Mac OS X: in version 10.1 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
QTSSourcerInitialize( |
|
QTSSourcer inSourcer, |
|
const QTSSourcerInitParams * inInitParams) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0500, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* QTSSourcerIdle() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
QTSSourcerIdle( |
|
QTSSourcer inSourcer, |
|
const TimeValue64 * inTime, |
|
SInt32 inFlags, |
|
SInt32 * outFlags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0516, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* QTSSourcerSetEnable() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
QTSSourcerSetEnable( |
|
QTSSourcer inSourcer, |
|
Boolean inEnableMode, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0503, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* QTSSourcerGetEnable() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
QTSSourcerGetEnable( |
|
QTSSourcer inSourcer, |
|
Boolean * outEnableMode, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0504, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* QTSSourcerSetTimeScale() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
QTSSourcerSetTimeScale( |
|
QTSSourcer inSourcer, |
|
TimeScale inTimeScale) FIVEWORDINLINE(0x2F3C, 0x0004, 0x050E, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* QTSSourcerGetTimeScale() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
QTSSourcerGetTimeScale( |
|
QTSSourcer inSourcer, |
|
TimeScale * outTimeScale) FIVEWORDINLINE(0x2F3C, 0x0004, 0x050F, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* QTSSourcerSetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
QTSSourcerSetInfo( |
|
QTSSourcer inSourcer, |
|
OSType inSelector, |
|
void * ioParams) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0507, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* QTSSourcerGetInfo() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
QTSSourcerGetInfo( |
|
QTSSourcer inSourcer, |
|
OSType inSelector, |
|
void * ioParams) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0508, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
enum { |
|
kQTSInfo_InputDeviceName = FOUR_CHAR_CODE('innm'), /* Handle* */ |
|
kQTSInfo_InputSourceName = FOUR_CHAR_CODE('srnm') /* Handle* */ |
|
}; |
|
|
|
|
|
/*============================================================================ |
|
Stream Handler |
|
============================================================================*/ |
|
|
|
/* |
|
Server edits are only valid for the current chunk |
|
*/ |
|
struct SHServerEditParameters { |
|
UInt32 version; |
|
Fixed editRate; |
|
TimeValue64 dataStartTime_mediaAxis; |
|
TimeValue64 dataEndTime_mediaAxis; |
|
}; |
|
typedef struct SHServerEditParameters SHServerEditParameters; |
|
enum { |
|
kSHNoChunkDispatchFlags = 0, |
|
kSHChunkFlagSyncSample = 1 << 2, |
|
kSHChunkFlagDataLoss = 1 << 4, |
|
kSHChunkFlagExtended = 1 << 5 |
|
}; |
|
|
|
struct SHChunkRecord { |
|
UInt32 version; |
|
long reserved1; |
|
SInt32 flags; |
|
UInt32 dataSize; |
|
UInt8 * dataPtr; |
|
long reserved2; |
|
long reserved3; |
|
TimeValue64 presentationTime; |
|
|
|
long reserved4; |
|
long reserved5; |
|
const SHServerEditParameters * serverEditParameters; |
|
long reserved6; |
|
long reserved7; |
|
}; |
|
typedef struct SHChunkRecord SHChunkRecord; |
|
enum { |
|
kSHNumExtendedDataLongs = 10 |
|
}; |
|
|
|
enum { |
|
kSHExtendedChunkFlag_HasSampleCount = 1 << 0, |
|
kSHExtendedChunkFlag_HasFrameLengths = 1 << 1 |
|
}; |
|
|
|
struct SHExtendedChunkRecord { |
|
SHChunkRecord chunk; |
|
SInt32 extendedFlags; |
|
SInt32 extendedData[10]; |
|
}; |
|
typedef struct SHExtendedChunkRecord SHExtendedChunkRecord; |
|
|
|
/*============================================================================ |
|
RTP Components |
|
============================================================================*/ |
|
|
|
typedef UInt32 RTPSSRC; |
|
enum { |
|
kRTPInvalidSSRC = 0 |
|
}; |
|
|
|
|
|
/* RTP standard content encodings for audio */ |
|
enum { |
|
kRTPPayload_PCMU = 0, /* 8kHz PCM mu-law mono */ |
|
kRTPPayload_1016 = 1, /* 8kHz CELP (Fed Std 1016) mono */ |
|
kRTPPayload_G721 = 2, /* 8kHz G.721 ADPCM mono */ |
|
kRTPPayload_GSM = 3, /* 8kHz GSM mono */ |
|
kRTPPayload_G723 = 4, /* 8kHz G.723 ADPCM mono */ |
|
kRTPPayload_DVI_8 = 5, /* 8kHz Intel DVI ADPCM mono */ |
|
kRTPPayload_DVI_16 = 6, /* 16kHz Intel DVI ADPCM mono */ |
|
kRTPPayload_LPC = 7, /* 8kHz LPC */ |
|
kRTPPayload_PCMA = 8, /* 8kHz PCM a-law mono */ |
|
kRTPPayload_L16_44_2 = 10, /* 44.1kHz 16-bit linear stereo */ |
|
kRTPPayload_L16_44_1 = 11, /* 44.1kHz 16-bit linear mono */ |
|
kRTPPayload_PureVoice = 12, /* 8kHz PureVoice mono (QCELP) */ |
|
kRTPPayload_MPEGAUDIO = 14, /* MPEG I and II audio */ |
|
kRTPPayload_DVI_11 = 16, /* 11kHz Intel DVI ADPCM mono */ |
|
kRTPPayload_DVI_22 = 17 /* 22kHz Intel DVI ADPCM mono */ |
|
}; |
|
|
|
/* RTP standard content encodings for video */ |
|
enum { |
|
kRTPPayload_CELLB = 25, /* Sun CellB */ |
|
kRTPPayload_JPEG = 26, /* JPEG */ |
|
kRTPPayload_CUSEEME = 27, /* Cornell CU-SeeMe */ |
|
kRTPPayload_NV = 28, /* Xerox PARC nv */ |
|
kRTPPayload_PICWIN = 29, /* BBN Picture Window */ |
|
kRTPPayload_CPV = 30, /* Bolter CPV */ |
|
kRTPPayload_H261 = 31, /* CCITT H.261 */ |
|
kRTPPayload_MPEGVIDEO = 32, /* MPEG I and II video */ |
|
kRTPPayload_H263 = 34 /* CCITT H.263 */ |
|
}; |
|
|
|
/* Other RTP standard content encodings */ |
|
enum { |
|
kRTPPayload_MPEG2T = 33 /* MPEG 2 Transport */ |
|
}; |
|
|
|
/* Dynamic encodings */ |
|
enum { |
|
kRTPPayload_FirstDynamic = 96, |
|
kRTPPayload_LastDynamic = 127, |
|
kRTPPayload_Unknown = 0xFF |
|
}; |
|
|
|
|
|
|
|
/* |
|
----------------------------------------- |
|
RTP Info selectors |
|
----------------------------------------- |
|
*/ |
|
/* ----- these are get and set ----- */ |
|
enum { |
|
kRTPInfo_SSRC = FOUR_CHAR_CODE('ssrc'), /* UInt32* */ |
|
kRTPInfo_NextSeqNum = FOUR_CHAR_CODE('rnsn') /* UInt16* */ |
|
}; |
|
|
|
/*----------------------------------------- |
|
RTP Statistics |
|
-----------------------------------------*/ |
|
enum { |
|
kRTPTotalReceivedPktsStat = FOUR_CHAR_CODE('trcp'), |
|
kRTPTotalLostPktsStat = FOUR_CHAR_CODE('tlsp'), |
|
kRTPTotalProcessedPktsStat = FOUR_CHAR_CODE('tprp'), |
|
kRTPTotalDroppedPktsStat = FOUR_CHAR_CODE('tdrp'), |
|
kRTPBadHeaderDroppedPktsStat = FOUR_CHAR_CODE('bhdp'), |
|
kRTPOurHeaderDroppedPktsStat = FOUR_CHAR_CODE('ohdp'), |
|
kRTPNotReceivingSenderDroppedPktsStat = FOUR_CHAR_CODE('nsdp'), |
|
kRTPNotProcessingDroppedPktsStat = FOUR_CHAR_CODE('npdp'), |
|
kRTPBadSeqDroppedPktsStat = FOUR_CHAR_CODE('bsdp'), |
|
kRTPArriveTooLatePktsStat = FOUR_CHAR_CODE('artl'), |
|
kRTPWaitForSeqDroppedPktsStat = FOUR_CHAR_CODE('wsdp'), |
|
kRTPBadStateDroppedPktsStat = FOUR_CHAR_CODE('stdp'), |
|
kRTPBadPayloadDroppedPktsStat = FOUR_CHAR_CODE('bpdp'), |
|
kRTPNoTimeScaleDroppedPktsStat = FOUR_CHAR_CODE('ntdp'), |
|
kRTPDupSeqNumDroppedPktsStat = FOUR_CHAR_CODE('dsdp'), |
|
kRTPLostPktsPercentStat = FOUR_CHAR_CODE('lspp'), |
|
kRTPDroppedPktsPercentStat = FOUR_CHAR_CODE('dppp'), |
|
kRTPTotalUnprocessedPktsPercentStat = FOUR_CHAR_CODE('tupp'), |
|
kRTPRTCPDataRateStat = FOUR_CHAR_CODE('rrcd'), |
|
kRTPPayloadIDStat = FOUR_CHAR_CODE('rpid'), |
|
kRTPPayloadNameStat = FOUR_CHAR_CODE('rpnm'), |
|
kRTPNumPktsInQueueStat = FOUR_CHAR_CODE('rnpq'), |
|
kRTPTotalPktsInQueueStat = FOUR_CHAR_CODE('rtpq'), |
|
kRTPTotalOutOfOrderPktsStat = FOUR_CHAR_CODE('rtoo'), |
|
kRTPRetransmissionStat = FOUR_CHAR_CODE('rrtx') |
|
}; |
|
|
|
|
|
/*----------------------------------------- |
|
Payload Info |
|
-----------------------------------------*/ |
|
enum { |
|
kRTPPayloadSpeedTag = FOUR_CHAR_CODE('sped'), /* 0-255, 255 is fastest*/ |
|
kRTPPayloadLossRecoveryTag = FOUR_CHAR_CODE('loss'), /* 0-255, 0 can't handle any loss, 128 can handle 50% packet loss*/ |
|
kRTPPayloadConformanceTag = FOUR_CHAR_CODE('conf') /* more than one of these can be present*/ |
|
}; |
|
|
|
struct RTPPayloadCharacteristic { |
|
OSType tag; |
|
long value; |
|
}; |
|
typedef struct RTPPayloadCharacteristic RTPPayloadCharacteristic; |
|
/* |
|
pass RTPPayloadSortRequest to QTSFindMediaPacketizer or QTSFindMediaPacketizerForTrack. |
|
define the characteristics to sort by. tag is key to sort on. value is positive for ascending |
|
sort (low value first), negative for descending sort (high value first). |
|
*/ |
|
struct RTPPayloadSortRequest { |
|
long characteristicCount; |
|
RTPPayloadCharacteristic characteristic[1]; /* tag is key to sort on, value is + for ascending, - for descending*/ |
|
}; |
|
typedef struct RTPPayloadSortRequest RTPPayloadSortRequest; |
|
typedef RTPPayloadSortRequest * RTPPayloadSortRequestPtr; |
|
/* flags for RTPPayloadInfo */ |
|
enum { |
|
kRTPPayloadTypeStaticFlag = 0x00000001, |
|
kRTPPayloadTypeDynamicFlag = 0x00000002 |
|
}; |
|
|
|
struct RTPPayloadInfo { |
|
long payloadFlags; |
|
UInt8 payloadID; |
|
char reserved1; |
|
char reserved2; |
|
char reserved3; |
|
char payloadName[1]; |
|
}; |
|
typedef struct RTPPayloadInfo RTPPayloadInfo; |
|
typedef RTPPayloadInfo * RTPPayloadInfoPtr; |
|
typedef RTPPayloadInfoPtr * RTPPayloadInfoHandle; |
|
/*============================================================================ |
|
RTP Reassembler |
|
============================================================================*/ |
|
typedef ComponentInstance RTPReassembler; |
|
enum { |
|
kRTPReassemblerType = FOUR_CHAR_CODE('rtpr') |
|
}; |
|
|
|
enum { |
|
kRTPBaseReassemblerType = FOUR_CHAR_CODE('gnrc'), |
|
kRTP261ReassemblerType = FOUR_CHAR_CODE('h261'), |
|
kRTP263ReassemblerType = FOUR_CHAR_CODE('h263'), |
|
kRTP263PlusReassemblerType = FOUR_CHAR_CODE('263+'), |
|
kRTPAudioReassemblerType = FOUR_CHAR_CODE('soun'), |
|
kRTPQTReassemblerType = FOUR_CHAR_CODE('qtim'), |
|
kRTPPureVoiceReassemblerType = FOUR_CHAR_CODE('Qclp'), |
|
kRTPJPEGReassemblerType = FOUR_CHAR_CODE('jpeg'), |
|
kRTPQDesign2ReassemblerType = FOUR_CHAR_CODE('QDM2'), |
|
kRTPSorensonReassemblerType = FOUR_CHAR_CODE('SVQ1'), |
|
kRTPMP3ReassemblerType = FOUR_CHAR_CODE('mp3 '), |
|
kRTPMPEG4AudioReassemblerType = FOUR_CHAR_CODE('mp4a'), |
|
kRTPMPEG4VideoReassemblerType = FOUR_CHAR_CODE('mp4v'), |
|
kRTPAMRReassemblerType = FOUR_CHAR_CODE('amr ') |
|
}; |
|
|
|
struct RTPRssmInitParams { |
|
RTPSSRC ssrc; |
|
UInt8 payloadType; |
|
UInt8 reserved1; |
|
UInt8 reserved2; |
|
UInt8 reserved3; |
|
TimeBase timeBase; |
|
TimeScale timeScale; |
|
}; |
|
typedef struct RTPRssmInitParams RTPRssmInitParams; |
|
struct RTPDescParams { |
|
QTAtomContainer container; |
|
QTAtom presentationParentAtom; |
|
QTAtom streamParentAtom; |
|
}; |
|
typedef struct RTPDescParams RTPDescParams; |
|
struct RTPRssmMoreInitParams { |
|
RTPRssmInitParams initParams; |
|
SInt32 version; |
|
RTPDescParams desc; |
|
}; |
|
typedef struct RTPRssmMoreInitParams RTPRssmMoreInitParams; |
|
enum { |
|
kRTPRssmMoreInitParamsVersion1 = 1 |
|
}; |
|
|
|
|
|
/* get/set info selectors*/ |
|
enum { |
|
kRTPRssmInfo_MoreInitParams = FOUR_CHAR_CODE('rrmi') |
|
}; |
|
|
|
|
|
struct RTPRssmPacket { |
|
struct RTPRssmPacket * next; |
|
struct RTPRssmPacket * prev; |
|
QTSStreamBuffer * streamBuffer; |
|
Boolean paramsFilledIn; |
|
UInt8 reserved; |
|
UInt16 sequenceNum; |
|
UInt32 transportHeaderLength; /* filled in by base*/ |
|
UInt32 payloadHeaderLength; /* derived adjusts this */ |
|
UInt32 dataLength; |
|
SHServerEditParameters serverEditParams; |
|
TimeValue64 timeStamp; /* lower 32 bits is original rtp timestamp*/ |
|
SInt32 chunkFlags; /* these are or'd together*/ |
|
SInt32 flags; |
|
|
|
}; |
|
typedef struct RTPRssmPacket RTPRssmPacket; |
|
/* flags for RTPRssmPacket struct*/ |
|
enum { |
|
kRTPRssmPacketHasMarkerBitSet = 0x00000001, |
|
kRTPRssmPacketHasServerEditFlag = 0x00010000 |
|
}; |
|
|
|
/* flags for RTPRssmSendStreamBufferRange*/ |
|
enum { |
|
kRTPRssmCanRefStreamBuffer = 0x00000001 |
|
}; |
|
|
|
/* flags for RTPRssmSendPacketList*/ |
|
enum { |
|
kRTPRssmLostSomePackets = 0x00000001 |
|
}; |
|
|
|
/* flags for RTPRssmSetFlags*/ |
|
enum { |
|
kRTPRssmEveryPacketAChunkFlag = 0x00000001, |
|
kRTPRssmQueueAndUseMarkerBitFlag = 0x00000002, |
|
kRTPRssmTrackLostPacketsFlag = 0x00010000, |
|
kRTPRssmNoReorderingRequiredFlag = 0x00020000 |
|
}; |
|
|
|
|
|
struct RTPSendStreamBufferRangeParams { |
|
QTSStreamBuffer * streamBuffer; |
|
TimeValue64 presentationTime; |
|
UInt32 chunkStartPosition; |
|
UInt32 numDataBytes; |
|
SInt32 chunkFlags; |
|
SInt32 flags; |
|
const SHServerEditParameters * serverEditParams; /* NULL if no edit*/ |
|
}; |
|
typedef struct RTPSendStreamBufferRangeParams RTPSendStreamBufferRangeParams; |
|
/* characteristics*/ |
|
enum { |
|
kRTPCharacteristic_RequiresOrderedPackets = FOUR_CHAR_CODE('rrop'), |
|
kRTPCharacteristic_TimeStampsNotMonoIncreasing = FOUR_CHAR_CODE('tsmi') |
|
}; |
|
|
|
|
|
enum { |
|
kRTPReassemblerInfoResType = FOUR_CHAR_CODE('rsmi') |
|
}; |
|
|
|
struct RTPReassemblerInfo { |
|
long characteristicCount; |
|
RTPPayloadCharacteristic characteristic[1]; |
|
|
|
/* after the last characteristic, the payload name (defined by the MediaPacketizerPayloadInfo*/ |
|
/* structure) is present. */ |
|
}; |
|
typedef struct RTPReassemblerInfo RTPReassemblerInfo; |
|
typedef RTPReassemblerInfo * RTPReassemblerInfoPtr; |
|
typedef RTPReassemblerInfoPtr * RTPReassemblerInfoHandle; |
|
#define RTPReassemblerInfoToPayloadInfo(_rsmi) ((RTPPayloadInfoPtr)(&((_rsmi)->characteristic[(_rsmi)->characteristicCount]))) |
|
/* RTPReassemblerInfoElement structs are padded to 32 bits */ |
|
enum { |
|
kRTPReassemblerInfoPadUpToBytes = 4 |
|
}; |
|
|
|
|
|
/* |
|
* QTSFindReassemblerForPayloadID() |
|
* |
|
* 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_C( OSErr ) |
|
QTSFindReassemblerForPayloadID( |
|
UInt8 inPayloadID, |
|
RTPPayloadSortRequest * inSortInfo, |
|
QTAtomContainer * outReassemblerList); |
|
|
|
|
|
/* |
|
* QTSFindReassemblerForPayloadName() |
|
* |
|
* 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_C( OSErr ) |
|
QTSFindReassemblerForPayloadName( |
|
const char * inPayloadName, |
|
RTPPayloadSortRequest * inSortInfo, |
|
QTAtomContainer * outReassemblerList); |
|
|
|
|
|
/*----------------------------------------- |
|
RTP Reassembler Selectors |
|
-----------------------------------------*/ |
|
enum { |
|
kRTPRssmSetCapabilitiesSelect = 0x0100, |
|
kRTPRssmGetCapabilitiesSelect = 0x0101, |
|
kRTPRssmSetPayloadHeaderLengthSelect = 0x0102, |
|
kRTPRssmGetPayloadHeaderLengthSelect = 0x0103, |
|
kRTPRssmSetTimeScaleSelect = 0x0104, |
|
kRTPRssmGetTimeScaleSelect = 0x0105, |
|
kRTPRssmNewStreamHandlerSelect = 0x0106, |
|
kRTPRssmSetStreamHandlerSelect = 0x0107, |
|
kRTPRssmGetStreamHandlerSelect = 0x0108, |
|
kRTPRssmSendStreamHandlerChangedSelect = 0x0109, |
|
kRTPRssmSetSampleDescriptionSelect = 0x010A, |
|
kRTPRssmGetChunkAndIncrRefCountSelect = 0x010D, |
|
kRTPRssmSendChunkAndDecrRefCountSelect = 0x010E, |
|
kRTPRssmSendLostChunkSelect = 0x010F, |
|
kRTPRssmSendStreamBufferRangeSelect = 0x0110, |
|
kRTPRssmClearCachedPackets = 0x0111, |
|
kRTPRssmFillPacketListParamsSelect = 0x0113, |
|
kRTPRssmReleasePacketListSelect = 0x0114, |
|
kRTPRssmIncrChunkRefCountSelect = 0x0115, |
|
kRTPRssmDecrChunkRefCountSelect = 0x0116, |
|
kRTPRssmGetExtChunkAndIncrRefCountSelect = 0x0117, |
|
kRTPRssmInitializeSelect = 0x0500, |
|
kRTPRssmHandleNewPacketSelect = 0x0501, |
|
kRTPRssmComputeChunkSizeSelect = 0x0502, |
|
kRTPRssmAdjustPacketParamsSelect = 0x0503, |
|
kRTPRssmCopyDataToChunkSelect = 0x0504, |
|
kRTPRssmSendPacketListSelect = 0x0505, |
|
kRTPRssmGetTimeScaleFromPacketSelect = 0x0506, |
|
kRTPRssmSetInfoSelect = 0x0509, |
|
kRTPRssmGetInfoSelect = 0x050A, |
|
kRTPRssmHasCharacteristicSelect = 0x050B, |
|
kRTPRssmResetSelect = 0x050C |
|
}; |
|
|
|
/*----------------------------------------- |
|
RTP Reassembler functions - base to derived |
|
-----------------------------------------*/ |
|
|
|
/* |
|
* RTPRssmInitialize() |
|
* |
|
* 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 ) |
|
RTPRssmInitialize( |
|
RTPReassembler rtpr, |
|
RTPRssmInitParams * inInitParams) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0500, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmHandleNewPacket() |
|
* |
|
* 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 ) |
|
RTPRssmHandleNewPacket( |
|
RTPReassembler rtpr, |
|
QTSStreamBuffer * inStreamBuffer, |
|
SInt32 inNumWraparounds) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0501, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmComputeChunkSize() |
|
* |
|
* 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 ) |
|
RTPRssmComputeChunkSize( |
|
RTPReassembler rtpr, |
|
RTPRssmPacket * inPacketListHead, |
|
SInt32 inFlags, |
|
UInt32 * outChunkDataSize) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0502, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmAdjustPacketParams() |
|
* |
|
* 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 ) |
|
RTPRssmAdjustPacketParams( |
|
RTPReassembler rtpr, |
|
RTPRssmPacket * inPacket, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0503, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmCopyDataToChunk() |
|
* |
|
* 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 ) |
|
RTPRssmCopyDataToChunk( |
|
RTPReassembler rtpr, |
|
RTPRssmPacket * inPacketListHead, |
|
UInt32 inMaxChunkDataSize, |
|
SHChunkRecord * inChunk, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0504, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmSendPacketList() |
|
* |
|
* 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 ) |
|
RTPRssmSendPacketList( |
|
RTPReassembler rtpr, |
|
RTPRssmPacket * inPacketListHead, |
|
const TimeValue64 * inLastChunkPresentationTime, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0505, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmGetTimeScaleFromPacket() |
|
* |
|
* 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 ) |
|
RTPRssmGetTimeScaleFromPacket( |
|
RTPReassembler rtpr, |
|
QTSStreamBuffer * inStreamBuffer, |
|
TimeScale * outTimeScale) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0506, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmSetInfo() |
|
* |
|
* 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 ) |
|
RTPRssmSetInfo( |
|
RTPReassembler rtpr, |
|
OSType inSelector, |
|
void * ioParams) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0509, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmGetInfo() |
|
* |
|
* 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 ) |
|
RTPRssmGetInfo( |
|
RTPReassembler rtpr, |
|
OSType inSelector, |
|
void * ioParams) FIVEWORDINLINE(0x2F3C, 0x0008, 0x050A, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmHasCharacteristic() |
|
* |
|
* 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 ) |
|
RTPRssmHasCharacteristic( |
|
RTPReassembler rtpr, |
|
OSType inCharacteristic, |
|
Boolean * outHasIt) FIVEWORDINLINE(0x2F3C, 0x0008, 0x050B, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmReset() |
|
* |
|
* 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 ) |
|
RTPRssmReset( |
|
RTPReassembler rtpr, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x050C, 0x7000, 0xA82A); |
|
|
|
|
|
/*----------------------------------------- |
|
RTP Reassembler functions - derived to base |
|
-----------------------------------------*/ |
|
/* ----- setup*/ |
|
/* |
|
* RTPRssmSetCapabilities() |
|
* |
|
* 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 ) |
|
RTPRssmSetCapabilities( |
|
RTPReassembler rtpr, |
|
SInt32 inFlags, |
|
SInt32 inFlagsMask) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0100, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmGetCapabilities() |
|
* |
|
* 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 ) |
|
RTPRssmGetCapabilities( |
|
RTPReassembler rtpr, |
|
SInt32 * outFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmSetPayloadHeaderLength() |
|
* |
|
* 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 ) |
|
RTPRssmSetPayloadHeaderLength( |
|
RTPReassembler rtpr, |
|
UInt32 inPayloadHeaderLength) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmGetPayloadHeaderLength() |
|
* |
|
* 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 ) |
|
RTPRssmGetPayloadHeaderLength( |
|
RTPReassembler rtpr, |
|
UInt32 * outPayloadHeaderLength) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmSetTimeScale() |
|
* |
|
* 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 ) |
|
RTPRssmSetTimeScale( |
|
RTPReassembler rtpr, |
|
TimeScale inSHTimeScale) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmGetTimeScale() |
|
* |
|
* 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 ) |
|
RTPRssmGetTimeScale( |
|
RTPReassembler rtpr, |
|
TimeScale * outSHTimeScale) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmNewStreamHandler() |
|
* |
|
* 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 ) |
|
RTPRssmNewStreamHandler( |
|
RTPReassembler rtpr, |
|
OSType inSHType, |
|
SampleDescriptionHandle inSampleDescription, |
|
TimeScale inSHTimeScale, |
|
ComponentInstance * outHandler) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0106, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmSetStreamHandler() |
|
* |
|
* 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 ) |
|
RTPRssmSetStreamHandler( |
|
RTPReassembler rtpr, |
|
ComponentInstance inStreamHandler) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmGetStreamHandler() |
|
* |
|
* 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 ) |
|
RTPRssmGetStreamHandler( |
|
RTPReassembler rtpr, |
|
ComponentInstance * outStreamHandler) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
/* |
|
* RTPRssmSendStreamHandlerChanged() |
|
* |
|
* 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 ) |
|
RTPRssmSendStreamHandlerChanged(RTPReassembler rtpr) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0109, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmSetSampleDescription() |
|
* |
|
* 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 ) |
|
RTPRssmSetSampleDescription( |
|
RTPReassembler rtpr, |
|
SampleDescriptionHandle inSampleDescription) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A); |
|
|
|
|
|
/* ----- manually sending chunks*/ |
|
/* |
|
* RTPRssmGetChunkAndIncrRefCount() |
|
* |
|
* 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 ) |
|
RTPRssmGetChunkAndIncrRefCount( |
|
RTPReassembler rtpr, |
|
UInt32 inChunkDataSize, |
|
const TimeValue64 * inChunkPresentationTime, |
|
SHChunkRecord ** outChunk) FIVEWORDINLINE(0x2F3C, 0x000C, 0x010D, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmGetExtChunkAndIncrRefCount() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 6.0 and later |
|
* CarbonLib: in CarbonLib 1.6 and later |
|
* Mac OS X: in version 10.2 and later |
|
* Windows: in qtmlClient.lib 6.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
RTPRssmGetExtChunkAndIncrRefCount( |
|
RTPReassembler rtpr, |
|
UInt32 inChunkDataSize, |
|
const TimeValue64 * inChunkPresentationTime, |
|
SInt32 inFlags, |
|
SHExtendedChunkRecord ** outChunk) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0117, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmSendChunkAndDecrRefCount() |
|
* |
|
* 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 ) |
|
RTPRssmSendChunkAndDecrRefCount( |
|
RTPReassembler rtpr, |
|
SHChunkRecord * inChunk, |
|
const SHServerEditParameters * inServerEdit) FIVEWORDINLINE(0x2F3C, 0x0008, 0x010E, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmSendLostChunk() |
|
* |
|
* 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 ) |
|
RTPRssmSendLostChunk( |
|
RTPReassembler rtpr, |
|
const TimeValue64 * inChunkPresentationTime) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010F, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmSendStreamBufferRange() |
|
* |
|
* 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 ) |
|
RTPRssmSendStreamBufferRange( |
|
RTPReassembler rtpr, |
|
RTPSendStreamBufferRangeParams * inParams) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0110, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmClearCachedPackets() |
|
* |
|
* 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 ) |
|
RTPRssmClearCachedPackets( |
|
RTPReassembler rtpr, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0111, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmFillPacketListParams() |
|
* |
|
* 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 ) |
|
RTPRssmFillPacketListParams( |
|
RTPReassembler rtpr, |
|
RTPRssmPacket * inPacketListHead, |
|
SInt32 inNumWraparounds, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0113, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmReleasePacketList() |
|
* |
|
* 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 ) |
|
RTPRssmReleasePacketList( |
|
RTPReassembler rtpr, |
|
RTPRssmPacket * inPacketListHead) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0114, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmIncrChunkRefCount() |
|
* |
|
* 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 ) |
|
RTPRssmIncrChunkRefCount( |
|
RTPReassembler rtpr, |
|
SHChunkRecord * inChunk) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0115, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPRssmDecrChunkRefCount() |
|
* |
|
* 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 ) |
|
RTPRssmDecrChunkRefCount( |
|
RTPReassembler rtpr, |
|
SHChunkRecord * inChunk) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0116, 0x7000, 0xA82A); |
|
|
|
|
|
/*============================================================================ |
|
RTP Media Packetizer |
|
============================================================================*/ |
|
enum { |
|
kRTPMediaPacketizerType = FOUR_CHAR_CODE('rtpm') |
|
}; |
|
|
|
typedef ComponentInstance RTPMediaPacketizer; |
|
enum { |
|
kRTPBaseMediaPacketizerType = FOUR_CHAR_CODE('gnrc'), |
|
kRTP261MediaPacketizerType = FOUR_CHAR_CODE('h261'), |
|
kRTP263PlusMediaPacketizerType = FOUR_CHAR_CODE('263+'), |
|
kRTPAudioMediaPacketizerType = FOUR_CHAR_CODE('soun'), |
|
kRTPQTMediaPacketizerType = FOUR_CHAR_CODE('qtim'), |
|
kRTPPureVoiceMediaPacketizerType = FOUR_CHAR_CODE('Qclp'), |
|
kRTPJPEGMediaPacketizerType = FOUR_CHAR_CODE('jpeg'), |
|
kRTPQDesign2MediaPacketizerType = FOUR_CHAR_CODE('QDM2'), |
|
kRTPSorensonMediaPacketizerType = FOUR_CHAR_CODE('SVQ1'), |
|
kRTPMP3MediaPacketizerType = FOUR_CHAR_CODE('mp3 '), |
|
kRTPMPEG4AudioMediaPacketizerType = FOUR_CHAR_CODE('mp4a'), |
|
kRTPMPEG4VideoMediaPacketizerType = FOUR_CHAR_CODE('mp4v'), |
|
kRTPAMRMediaPacketizerType = FOUR_CHAR_CODE('amr ') |
|
}; |
|
|
|
typedef UInt32 RTPMPSampleRef; |
|
typedef CALLBACK_API( void , RTPMPDataReleaseProcPtr )(UInt8 *inData, void *inRefCon); |
|
typedef STACK_UPP_TYPE(RTPMPDataReleaseProcPtr) RTPMPDataReleaseUPP; |
|
enum { |
|
kMediaPacketizerCanPackEditRate = 1 << 0, |
|
kMediaPacketizerCanPackLayer = 1 << 1, |
|
kMediaPacketizerCanPackVolume = 1 << 2, |
|
kMediaPacketizerCanPackBalance = 1 << 3, |
|
kMediaPacketizerCanPackGraphicsMode = 1 << 4, |
|
kMediaPacketizerCanPackEmptyEdit = 1 << 5 |
|
}; |
|
|
|
|
|
struct MediaPacketizerRequirements { |
|
OSType mediaType; /* media type supported (0 for all)*/ |
|
OSType dataFormat; /* data format (e.g., compression) supported (0 for all)*/ |
|
UInt32 capabilityFlags; /* ability to handle non-standard track characteristics*/ |
|
UInt8 canPackMatrixType; /* can pack any matrix type up to this (identityMatrixType for identity only)*/ |
|
UInt8 reserved1; |
|
UInt8 reserved2; |
|
UInt8 reserved3; |
|
}; |
|
typedef struct MediaPacketizerRequirements MediaPacketizerRequirements; |
|
typedef MediaPacketizerRequirements * MediaPacketizerRequirementsPtr; |
|
struct MediaPacketizerInfo { |
|
OSType mediaType; /* media type supported (0 for all)*/ |
|
OSType dataFormat; /* data format (e.g., compression) supported (0 for all)*/ |
|
OSType vendor; /* manufacturer of this packetizer (e.g., 'appl' for Apple)*/ |
|
UInt32 capabilityFlags; /* ability to handle non-standard track characteristics*/ |
|
UInt8 canPackMatrixType; /* can pack any matrix type up to this (identityMatrixType for identity only)*/ |
|
UInt8 reserved1; |
|
UInt8 reserved2; |
|
UInt8 reserved3; |
|
long characteristicCount; |
|
RTPPayloadCharacteristic characteristic[1]; |
|
|
|
/* after the last characteristic, the payload name (defined by the RTPPayloadInfo*/ |
|
/* structure) is present. */ |
|
}; |
|
typedef struct MediaPacketizerInfo MediaPacketizerInfo; |
|
typedef MediaPacketizerInfo * MediaPacketizerInfoPtr; |
|
typedef MediaPacketizerInfoPtr * MediaPacketizerInfoHandle; |
|
#define MediaPacketizerInfoToPayloadInfo(_mpi) ((RTPPayloadInfoPtr)(&((_mpi)->characteristic[(_mpi)->characteristicCount]))) |
|
/* MediaPacketizerInfo structs are padded to 32 bits */ |
|
enum { |
|
kMediaPacketizerInfoPadUpToBytes = 4 |
|
}; |
|
|
|
enum { |
|
kRTPMediaPacketizerInfoRezType = FOUR_CHAR_CODE('pcki') |
|
}; |
|
|
|
|
|
/* |
|
* QTSFindMediaPacketizer() |
|
* |
|
* 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_C( OSErr ) |
|
QTSFindMediaPacketizer( |
|
MediaPacketizerRequirementsPtr inPacketizerinfo, |
|
SampleDescriptionHandle inSampleDescription, |
|
RTPPayloadSortRequestPtr inSortInfo, |
|
QTAtomContainer * outPacketizerList); |
|
|
|
|
|
/* |
|
* QTSFindMediaPacketizerForTrack() |
|
* |
|
* 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_C( OSErr ) |
|
QTSFindMediaPacketizerForTrack( |
|
Track inTrack, |
|
long inSampleDescriptionIndex, |
|
RTPPayloadSortRequestPtr inSortInfo, |
|
QTAtomContainer * outPacketizerList); |
|
|
|
|
|
/* |
|
* QTSFindMediaPacketizerForPayloadID() |
|
* |
|
* 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_C( OSErr ) |
|
QTSFindMediaPacketizerForPayloadID( |
|
long payloadID, |
|
RTPPayloadSortRequestPtr inSortInfo, |
|
QTAtomContainer * outPacketizerList); |
|
|
|
|
|
/* |
|
* QTSFindMediaPacketizerForPayloadName() |
|
* |
|
* 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_C( OSErr ) |
|
QTSFindMediaPacketizerForPayloadName( |
|
const char * payloadName, |
|
RTPPayloadSortRequestPtr inSortInfo, |
|
QTAtomContainer * outPacketizerList); |
|
|
|
|
|
/* flags for RTPMPInitialize*/ |
|
enum { |
|
kRTPMPRealtimeModeFlag = 0x00000001 |
|
}; |
|
|
|
/* flags for RTPMPSampleDataParams*/ |
|
enum { |
|
kRTPMPSyncSampleFlag = 0x00000001, |
|
kRTPMPRespectDurationFlag = 0x00000002 |
|
}; |
|
|
|
struct RTPMPSampleDataParams { |
|
UInt32 version; |
|
UInt32 timeStamp; |
|
UInt32 duration; /* 0 = unknown duration*/ |
|
UInt32 playOffset; |
|
Fixed playRate; |
|
SInt32 flags; |
|
UInt32 sampleDescSeed; |
|
Handle sampleDescription; |
|
RTPMPSampleRef sampleRef; |
|
UInt32 dataLength; |
|
const UInt8 * data; |
|
RTPMPDataReleaseUPP releaseProc; |
|
void * refCon; |
|
}; |
|
typedef struct RTPMPSampleDataParams RTPMPSampleDataParams; |
|
/* out flags for idle, RTPMPSetSampleData, and RTPMPFlush*/ |
|
enum { |
|
kRTPMPStillProcessingData = 0x00000001 /* not done with data you've got*/ |
|
}; |
|
|
|
struct RTPMPPayloadTypeParams { |
|
UInt32 flags; |
|
UInt32 payloadNumber; |
|
short nameLength; /* in: size of payloadName buffer (counting null terminator) -- this will be reset to needed length and paramErr returned if too small */ |
|
char * payloadName; /* caller must provide buffer */ |
|
}; |
|
typedef struct RTPMPPayloadTypeParams RTPMPPayloadTypeParams; |
|
/*----------------------------------------- |
|
RTP Media Packetizer Info selectors |
|
-----------------------------------------*/ |
|
/* info selectors - get only */ |
|
enum { |
|
kRTPMPPayloadTypeInfo = FOUR_CHAR_CODE('rtpp'), /* RTPMPPayloadTypeParams* */ |
|
kRTPMPRTPTimeScaleInfo = FOUR_CHAR_CODE('rtpt'), /* TimeScale* */ |
|
kRTPMPRequiredSampleDescriptionInfo = FOUR_CHAR_CODE('sdsc'), /* SampleDescriptionHandle* */ |
|
kRTPMPMinPayloadSize = FOUR_CHAR_CODE('mins'), /* UInt32* in bytes, does not include rtp header; default is 0 */ |
|
kRTPMPMinPacketDuration = FOUR_CHAR_CODE('mind'), /* UInt3* in milliseconds; default is no min required */ |
|
kRTPMPSuggestedRepeatPktCountInfo = FOUR_CHAR_CODE('srpc'), /* UInt32* */ |
|
kRTPMPSuggestedRepeatPktSpacingInfo = FOUR_CHAR_CODE('srps'), /* UInt32* in milliseconds */ |
|
kRTPMPMaxPartialSampleSizeInfo = FOUR_CHAR_CODE('mpss'), /* UInt32* in bytes */ |
|
kRTPMPPreferredBufferDelayInfo = FOUR_CHAR_CODE('prbd'), /* UInt32* in milliseconds */ |
|
kRTPMPPayloadNameInfo = FOUR_CHAR_CODE('name'), /* StringPtr */ |
|
kRTPInfo_FormatString = FOUR_CHAR_CODE('fmtp') /* char **, caller allocates ptr, callee disposes */ |
|
}; |
|
|
|
/*----------------------------------------- |
|
RTP Media Packetizer Characteristics |
|
-----------------------------------------*/ |
|
/* also supports relevant ones in Movies.h and QTSToolbox.h */ |
|
enum { |
|
kRTPMPNoSampleDataRequiredCharacteristic = FOUR_CHAR_CODE('nsdr'), |
|
kRTPMPHasUserSettingsDialogCharacteristic = FOUR_CHAR_CODE('sdlg'), |
|
kRTPMPPrefersReliableTransportCharacteristic = FOUR_CHAR_CODE('rely'), |
|
kRTPMPRequiresOutOfBandDimensionsCharacteristic = FOUR_CHAR_CODE('robd'), |
|
kRTPMPReadsPartialSamplesCharacteristic = FOUR_CHAR_CODE('rpsp') |
|
}; |
|
|
|
/*----------------------------------------- |
|
RTP Media Packetizer selectors |
|
-----------------------------------------*/ |
|
enum { |
|
kRTPMPInitializeSelect = 0x0500, |
|
kRTPMPPreflightMediaSelect = 0x0501, |
|
kRTPMPIdleSelect = 0x0502, |
|
kRTPMPSetSampleDataSelect = 0x0503, |
|
kRTPMPFlushSelect = 0x0504, |
|
kRTPMPResetSelect = 0x0505, |
|
kRTPMPSetInfoSelect = 0x0506, |
|
kRTPMPGetInfoSelect = 0x0507, |
|
kRTPMPSetTimeScaleSelect = 0x0508, |
|
kRTPMPGetTimeScaleSelect = 0x0509, |
|
kRTPMPSetTimeBaseSelect = 0x050A, |
|
kRTPMPGetTimeBaseSelect = 0x050B, |
|
kRTPMPHasCharacteristicSelect = 0x050C, |
|
kRTPMPSetPacketBuilderSelect = 0x050E, |
|
kRTPMPGetPacketBuilderSelect = 0x050F, |
|
kRTPMPSetMediaTypeSelect = 0x0510, |
|
kRTPMPGetMediaTypeSelect = 0x0511, |
|
kRTPMPSetMaxPacketSizeSelect = 0x0512, |
|
kRTPMPGetMaxPacketSizeSelect = 0x0513, |
|
kRTPMPSetMaxPacketDurationSelect = 0x0514, |
|
kRTPMPGetMaxPacketDurationSelect = 0x0515, /* for export component and apps who want to*/ |
|
/* access dialogs for Media-specific settings*/ |
|
/* (such as Pure Voice interleave factor)*/ |
|
kRTPMPDoUserDialogSelect = 0x0516, |
|
kRTPMPSetSettingsFromAtomContainerAtAtomSelect = 0x0517, |
|
kRTPMPGetSettingsIntoAtomContainerAtAtomSelect = 0x0518, |
|
kRTPMPGetSettingsAsTextSelect = 0x0519, |
|
kRTPMPGetSettingsSelect = 0x051C, |
|
kRTPMPSetSettingsSelect = 0x051D |
|
}; |
|
|
|
/*----------------------------------------- |
|
RTP Media Packetizer functions |
|
-----------------------------------------*/ |
|
|
|
/* |
|
* RTPMPInitialize() |
|
* |
|
* 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 ) |
|
RTPMPInitialize( |
|
RTPMediaPacketizer rtpm, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0500, 0x7000, 0xA82A); |
|
|
|
|
|
/* return noErr if you can handle this media */ |
|
/* |
|
* RTPMPPreflightMedia() |
|
* |
|
* 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 ) |
|
RTPMPPreflightMedia( |
|
RTPMediaPacketizer rtpm, |
|
OSType inMediaType, |
|
SampleDescriptionHandle inSampleDescription) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0501, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
do work here if you need to - give up time periodically |
|
if you're doing time consuming operations |
|
*/ |
|
/* |
|
* RTPMPIdle() |
|
* |
|
* 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 ) |
|
RTPMPIdle( |
|
RTPMediaPacketizer rtpm, |
|
SInt32 inFlags, |
|
SInt32 * outFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0502, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
caller owns the RTPMPSampleDataParams struct |
|
media Packetizer must copy any fields of the struct it wants to keep |
|
media Packetizer must call release proc when done with the data |
|
you can do the processing work here if it does not take up too |
|
much cpu time - otherwise do it in idle |
|
*/ |
|
/* |
|
* RTPMPSetSampleData() |
|
* |
|
* 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 ) |
|
RTPMPSetSampleData( |
|
RTPMediaPacketizer rtpm, |
|
const RTPMPSampleDataParams * inSampleData, |
|
SInt32 * outFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0503, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
send everything you have buffered - you will get idles while |
|
you set the kRTPMPStillProcessingData flag here and in idle |
|
*/ |
|
/* |
|
* RTPMPFlush() |
|
* |
|
* 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 ) |
|
RTPMPFlush( |
|
RTPMediaPacketizer rtpm, |
|
SInt32 inFlags, |
|
SInt32 * outFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0504, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
dispose of anything buffered and get rid of state |
|
do not send the buffered data (because presumably |
|
there is no connection for you to send on) |
|
state should be the same as if you were just initialized |
|
*/ |
|
/* |
|
* RTPMPReset() |
|
* |
|
* 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 ) |
|
RTPMPReset( |
|
RTPMediaPacketizer rtpm, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0505, 0x7000, 0xA82A); |
|
|
|
|
|
/*----------------------------------------- |
|
RTP Media Packetizer get / set functions |
|
-----------------------------------------*/ |
|
/* |
|
* RTPMPSetInfo() |
|
* |
|
* 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 ) |
|
RTPMPSetInfo( |
|
RTPMediaPacketizer rtpm, |
|
OSType inSelector, |
|
const void * ioParams) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0506, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPGetInfo() |
|
* |
|
* 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 ) |
|
RTPMPGetInfo( |
|
RTPMediaPacketizer rtpm, |
|
OSType inSelector, |
|
void * ioParams) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0507, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPSetTimeScale() |
|
* |
|
* 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 ) |
|
RTPMPSetTimeScale( |
|
RTPMediaPacketizer rtpm, |
|
TimeScale inTimeScale) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0508, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPGetTimeScale() |
|
* |
|
* 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 ) |
|
RTPMPGetTimeScale( |
|
RTPMediaPacketizer rtpm, |
|
TimeScale * outTimeScale) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0509, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPSetTimeBase() |
|
* |
|
* 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 ) |
|
RTPMPSetTimeBase( |
|
RTPMediaPacketizer rtpm, |
|
TimeBase inTimeBase) FIVEWORDINLINE(0x2F3C, 0x0004, 0x050A, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPGetTimeBase() |
|
* |
|
* 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 ) |
|
RTPMPGetTimeBase( |
|
RTPMediaPacketizer rtpm, |
|
TimeBase * outTimeBase) FIVEWORDINLINE(0x2F3C, 0x0004, 0x050B, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPHasCharacteristic() |
|
* |
|
* 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 ) |
|
RTPMPHasCharacteristic( |
|
RTPMediaPacketizer rtpm, |
|
OSType inSelector, |
|
Boolean * outHasIt) FIVEWORDINLINE(0x2F3C, 0x0008, 0x050C, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPSetPacketBuilder() |
|
* |
|
* 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 ) |
|
RTPMPSetPacketBuilder( |
|
RTPMediaPacketizer rtpm, |
|
ComponentInstance inPacketBuilder) FIVEWORDINLINE(0x2F3C, 0x0004, 0x050E, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPGetPacketBuilder() |
|
* |
|
* 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 ) |
|
RTPMPGetPacketBuilder( |
|
RTPMediaPacketizer rtpm, |
|
ComponentInstance * outPacketBuilder) FIVEWORDINLINE(0x2F3C, 0x0004, 0x050F, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPSetMediaType() |
|
* |
|
* 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 ) |
|
RTPMPSetMediaType( |
|
RTPMediaPacketizer rtpm, |
|
OSType inMediaType) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0510, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPGetMediaType() |
|
* |
|
* 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 ) |
|
RTPMPGetMediaType( |
|
RTPMediaPacketizer rtpm, |
|
OSType * outMediaType) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0511, 0x7000, 0xA82A); |
|
|
|
|
|
/* size is in bytes*/ |
|
/* |
|
* RTPMPSetMaxPacketSize() |
|
* |
|
* 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 ) |
|
RTPMPSetMaxPacketSize( |
|
RTPMediaPacketizer rtpm, |
|
UInt32 inMaxPacketSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0512, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPGetMaxPacketSize() |
|
* |
|
* 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 ) |
|
RTPMPGetMaxPacketSize( |
|
RTPMediaPacketizer rtpm, |
|
UInt32 * outMaxPacketSize) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0513, 0x7000, 0xA82A); |
|
|
|
|
|
/* duration is in milliseconds*/ |
|
/* |
|
* RTPMPSetMaxPacketDuration() |
|
* |
|
* 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 ) |
|
RTPMPSetMaxPacketDuration( |
|
RTPMediaPacketizer rtpm, |
|
UInt32 inMaxPacketDuration) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0514, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPGetMaxPacketDuration() |
|
* |
|
* 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 ) |
|
RTPMPGetMaxPacketDuration( |
|
RTPMediaPacketizer rtpm, |
|
UInt32 * outMaxPacketDuration) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0515, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPDoUserDialog() |
|
* |
|
* 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 ) |
|
RTPMPDoUserDialog( |
|
RTPMediaPacketizer rtpm, |
|
ModalFilterUPP inFilterUPP, |
|
Boolean * canceled) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0516, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPSetSettingsFromAtomContainerAtAtom() |
|
* |
|
* 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 ) |
|
RTPMPSetSettingsFromAtomContainerAtAtom( |
|
RTPMediaPacketizer rtpm, |
|
QTAtomContainer inContainer, |
|
QTAtom inParentAtom) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0517, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPGetSettingsIntoAtomContainerAtAtom() |
|
* |
|
* 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 ) |
|
RTPMPGetSettingsIntoAtomContainerAtAtom( |
|
RTPMediaPacketizer rtpm, |
|
QTAtomContainer inOutContainer, |
|
QTAtom inParentAtom) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0518, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPGetSettingsAsText() |
|
* |
|
* 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 ) |
|
RTPMPGetSettingsAsText( |
|
RTPMediaPacketizer rtpm, |
|
Handle * text) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0519, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
/* |
|
* RTPMPGetSettings() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in QTSClient.lib 5.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
RTPMPGetSettings( |
|
RTPMediaPacketizer rtpm, |
|
QTAtomContainer * outSettings, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x051C, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPMPSetSettings() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in QTSClient.lib 5.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
RTPMPSetSettings( |
|
RTPMediaPacketizer rtpm, |
|
QTAtomSpecPtr inSettings, |
|
SInt32 inFlags) FIVEWORDINLINE(0x2F3C, 0x0008, 0x051D, 0x7000, 0xA82A); |
|
|
|
|
|
/*============================================================================ |
|
RTP Packet Builder |
|
============================================================================*/ |
|
enum { |
|
kRTPPacketBuilderType = FOUR_CHAR_CODE('rtpb') |
|
}; |
|
|
|
|
|
typedef ComponentInstance RTPPacketBuilder; |
|
typedef struct OpaqueRTPPacketGroupRef* RTPPacketGroupRef; |
|
typedef struct OpaqueRTPPacketRef* RTPPacketRef; |
|
typedef struct OpaqueRTPPacketRepeatedDataRef* RTPPacketRepeatedDataRef; |
|
/* flags for RTPPBBegin/EndPacket, RTPPBBegin/EndPacketGroup*/ |
|
enum { |
|
kRTPPBSetMarkerFlag = 0x00000001, |
|
kRTPPBRepeatPacketFlag = 0x00000002, |
|
kRTPPBSyncSampleFlag = 0x00010000, |
|
kRTPPBBFrameFlag = 0x00020000, |
|
kRTPPBDontSendFlag = 0x10000000 /* when set in EndPacketGroup, will not add group*/ |
|
}; |
|
|
|
enum { |
|
kRTPPBUnknownPacketMediaDataLength = 0 |
|
}; |
|
|
|
/* flags for RTPPBGetSampleData*/ |
|
enum { |
|
kRTPPBEndOfDataFlag = 0x00000001 |
|
}; |
|
|
|
|
|
typedef CALLBACK_API( void , RTPPBCallbackProcPtr )(OSType inSelector, void *ioParams, void *inRefCon); |
|
typedef STACK_UPP_TYPE(RTPPBCallbackProcPtr) RTPPBCallbackUPP; |
|
/*----------------------------------------- |
|
RTP Packet Builder selectors |
|
-----------------------------------------*/ |
|
enum { |
|
kRTPPBBeginPacketGroupSelect = 0x0500, |
|
kRTPPBEndPacketGroupSelect = 0x0501, |
|
kRTPPBBeginPacketSelect = 0x0502, |
|
kRTPPBEndPacketSelect = 0x0503, |
|
kRTPPBAddPacketLiteralDataSelect = 0x0504, |
|
kRTPPBAddPacketSampleDataSelect = 0x0505, |
|
kRTPPBAddPacketRepeatedDataSelect = 0x0506, |
|
kRTPPBReleaseRepeatedDataSelect = 0x0507, |
|
kRTPPBSetPacketSequenceNumberSelect = 0x0508, |
|
kRTPPBGetPacketSequenceNumberSelect = 0x0509, |
|
kRTPPBSetCallbackSelect = 0x050A, |
|
kRTPPBGetCallbackSelect = 0x050B, |
|
kRTPPBSetInfoSelect = 0x050C, |
|
kRTPPBGetInfoSelect = 0x050D, |
|
kRTPPBSetPacketTimeStampOffsetSelect = 0x050E, |
|
kRTPPBGetPacketTimeStampOffsetSelect = 0x050F, |
|
kRTPPBAddPacketSampleData64Select = 0x0510, |
|
kRTPPBGetSampleDataSelect = 0x0511, |
|
kRTPPBAddRepeatPacketSelect = 0x0512 |
|
}; |
|
|
|
/*----------------------------------------- |
|
RTP Packet Builder functions |
|
-----------------------------------------*/ |
|
/* |
|
* RTPPBBeginPacketGroup() |
|
* |
|
* 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 ) |
|
RTPPBBeginPacketGroup( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
UInt32 inTimeStamp, |
|
RTPPacketGroupRef * outPacketGroup) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0500, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBEndPacketGroup() |
|
* |
|
* 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 ) |
|
RTPPBEndPacketGroup( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0501, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBBeginPacket() |
|
* |
|
* 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 ) |
|
RTPPBBeginPacket( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
UInt32 inPacketMediaDataLength, |
|
RTPPacketRef * outPacket) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0502, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBEndPacket() |
|
* |
|
* 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 ) |
|
RTPPBEndPacket( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
RTPPacketRef inPacket, |
|
UInt32 inTransmissionTimeOffset, |
|
UInt32 inDuration) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0503, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
non-NULL RTPPacketRepeatedDataRef means this data will be repeated later |
|
pb must return a repeated data ref |
|
*/ |
|
/* |
|
* RTPPBAddPacketLiteralData() |
|
* |
|
* 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 ) |
|
RTPPBAddPacketLiteralData( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
RTPPacketRef inPacket, |
|
UInt8 * inData, |
|
UInt32 inDataLength, |
|
RTPPacketRepeatedDataRef * outDataRef) FIVEWORDINLINE(0x2F3C, 0x0018, 0x0504, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
non-NULL RTPPacketRepeatedDataRef means this data will be repeated later |
|
pb must return a repeated data ref |
|
*/ |
|
/* |
|
* RTPPBAddPacketSampleData() |
|
* |
|
* 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 ) |
|
RTPPBAddPacketSampleData( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
RTPPacketRef inPacket, |
|
RTPMPSampleDataParams * inSampleDataParams, |
|
UInt32 inSampleOffset, |
|
UInt32 inSampleDataLength, |
|
RTPPacketRepeatedDataRef * outDataRef) FIVEWORDINLINE(0x2F3C, 0x001C, 0x0505, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
non-NULL RTPPacketRepeatedDataRef means this data will be repeated later |
|
pb must return a repeated data ref |
|
*/ |
|
/* |
|
* RTPPBAddPacketSampleData64() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in QTSClient.lib 5.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
RTPPBAddPacketSampleData64( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
RTPPacketRef inPacket, |
|
RTPMPSampleDataParams * inSampleDataParams, |
|
const UInt64 * inSampleOffset, |
|
UInt32 inSampleDataLength, |
|
RTPPacketRepeatedDataRef * outDataRef) FIVEWORDINLINE(0x2F3C, 0x001C, 0x0510, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
call to add the repeated data using the ref you got from |
|
RTPPBAddPacketLiteralData or RTPPBAddPacketSampleData |
|
*/ |
|
/* |
|
* RTPPBAddPacketRepeatedData() |
|
* |
|
* 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 ) |
|
RTPPBAddPacketRepeatedData( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
RTPPacketRef inPacket, |
|
RTPPacketRepeatedDataRef inDataRef) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0506, 0x7000, 0xA82A); |
|
|
|
|
|
/* call when done with repeated data*/ |
|
/* |
|
* RTPPBReleaseRepeatedData() |
|
* |
|
* 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 ) |
|
RTPPBReleaseRepeatedData( |
|
RTPPacketBuilder rtpb, |
|
RTPPacketRepeatedDataRef inDataRef) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0507, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
seq number is just relative seq number |
|
don't call if you don't care when seq # is used |
|
*/ |
|
/* |
|
* RTPPBSetPacketSequenceNumber() |
|
* |
|
* 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 ) |
|
RTPPBSetPacketSequenceNumber( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
RTPPacketRef inPacket, |
|
UInt32 inSequenceNumber) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0508, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBGetPacketSequenceNumber() |
|
* |
|
* 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 ) |
|
RTPPBGetPacketSequenceNumber( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
RTPPacketRef inPacket, |
|
UInt32 * outSequenceNumber) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0509, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBSetPacketTimeStampOffset() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in QTSClient.lib 5.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
RTPPBSetPacketTimeStampOffset( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
RTPPacketRef inPacket, |
|
SInt32 inTimeStampOffset) FIVEWORDINLINE(0x2F3C, 0x0010, 0x050E, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBGetPacketTimeStampOffset() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in QTSClient.lib 5.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
RTPPBGetPacketTimeStampOffset( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
RTPPacketRef inPacket, |
|
SInt32 * outTimeStampOffset) FIVEWORDINLINE(0x2F3C, 0x0010, 0x050F, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBAddRepeatPacket() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in QTSClient.lib 5.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
RTPPBAddRepeatPacket( |
|
RTPPacketBuilder rtpb, |
|
SInt32 inFlags, |
|
RTPPacketGroupRef inPacketGroup, |
|
RTPPacketRef inPacket, |
|
TimeValue inTransmissionOffset, |
|
UInt32 inSequenceNumber) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0512, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
used for communicating with the caller of the media packetizers if needed |
|
NOT used for communicating with the media packetizers themselves |
|
*/ |
|
/* |
|
* RTPPBSetCallback() |
|
* |
|
* 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 ) |
|
RTPPBSetCallback( |
|
RTPPacketBuilder rtpb, |
|
RTPPBCallbackUPP inCallback, |
|
void * inRefCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x050A, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBGetCallback() |
|
* |
|
* 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 ) |
|
RTPPBGetCallback( |
|
RTPPacketBuilder rtpb, |
|
RTPPBCallbackUPP * outCallback, |
|
void ** outRefCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x050B, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBSetInfo() |
|
* |
|
* 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 ) |
|
RTPPBSetInfo( |
|
RTPPacketBuilder rtpb, |
|
OSType inSelector, |
|
void * ioParams) FIVEWORDINLINE(0x2F3C, 0x0008, 0x050C, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBGetInfo() |
|
* |
|
* 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 ) |
|
RTPPBGetInfo( |
|
RTPPacketBuilder rtpb, |
|
OSType inSelector, |
|
void * ioParams) FIVEWORDINLINE(0x2F3C, 0x0008, 0x050D, 0x7000, 0xA82A); |
|
|
|
|
|
/* |
|
* RTPPBGetSampleData() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: in QTStreamLib 5.0 and later |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
* Windows: in QTSClient.lib 5.0 and later |
|
*/ |
|
EXTERN_API( ComponentResult ) |
|
RTPPBGetSampleData( |
|
RTPPacketBuilder rtpb, |
|
RTPMPSampleDataParams * inParams, |
|
const UInt64 * inStartOffset, |
|
UInt8 * outDataBuffer, |
|
UInt32 inBytesToRead, |
|
UInt32 * outBytesRead, |
|
SInt32 * outFlags) FIVEWORDINLINE(0x2F3C, 0x0018, 0x0511, 0x7000, 0xA82A); |
|
|
|
|
|
|
|
/* UPP call backs */ |
|
/* |
|
* NewRTPMPDataReleaseUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( RTPMPDataReleaseUPP ) |
|
NewRTPMPDataReleaseUPP(RTPMPDataReleaseProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppRTPMPDataReleaseProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(RTPMPDataReleaseUPP) NewRTPMPDataReleaseUPP(RTPMPDataReleaseProcPtr userRoutine) { return (RTPMPDataReleaseUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppRTPMPDataReleaseProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewRTPMPDataReleaseUPP(userRoutine) (RTPMPDataReleaseUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppRTPMPDataReleaseProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* NewRTPPBCallbackUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( RTPPBCallbackUPP ) |
|
NewRTPPBCallbackUPP(RTPPBCallbackProcPtr userRoutine); |
|
#if !OPAQUE_UPP_TYPES |
|
enum { uppRTPPBCallbackProcInfo = 0x00000FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */ |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(RTPPBCallbackUPP) NewRTPPBCallbackUPP(RTPPBCallbackProcPtr userRoutine) { return (RTPPBCallbackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppRTPPBCallbackProcInfo, GetCurrentArchitecture()); } |
|
#else |
|
#define NewRTPPBCallbackUPP(userRoutine) (RTPPBCallbackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppRTPPBCallbackProcInfo, GetCurrentArchitecture()) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeRTPMPDataReleaseUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeRTPMPDataReleaseUPP(RTPMPDataReleaseUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeRTPMPDataReleaseUPP(RTPMPDataReleaseUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeRTPMPDataReleaseUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* DisposeRTPPBCallbackUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
DisposeRTPPBCallbackUPP(RTPPBCallbackUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) DisposeRTPPBCallbackUPP(RTPPBCallbackUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } |
|
#else |
|
#define DisposeRTPPBCallbackUPP(userUPP) DisposeRoutineDescriptor(userUPP) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeRTPMPDataReleaseUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
InvokeRTPMPDataReleaseUPP( |
|
UInt8 * inData, |
|
void * inRefCon, |
|
RTPMPDataReleaseUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeRTPMPDataReleaseUPP(UInt8 * inData, void * inRefCon, RTPMPDataReleaseUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppRTPMPDataReleaseProcInfo, inData, inRefCon); } |
|
#else |
|
#define InvokeRTPMPDataReleaseUPP(inData, inRefCon, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppRTPMPDataReleaseProcInfo, (inData), (inRefCon)) |
|
#endif |
|
#endif |
|
|
|
/* |
|
* InvokeRTPPBCallbackUPP() |
|
* |
|
* Availability: |
|
* Non-Carbon CFM: available as macro/inline |
|
* CarbonLib: in CarbonLib 1.3 and later |
|
* Mac OS X: in version 10.0 and later |
|
*/ |
|
EXTERN_API_C( void ) |
|
InvokeRTPPBCallbackUPP( |
|
OSType inSelector, |
|
void * ioParams, |
|
void * inRefCon, |
|
RTPPBCallbackUPP userUPP); |
|
#if !OPAQUE_UPP_TYPES |
|
#ifdef __cplusplus |
|
inline DEFINE_API_C(void) InvokeRTPPBCallbackUPP(OSType inSelector, void * ioParams, void * inRefCon, RTPPBCallbackUPP userUPP) { CALL_THREE_PARAMETER_UPP(userUPP, uppRTPPBCallbackProcInfo, inSelector, ioParams, inRefCon); } |
|
#else |
|
#define InvokeRTPPBCallbackUPP(inSelector, ioParams, inRefCon, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppRTPPBCallbackProcInfo, (inSelector), (ioParams), (inRefCon)) |
|
#endif |
|
#endif |
|
|
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES |
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ |
|
#define NewRTPMPDataReleaseProc(userRoutine) NewRTPMPDataReleaseUPP(userRoutine) |
|
#define NewRTPPBCallbackProc(userRoutine) NewRTPPBCallbackUPP(userRoutine) |
|
#define CallRTPMPDataReleaseProc(userRoutine, inData, inRefCon) InvokeRTPMPDataReleaseUPP(inData, inRefCon, userRoutine) |
|
#define CallRTPPBCallbackProc(userRoutine, inSelector, ioParams, inRefCon) InvokeRTPPBCallbackUPP(inSelector, ioParams, inRefCon, userRoutine) |
|
#endif /* CALL_NOT_IN_CARBON */ |
|
|
|
|
|
#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 /* __QTSTREAMINGCOMPONENTS__ */ |
|
|
|
|