Mac OS 9
QTStreamingComponents.h
Go to the documentation of this file.
1 
19 #ifndef __QTSTREAMINGCOMPONENTS__
20 #define __QTSTREAMINGCOMPONENTS__
21 
22 #ifndef __COMPONENTS__
23 #include <Components.h>
24 #endif
25 
26 #ifndef __MOVIES__
27 #include <Movies.h>
28 #endif
29 
30 #ifndef __QUICKTIMESTREAMING__
31 #include <QuickTimeStreaming.h>
32 #endif
33 
34 #if PRAGMA_ONCE
35 #pragma once
36 #endif
37 
38 #ifdef __cplusplus
39 extern "C"
40 {
41 #endif
42 
43 #if PRAGMA_IMPORT
44 #pragma import on
45 #endif
46 
47 #if PRAGMA_STRUCT_ALIGN
48 #pragma options align = mac68k
49 #elif PRAGMA_STRUCT_PACKPUSH
50 #pragma pack(push, 2)
51 #elif PRAGMA_STRUCT_PACK
52 #pragma pack(2)
53 #endif
54 
55  /*============================================================================
56  Stream Sourcer
57  ============================================================================*/
58  enum
59  {
60  kQTSSourcerType = FOUR_CHAR_CODE('srcr')
61  };
62 
64  enum
65  {
66  kQTSSGChannelSourcerType = FOUR_CHAR_CODE('sgch'),
67  kQTSMovieTrackSourcerType = FOUR_CHAR_CODE('trak'),
68  kQTSPushDataSourcerType = FOUR_CHAR_CODE('push')
69  };
70 
71  /* flags for sourcer data */
72  enum
73  {
74  kQTSSourcerDataFlag_SyncSample = 0x00000001
75  };
76 
77  enum
78  {
79  kQTSSourcerInitParamsVersion1 = 1
80  };
81 
83  {
84  SInt32 version;
85  SInt32 flags;
86  OSType dataType;
87  void *data;
88  UInt32 dataLength;
89  };
99  OSErr
100  QTSNewSourcer(void *params, const QTSSourcerInitParams *inInitParams,
101  SInt32 inFlags, ComponentInstance *outSourcer);
102 
103  /* info selectors for sourcers - get and set */
104  enum
105  {
106  kQTSInfo_Track = FOUR_CHAR_CODE('trak'), /* QTSTrackParams* */
107  kQTSInfo_Loop = FOUR_CHAR_CODE('loop'), /* QTSLoopParams* */
108  kQTSInfo_SourcerTiming = FOUR_CHAR_CODE('stim'), /* QTSSourcerTimingParams* */
109  kQTSInfo_TargetFrameRate =
110  FOUR_CHAR_CODE('tfps'), /* Fixed * in frames per second */
111  kQTSInfo_PushData = FOUR_CHAR_CODE('push'), /* QTSPushDataParams* */
112  kQTSInfo_SourcerCallbackProc =
113  FOUR_CHAR_CODE('scbp'), /* QTSSourcerCallbackProcParams* */
114  kQTSInfo_TargetDataRate =
115  FOUR_CHAR_CODE('tdrt'), /* UInt32 * in bytes per second */
116  kQTSInfo_AudioAutoGainOnOff =
117  FOUR_CHAR_CODE('agc '), /* Boolean* - error if unavailable*/
118  kQTSInfo_AudioGain =
119  FOUR_CHAR_CODE('gain'), /* Fixed* kFixed1 is unity gain */
120  kQTSInfo_CroppedInputRect = FOUR_CHAR_CODE(
121  'crpr'), /* Rect* - defined relative to kQTSInfo_FullInputRect below */
122  kQTSInfo_SpatialSettings =
123  FOUR_CHAR_CODE('sptl'), /* pointer to SCSpatialSettings struct*/
124  kQTSInfo_TemporalSettings =
125  FOUR_CHAR_CODE('tprl'), /* pointer to SCTemporalSettings struct*/
126  kQTSInfo_DataRateSettings =
127  FOUR_CHAR_CODE('drat'), /* pointer to SCDataRateSettings struct*/
128  kQTSInfo_CodecFlags = FOUR_CHAR_CODE('cflg'), /* pointer to CodecFlags*/
129  kQTSInfo_CodecSettings = FOUR_CHAR_CODE('cdec'), /* pointer to Handle*/
130  kQTSInfo_ForceKeyValue = FOUR_CHAR_CODE('ksim'), /* pointer to long*/
131  kQTSInfo_SoundSampleRate =
132  FOUR_CHAR_CODE('ssrt'), /* pointer to UnsignedFixed*/
133  kQTSInfo_SoundSampleSize = FOUR_CHAR_CODE('ssss'), /* pointer to short*/
134  kQTSInfo_SoundChannelCount = FOUR_CHAR_CODE('sscc'), /* pointer to short*/
135  kQTSInfo_SoundCompression = FOUR_CHAR_CODE('ssct'), /* pointer to OSType*/
136  kQTSInfo_CompressionList =
137  FOUR_CHAR_CODE('ctyl'), /* pointer to OSType Handle*/
138  kQTSInfo_VideoHue = FOUR_CHAR_CODE('hue '), /* UInt16* */
139  kQTSInfo_VideoSaturation = FOUR_CHAR_CODE('satr'), /* UInt16* */
140  kQTSInfo_VideoContrast = FOUR_CHAR_CODE('trst'), /* UInt16* */
141  kQTSInfo_VideoBrightness = FOUR_CHAR_CODE('brit'), /* UInt16* */
142  kQTSInfo_VideoSharpness = FOUR_CHAR_CODE('shrp'), /* UInt16* */
143  kQTSInfo_TimeScale = FOUR_CHAR_CODE('scal') /* UInt32* */
144  };
145 
146  /* info selectors for sourcers - get only*/
147  enum
148  {
149  kQTSInfo_SGChannel = FOUR_CHAR_CODE('sgch'), /* SGChannel* */
150  kQTSInfo_InputDeviceName = FOUR_CHAR_CODE('innm'), /* Handle* */
151  kQTSInfo_InputSourceName = FOUR_CHAR_CODE('srnm'), /* Handle* */
152  kQTSInfo_FullInputRect = FOUR_CHAR_CODE('fulr') /* Rect* */
153  };
154 
155  /* loop flags */
156  enum
157  {
158  kQTSLoopFlag_Loop = 0x00000001
159  };
160 
161  enum
162  {
163  kQTSLoopParamsVersion1 = 1
164  };
165 
167  {
168  SInt32 version;
169  SInt32 flags;
170  SInt32 loopFlags;
171  SInt32 flagsMask;
172  SInt32 numLoops;
173  };
174  typedef struct QTSLoopParams QTSLoopParams;
175  enum
176  {
177  kQTSTrackParamsVersion1 = 1
178  };
179 
181  {
182  SInt32 version;
183  SInt32 flags;
184  Track track;
185  TimeValue64 trackStartOffset; /* to start other than at the beginning
186  otherwise set to 0*/
187  TimeValue64 duration; /* to limit the duration otherwise set to 0*/
189  *loopParams; /* set to NULL if not using; default is no looping */
190  };
191  typedef struct QTSTrackParams QTSTrackParams;
192  enum
193  {
194  kQTSSourcerTimingParamsVersion1 = 1
195  };
196 
198  {
199  SInt32 version;
200  SInt32 flags;
201  TimeScale timeScale;
202  TimeValue64 presentationStartTime;
203  TimeValue64 presentationEndTime;
204  TimeValue64 presentationCurrentTime;
205  TimeValue64 localStartTime;
206  TimeValue64 localEndTime;
207  TimeValue64 localCurrentTime;
208  };
210  enum
211  {
212  kQTSPushDataParamsVersion1 = 1
213  };
214 
215  enum
216  {
217  kQTSPushDataFlag_SampleTimeIsValid = 0x00000001,
218  kQTSPushDataFlag_DurationIsValid = 0x00000002
219  };
220 
222  {
223  SInt32 version;
224  SInt32 flags;
225  SampleDescriptionHandle sampleDescription; /* caller owns the handle */
226  UInt32 sampleDescSeed;
227  TimeValue64 sampleTime; /* also set flag if you set this */
228  TimeValue64 duration; /* also set flag if you set this */
229  UInt32 dataLength;
230  void *dataPtr; /* this does not have to be a real macintosh Ptr */
231  };
232  typedef struct QTSPushDataParams QTSPushDataParams;
233  enum
234  {
235  kQTSSourcerCallbackProcParamsVersion1 = 1
236  };
237 
239  {
240  SInt32 version;
241  SInt32 flags;
242  QTSNotificationUPP proc;
243  void *refCon;
244  };
246  /* track sourcer callback selectors*/
247  enum
248  {
249  kQTSSourcerCallback_Done = FOUR_CHAR_CODE('done') /* QTSSourcerDoneParams* */
250  };
251 
252  /* push data sourcer callback selectors*/
253  enum
254  {
255  kQTSPushDataSourcerCallback_HasCharacteristic =
256  0x050D, /* QTSPushDataHasCharacteristicParams* */
257  kQTSPushDataSourcerCallback_SetInfo = 0x0507, /* QTSPushDataInfoParams* */
258  kQTSPushDataSourcerCallback_GetInfo = 0x0508 /* QTSPushDataInfoParams* */
259  };
260 
262  {
263  SInt32 version;
264  SInt32 flags;
265  OSType characteristic;
266  Boolean returnedHasIt;
267  char reserved[3];
268  };
272  {
273  SInt32 version;
274  SInt32 flags;
275  OSType selector;
276  void *ioParams;
277  };
279  enum
280  {
281  kQTSSourcerDoneParamsVersion1 = 1
282  };
283 
285  {
286  SInt32 version;
287  SInt32 flags;
288  ComponentInstance sourcer;
289  };
291 
292  /*-----------------------------------------
293  Stream Sourcer Selectors
294  -----------------------------------------*/
295  enum
296  {
297  kQTSSourcerInitializeSelect = 0x0500,
298  kQTSSourcerSetEnableSelect = 0x0503,
299  kQTSSourcerGetEnableSelect = 0x0504,
300  kQTSSourcerSetInfoSelect = 0x0507,
301  kQTSSourcerGetInfoSelect = 0x0508,
302  kQTSSourcerSetTimeScaleSelect = 0x050E,
303  kQTSSourcerGetTimeScaleSelect = 0x050F,
304  kQTSSourcerIdleSelect = 0x0516
305  };
306 
307  /*-----------------------------------------
308  Stream Sourcer Prototypes
309  -----------------------------------------*/
318  ComponentResult
320  const QTSSourcerInitParams *inInitParams);
321 
330  ComponentResult
331  QTSSourcerIdle(QTSSourcer inSourcer, const TimeValue64 *inTime, SInt32 inFlags,
332  SInt32 *outFlags);
333 
342  ComponentResult
343  QTSSourcerSetEnable(QTSSourcer inSourcer, Boolean inEnableMode, SInt32 inFlags);
344 
353  ComponentResult
354  QTSSourcerGetEnable(QTSSourcer inSourcer, Boolean *outEnableMode,
355  SInt32 inFlags);
356 
365  ComponentResult
366  QTSSourcerSetTimeScale(QTSSourcer inSourcer, TimeScale inTimeScale);
367 
376  ComponentResult
377  QTSSourcerGetTimeScale(QTSSourcer inSourcer, TimeScale *outTimeScale);
378 
387  ComponentResult
388  QTSSourcerSetInfo(QTSSourcer inSourcer, OSType inSelector, void *ioParams);
389 
398  ComponentResult
399  QTSSourcerGetInfo(QTSSourcer inSourcer, OSType inSelector, void *ioParams);
400 
401  /*============================================================================
402  Stream Handler
403  ============================================================================*/
404 
409  {
410  UInt32 version;
411  Fixed editRate;
412  TimeValue64 dataStartTime_mediaAxis;
413  TimeValue64 dataEndTime_mediaAxis;
414  };
416  enum
417  {
418  kSHNoChunkDispatchFlags = 0,
419  kSHChunkFlagSyncSample = 1 << 2,
420  kSHChunkFlagDataLoss = 1 << 4
421  };
422 
424  {
425  UInt32 version;
426  long reserved1;
427  SInt32 flags;
428  UInt32 dataSize;
429  UInt8 *dataPtr;
430  long reserved2;
431  long reserved3;
432  TimeValue64 presentationTime;
433 
434  long reserved4;
435  long reserved5;
436  const SHServerEditParameters *serverEditParameters;
437  long reserved6;
438  long reserved7;
439  };
440  typedef struct SHChunkRecord SHChunkRecord;
441 
442  /*============================================================================
443  RTP Components
444  ============================================================================*/
445 
446  typedef UInt32 RTPSSRC;
447  enum
448  {
449  kRTPInvalidSSRC = 0
450  };
451 
452  /* RTP standard content encodings for audio */
453  enum
454  {
455  kRTPPayload_PCMU = 0, /* 8kHz PCM mu-law mono */
456  kRTPPayload_1016 = 1, /* 8kHz CELP (Fed Std 1016) mono */
457  kRTPPayload_G721 = 2, /* 8kHz G.721 ADPCM mono */
458  kRTPPayload_GSM = 3, /* 8kHz GSM mono */
459  kRTPPayload_G723 = 4, /* 8kHz G.723 ADPCM mono */
460  kRTPPayload_DVI_8 = 5, /* 8kHz Intel DVI ADPCM mono */
461  kRTPPayload_DVI_16 = 6, /* 16kHz Intel DVI ADPCM mono */
462  kRTPPayload_LPC = 7, /* 8kHz LPC */
463  kRTPPayload_PCMA = 8, /* 8kHz PCM a-law mono */
464  kRTPPayload_L16_44_2 = 10, /* 44.1kHz 16-bit linear stereo */
465  kRTPPayload_L16_44_1 = 11, /* 44.1kHz 16-bit linear mono */
466  kRTPPayload_PureVoice = 12, /* 8kHz PureVoice mono (QCELP) */
467  kRTPPayload_MPEGAUDIO = 14, /* MPEG I and II audio */
468  kRTPPayload_DVI_11 = 16, /* 11kHz Intel DVI ADPCM mono */
469  kRTPPayload_DVI_22 = 17 /* 22kHz Intel DVI ADPCM mono */
470  };
471 
472  /* RTP standard content encodings for video */
473  enum
474  {
475  kRTPPayload_CELLB = 25, /* Sun CellB */
476  kRTPPayload_JPEG = 26, /* JPEG */
477  kRTPPayload_CUSEEME = 27, /* Cornell CU-SeeMe */
478  kRTPPayload_NV = 28, /* Xerox PARC nv */
479  kRTPPayload_PICWIN = 29, /* BBN Picture Window */
480  kRTPPayload_CPV = 30, /* Bolter CPV */
481  kRTPPayload_H261 = 31, /* CCITT H.261 */
482  kRTPPayload_MPEGVIDEO = 32, /* MPEG I and II video */
483  kRTPPayload_H263 = 34 /* CCITT H.263 */
484  };
485 
486  /* Other RTP standard content encodings */
487  enum
488  {
489  kRTPPayload_MPEG2T = 33 /* MPEG 2 Transport */
490  };
491 
492  /* Dynamic encodings */
493  enum
494  {
495  kRTPPayload_FirstDynamic = 96,
496  kRTPPayload_LastDynamic = 127,
497  kRTPPayload_Unknown = 0xFF
498  };
499 
505  /* ----- these are get and set ----- */
506  enum
507  {
508  kRTPInfo_SSRC = FOUR_CHAR_CODE('ssrc'), /* UInt32* */
509  kRTPInfo_NextSeqNum = FOUR_CHAR_CODE('rnsn') /* UInt16* */
510  };
511 
512  /*-----------------------------------------
513  RTP Statistics
514  -----------------------------------------*/
515  enum
516  {
517  kRTPTotalReceivedPktsStat = FOUR_CHAR_CODE('trcp'),
518  kRTPTotalLostPktsStat = FOUR_CHAR_CODE('tlsp'),
519  kRTPTotalProcessedPktsStat = FOUR_CHAR_CODE('tprp'),
520  kRTPTotalDroppedPktsStat = FOUR_CHAR_CODE('tdrp'),
521  kRTPBadHeaderDroppedPktsStat = FOUR_CHAR_CODE('bhdp'),
522  kRTPOurHeaderDroppedPktsStat = FOUR_CHAR_CODE('ohdp'),
523  kRTPNotReceivingSenderDroppedPktsStat = FOUR_CHAR_CODE('nsdp'),
524  kRTPNotProcessingDroppedPktsStat = FOUR_CHAR_CODE('npdp'),
525  kRTPBadSeqDroppedPktsStat = FOUR_CHAR_CODE('bsdp'),
526  kRTPArriveTooLatePktsStat = FOUR_CHAR_CODE('artl'),
527  kRTPWaitForSeqDroppedPktsStat = FOUR_CHAR_CODE('wsdp'),
528  kRTPBadStateDroppedPktsStat = FOUR_CHAR_CODE('stdp'),
529  kRTPBadPayloadDroppedPktsStat = FOUR_CHAR_CODE('bpdp'),
530  kRTPNoTimeScaleDroppedPktsStat = FOUR_CHAR_CODE('ntdp'),
531  kRTPDupSeqNumDroppedPktsStat = FOUR_CHAR_CODE('dsdp'),
532  kRTPLostPktsPercentStat = FOUR_CHAR_CODE('lspp'),
533  kRTPDroppedPktsPercentStat = FOUR_CHAR_CODE('dppp'),
534  kRTPTotalUnprocessedPktsPercentStat = FOUR_CHAR_CODE('tupp'),
535  kRTPRTCPDataRateStat = FOUR_CHAR_CODE('rrcd'),
536  kRTPPayloadIDStat = FOUR_CHAR_CODE('rpid'),
537  kRTPPayloadNameStat = FOUR_CHAR_CODE('rpnm'),
538  kRTPNumPktsInQueueStat = FOUR_CHAR_CODE('rnpq'),
539  kRTPTotalPktsInQueueStat = FOUR_CHAR_CODE('rtpq'),
540  kRTPTotalOutOfOrderPktsStat = FOUR_CHAR_CODE('rtoo'),
541  kRTPRetransmissionStat = FOUR_CHAR_CODE('rrtx')
542  };
543 
544  /*-----------------------------------------
545  Payload Info
546  -----------------------------------------*/
547  enum
548  {
549  kRTPPayloadSpeedTag = FOUR_CHAR_CODE('sped'), /* 0-255, 255 is fastest*/
550  kRTPPayloadLossRecoveryTag =
551  FOUR_CHAR_CODE('loss') /* 0-255, 0 can't handle any loss, 128 can handle
552  50% packet loss*/
553  };
554 
556  {
557  OSType tag;
558  long value;
559  };
568  {
569  long characteristicCount;
571  characteristic[1]; /* tag is key to sort on, value is + for ascending, -
572  for descending*/
573  };
576  /* flags for RTPPayloadInfo */
577  enum
578  {
579  kRTPPayloadTypeStaticFlag = 0x00000001,
580  kRTPPayloadTypeDynamicFlag = 0x00000002
581  };
582 
584  {
585  long payloadFlags;
586  UInt8 payloadID;
587  char unused[3];
588  char payloadName[1];
589  };
590  typedef struct RTPPayloadInfo RTPPayloadInfo;
593  /*============================================================================
594  RTP Reassembler
595  ============================================================================*/
597  enum
598  {
599  kRTPReassemblerType = FOUR_CHAR_CODE('rtpr')
600  };
601 
602  enum
603  {
604  kRTPBaseReassemblerType = FOUR_CHAR_CODE('gnrc'),
605  kRTP261ReassemblerType = FOUR_CHAR_CODE('h261'),
606  kRTP263ReassemblerType = FOUR_CHAR_CODE('h263'),
607  kRTP263PlusReassemblerType = FOUR_CHAR_CODE('263+'),
608  kRTPAudioReassemblerType = FOUR_CHAR_CODE('soun'),
609  kRTPQTReassemblerType = FOUR_CHAR_CODE('qtim'),
610  kRTPPureVoiceReassemblerType = FOUR_CHAR_CODE('Qclp'),
611  kRTPMp3ReassemblerType = FOUR_CHAR_CODE('mp3 '),
612  kRTPJPEGReassemblerType = FOUR_CHAR_CODE('jpeg'),
613  kRTPQDesign2ReassemblerType = FOUR_CHAR_CODE('QDM2'),
614  kRTPSorensonReassemblerType = FOUR_CHAR_CODE('SVQ1')
615  };
616 
618  {
619  RTPSSRC ssrc;
620  UInt8 payloadType;
621  UInt8 pad[3];
622  TimeBase timeBase;
623  TimeScale timeScale;
624  };
625  typedef struct RTPRssmInitParams RTPRssmInitParams;
627  {
628  struct RTPRssmPacket *next;
629  struct RTPRssmPacket *prev;
630  QTSStreamBuffer *streamBuffer;
631  Boolean paramsFilledIn;
632  UInt8 pad[1];
633  UInt16 sequenceNum;
634  UInt32 transportHeaderLength; /* filled in by base*/
635  UInt32 payloadHeaderLength; /* derived adjusts this */
636  UInt32 dataLength;
637  SHServerEditParameters serverEditParams;
638  TimeValue64 timeStamp; /* lower 32 bits is original rtp timestamp*/
639  SInt32 chunkFlags; /* these are or'd together*/
640  SInt32 flags;
641  };
642  typedef struct RTPRssmPacket RTPRssmPacket;
643  /* flags for RTPRssmPacket struct*/
644  enum
645  {
646  kRTPRssmPacketHasMarkerBitSet = 0x00000001,
647  kRTPRssmPacketHasServerEditFlag = 0x00010000
648  };
649 
650  /* flags for RTPRssmSendStreamBufferRange*/
651  enum
652  {
653  kRTPRssmCanRefStreamBuffer = 0x00000001
654  };
655 
656  /* flags for RTPRssmSendPacketList*/
657  enum
658  {
659  kRTPRssmLostSomePackets = 0x00000001
660  };
661 
662  /* flags for RTPRssmSetFlags*/
663  enum
664  {
665  kRTPRssmEveryPacketAChunkFlag = 0x00000001,
666  kRTPRssmQueueAndUseMarkerBitFlag = 0x00000002,
667  kRTPRssmTrackLostPacketsFlag = 0x00010000,
668  kRTPRssmNoReorderingRequiredFlag = 0x00020000
669  };
670 
672  {
673  QTSStreamBuffer *streamBuffer;
674  TimeValue64 presentationTime;
675  UInt32 chunkStartPosition;
676  UInt32 numDataBytes;
677  SInt32 chunkFlags;
678  SInt32 flags;
679  const SHServerEditParameters *serverEditParams; /* NULL if no edit*/
680  };
682  /* characteristics*/
683  enum
684  {
685  kRTPCharacteristic_RequiresOrderedPackets = FOUR_CHAR_CODE('rrop'),
686  kRTPCharacteristic_TimeStampsNotMonoIncreasing = FOUR_CHAR_CODE('tsmi')
687  };
688 
689  enum
690  {
691  kRTPReassemblerInfoResType = FOUR_CHAR_CODE('rsmi')
692  };
693 
695  {
696  long characteristicCount;
697  RTPPayloadCharacteristic characteristic[1];
698 
699  /* after the last characteristic, the payload name (defined by the
700  * MediaPacketizerPayloadInfo*/
701  /* structure) is present. */
702  };
703  typedef struct RTPReassemblerInfo RTPReassemblerInfo;
706 #define RTPReassemblerInfoToPayloadInfo(_rsmi) \
707  ((RTPPayloadInfoPtr)(&( \
708  (_rsmi)->characteristic[(_rsmi)->characteristicCount])))
709  /* RTPReassemblerInfoElement structs are padded to 32 bits */
710  enum
711  {
712  kRTPReassemblerInfoPadUpToBytes = 4
713  };
714 
724  OSErr
726  RTPPayloadSortRequest *inSortInfo,
727  QTAtomContainer *outReassemblerList);
728 
738  OSErr
739  QTSFindReassemblerForPayloadName(const char *inPayloadName,
740  RTPPayloadSortRequest *inSortInfo,
741  QTAtomContainer *outReassemblerList);
742 
743  /*-----------------------------------------
744  RTP Reassembler Selectors
745  -----------------------------------------*/
746  enum
747  {
748  kRTPRssmSetCapabilitiesSelect = 0x0100,
749  kRTPRssmGetCapabilitiesSelect = 0x0101,
750  kRTPRssmSetPayloadHeaderLengthSelect = 0x0102,
751  kRTPRssmGetPayloadHeaderLengthSelect = 0x0103,
752  kRTPRssmSetTimeScaleSelect = 0x0104,
753  kRTPRssmGetTimeScaleSelect = 0x0105,
754  kRTPRssmNewStreamHandlerSelect = 0x0106,
755  kRTPRssmSetStreamHandlerSelect = 0x0107,
756  kRTPRssmGetStreamHandlerSelect = 0x0108,
757  kRTPRssmSendStreamHandlerChangedSelect = 0x0109,
758  kRTPRssmSetSampleDescriptionSelect = 0x010A,
759  kRTPRssmGetChunkAndIncrRefCountSelect = 0x010D,
760  kRTPRssmSendChunkAndDecrRefCountSelect = 0x010E,
761  kRTPRssmSendLostChunkSelect = 0x010F,
762  kRTPRssmSendStreamBufferRangeSelect = 0x0110,
763  kRTPRssmClearCachedPackets = 0x0111,
764  kRTPRssmFillPacketListParamsSelect = 0x0113,
765  kRTPRssmReleasePacketListSelect = 0x0114,
766  kRTPRssmIncrChunkRefCountSelect = 0x0115,
767  kRTPRssmDecrChunkRefCountSelect = 0x0116,
768  kRTPRssmInitializeSelect = 0x0500,
769  kRTPRssmHandleNewPacketSelect = 0x0501,
770  kRTPRssmComputeChunkSizeSelect = 0x0502,
771  kRTPRssmAdjustPacketParamsSelect = 0x0503,
772  kRTPRssmCopyDataToChunkSelect = 0x0504,
773  kRTPRssmSendPacketListSelect = 0x0505,
774  kRTPRssmGetTimeScaleFromPacketSelect = 0x0506,
775  kRTPRssmSetInfoSelect = 0x0509,
776  kRTPRssmGetInfoSelect = 0x050A,
777  kRTPRssmHasCharacteristicSelect = 0x050B,
778  kRTPRssmResetSelect = 0x050C
779  };
780 
781  /*-----------------------------------------
782  RTP Reassembler functions - base to derived
783  -----------------------------------------*/
784 
794  ComponentResult
796 
806  ComponentResult
808  SInt32 inNumWraparounds);
809 
819  ComponentResult
821  SInt32 inFlags, UInt32 *outChunkDataSize);
822 
832  ComponentResult
834  SInt32 inFlags);
835 
845  ComponentResult
847  UInt32 inMaxChunkDataSize, SHChunkRecord *inChunk,
848  SInt32 inFlags);
849 
859  ComponentResult
861  const TimeValue64 *inLastChunkPresentationTime,
862  SInt32 inFlags);
863 
873  ComponentResult
875  QTSStreamBuffer *inStreamBuffer,
876  TimeScale *outTimeScale);
877 
887  ComponentResult
888  RTPRssmSetInfo(RTPReassembler rtpr, OSType inSelector, void *ioParams);
889 
899  ComponentResult
900  RTPRssmGetInfo(RTPReassembler rtpr, OSType inSelector, void *ioParams);
901 
911  ComponentResult
912  RTPRssmHasCharacteristic(RTPReassembler rtpr, OSType inCharacteristic,
913  Boolean *outHasIt);
914 
924  ComponentResult
925  RTPRssmReset(RTPReassembler rtpr, SInt32 inFlags);
926 
927  /*-----------------------------------------
928  RTP Reassembler functions - derived to base
929  -----------------------------------------*/
930  /* ----- setup*/
940  ComponentResult
941  RTPRssmSetCapabilities(RTPReassembler rtpr, SInt32 inFlags, SInt32 inFlagsMask);
942 
952  ComponentResult
953  RTPRssmGetCapabilities(RTPReassembler rtpr, SInt32 *outFlags);
954 
964  ComponentResult
965  RTPRssmSetPayloadHeaderLength(RTPReassembler rtpr, UInt32 inPayloadHeaderLength);
966 
976  ComponentResult
978  UInt32 *outPayloadHeaderLength);
979 
989  ComponentResult
990  RTPRssmSetTimeScale(RTPReassembler rtpr, TimeScale inSHTimeScale);
991 
1001  ComponentResult
1002  RTPRssmGetTimeScale(RTPReassembler rtpr, TimeScale *outSHTimeScale);
1003 
1013  ComponentResult
1015  SampleDescriptionHandle inSampleDescription,
1016  TimeScale inSHTimeScale, ComponentInstance *outHandler);
1017 
1027  ComponentResult
1029 
1039  ComponentResult
1041  ComponentInstance *outStreamHandler);
1042 
1052  ComponentResult
1054 
1064  ComponentResult
1066  SampleDescriptionHandle inSampleDescription);
1067 
1068  /* ----- manually sending chunks*/
1078  ComponentResult
1079  RTPRssmGetChunkAndIncrRefCount(RTPReassembler rtpr, UInt32 inChunkDataSize,
1080  const TimeValue64 *inChunkPresentationTime,
1081  SHChunkRecord **outChunk);
1082 
1092  ComponentResult
1094  const SHServerEditParameters *inServerEdit);
1095 
1105  ComponentResult
1107  const TimeValue64 *inChunkPresentationTime);
1108 
1118  ComponentResult
1120  RTPSendStreamBufferRangeParams *inParams);
1121 
1131  ComponentResult
1133 
1143  ComponentResult
1145  RTPRssmPacket *inPacketListHead,
1146  SInt32 inNumWraparounds, SInt32 inFlags);
1147 
1157  ComponentResult
1159 
1169  ComponentResult
1171 
1181  ComponentResult
1183 
1184  /*============================================================================
1185  RTP Media Packetizer
1186  ============================================================================*/
1187  enum
1188  {
1189  kRTPMediaPacketizerType = FOUR_CHAR_CODE('rtpm')
1190  };
1191 
1193  enum
1194  {
1195  kRTPBaseMediaPacketizerType = FOUR_CHAR_CODE('gnrc'),
1196  kRTP261MediaPacketizerType = FOUR_CHAR_CODE('h261'),
1197  kRTP263PlusMediaPacketizerType = FOUR_CHAR_CODE('263+'),
1198  kRTPAudioMediaPacketizerType = FOUR_CHAR_CODE('soun'),
1199  kRTPQTMediaPacketizerType = FOUR_CHAR_CODE('qtim'),
1200  kRTPPureVoiceMediaPacketizerType = FOUR_CHAR_CODE('Qclp'),
1201  kRTPMp3MediaPacketizerType = FOUR_CHAR_CODE('mp3 '),
1202  kRTPJPEGMediaPacketizerType = FOUR_CHAR_CODE('jpeg'),
1203  kRTPQDesign2MediaPacketizerType = FOUR_CHAR_CODE('QDM2'),
1204  kRTPSorensonMediaPacketizerType = FOUR_CHAR_CODE('SVQ1')
1205  };
1206 
1207  typedef UInt32 RTPMPSampleRef;
1208  typedef CALLBACK_API(void, RTPMPDataReleaseProcPtr)(UInt8 *inData,
1209  void *inRefCon);
1210  typedef STACK_UPP_TYPE(RTPMPDataReleaseProcPtr) RTPMPDataReleaseUPP;
1211  enum
1212  {
1213  kMediaPacketizerCanPackEditRate = 1 << 0,
1214  kMediaPacketizerCanPackLayer = 1 << 1,
1215  kMediaPacketizerCanPackVolume = 1 << 2,
1216  kMediaPacketizerCanPackBalance = 1 << 3,
1217  kMediaPacketizerCanPackGraphicsMode = 1 << 4,
1218  kMediaPacketizerCanPackEmptyEdit = 1 << 5
1219  };
1220 
1222  {
1223  OSType mediaType; /* media type supported (0 for all)*/
1224  OSType dataFormat; /* data format (e.g., compression) supported (0 for all)*/
1225  UInt32
1226  capabilityFlags; /* ability to handle non-standard track characteristics*/
1227  UInt8 canPackMatrixType; /* can pack any matrix type up to this
1228  (identityMatrixType for identity only)*/
1229  UInt8 pad[3];
1230  };
1234  {
1235  OSType mediaType; /* media type supported (0 for all)*/
1236  OSType dataFormat; /* data format (e.g., compression) supported (0 for all)*/
1237  OSType vendor; /* manufacturer of this packetizer (e.g., 'appl' for Apple)*/
1238  UInt32
1239  capabilityFlags; /* ability to handle non-standard track characteristics*/
1240  UInt8 canPackMatrixType; /* can pack any matrix type up to this
1241  (identityMatrixType for identity only)*/
1242  UInt8 pad[3];
1243  long characteristicCount;
1244  RTPPayloadCharacteristic characteristic[1];
1245 
1246  /* after the last characteristic, the payload name (defined by the
1247  * RTPPayloadInfo*/
1248  /* structure) is present. */
1249  };
1253 #define MediaPacketizerInfoToPayloadInfo(_mpi) \
1254  ((RTPPayloadInfoPtr)(&((_mpi)->characteristic[(_mpi)->characteristicCount])))
1255  /* MediaPacketizerInfo structs are padded to 32 bits */
1256  enum
1257  {
1258  kMediaPacketizerInfoPadUpToBytes = 4
1259  };
1260 
1270  OSErr
1272  SampleDescriptionHandle inSampleDescription,
1273  RTPPayloadSortRequestPtr inSortInfo,
1274  QTAtomContainer *outPacketizerList);
1275 
1285  OSErr
1286  QTSFindMediaPacketizerForTrack(Track inTrack, long inSampleDescriptionIndex,
1287  RTPPayloadSortRequestPtr inSortInfo,
1288  QTAtomContainer *outPacketizerList);
1289 
1299  OSErr
1301  RTPPayloadSortRequestPtr inSortInfo,
1302  QTAtomContainer *outPacketizerList);
1303 
1313  OSErr
1314  QTSFindMediaPacketizerForPayloadName(const char *payloadName,
1315  RTPPayloadSortRequestPtr inSortInfo,
1316  QTAtomContainer *outPacketizerList);
1317 
1318  /* flags for RTPMPInitialize*/
1319  enum
1320  {
1321  kRTPMPRealtimeModeFlag = 0x00000001
1322  };
1323 
1324  /* flags for RTPMPSampleDataParams*/
1325  enum
1326  {
1327  kRTPMPSyncSampleFlag = 0x00000001,
1328  kRTPMPRespectDurationFlag = 0x00000002
1329  };
1330 
1332  {
1333  UInt32 version;
1334  UInt32 timeStamp;
1335  UInt32 duration; /* 0 = unknown duration*/
1336  UInt32 playOffset;
1337  Fixed playRate;
1338  SInt32 flags;
1339  UInt32 sampleDescSeed;
1340  Handle sampleDescription;
1341  RTPMPSampleRef sampleRef;
1342  UInt32 dataLength;
1343  const UInt8 *data;
1344  RTPMPDataReleaseUPP releaseProc;
1345  void *refCon;
1346  };
1348  /* out flags for idle, RTPMPSetSampleData, and RTPMPFlush*/
1349  enum
1350  {
1351  kRTPMPStillProcessingData = 0x00000001 /* not done with data you've got*/
1352  };
1353 
1355  {
1356  UInt32 flags;
1357  UInt32 payloadNumber;
1358  short nameLength; /* in: size of payloadName buffer (counting null terminator)
1359  -- this will be reset to needed length and paramErr
1360  returned if too small */
1361  char *payloadName; /* caller must provide buffer */
1362  };
1364  /*-----------------------------------------
1365  RTP Media Packetizer Info selectors
1366  -----------------------------------------*/
1367  /* info selectors - get only */
1368  enum
1369  {
1370  kRTPMPPayloadTypeInfo = FOUR_CHAR_CODE('rtpp'), /* RTPMPPayloadTypeParams* */
1371  kRTPMPRTPTimeScaleInfo = FOUR_CHAR_CODE('rtpt'), /* TimeScale* */
1372  kRTPMPRequiredSampleDescriptionInfo =
1373  FOUR_CHAR_CODE('sdsc'), /* SampleDescriptionHandle* */
1374  kRTPMPMinPayloadSize = FOUR_CHAR_CODE(
1375  'mins'), /* UInt32* in bytes, does not include rtp header; default is 0 */
1376  kRTPMPMinPacketDuration = FOUR_CHAR_CODE(
1377  'mind'), /* UInt3* in milliseconds; default is no min required */
1378  kRTPMPSuggestedRepeatPktCountInfo = FOUR_CHAR_CODE('srpc'), /* UInt32* */
1379  kRTPMPSuggestedRepeatPktSpacingInfo =
1380  FOUR_CHAR_CODE('srps'), /* UInt32* in milliseconds */
1381  kRTPMPMaxPartialSampleSizeInfo =
1382  FOUR_CHAR_CODE('mpss'), /* UInt32* in bytes */
1383  kRTPMPPreferredBufferDelayInfo =
1384  FOUR_CHAR_CODE('prbd'), /* UInt32* in milliseconds */
1385  kRTPMPPayloadNameInfo = FOUR_CHAR_CODE('name') /* StringPtr */
1386  };
1387 
1388  /*-----------------------------------------
1389  RTP Media Packetizer Characteristics
1390  -----------------------------------------*/
1391  /* also supports relevant ones in Movies.h and QTSToolbox.h */
1392  enum
1393  {
1394  kRTPMPNoSampleDataRequiredCharacteristic = FOUR_CHAR_CODE('nsdr'),
1395  kRTPMPHasUserSettingsDialogCharacteristic = FOUR_CHAR_CODE('sdlg'),
1396  kRTPMPPrefersReliableTransportCharacteristic = FOUR_CHAR_CODE('rely'),
1397  kRTPMPRequiresOutOfBandDimensionsCharacteristic = FOUR_CHAR_CODE('robd'),
1398  kRTPMPReadsPartialSamplesCharacteristic = FOUR_CHAR_CODE('rpsp')
1399  };
1400 
1401  /*-----------------------------------------
1402  RTP Media Packetizer selectors
1403  -----------------------------------------*/
1404  enum
1405  {
1406  kRTPMPInitializeSelect = 0x0500,
1407  kRTPMPPreflightMediaSelect = 0x0501,
1408  kRTPMPIdleSelect = 0x0502,
1409  kRTPMPSetSampleDataSelect = 0x0503,
1410  kRTPMPFlushSelect = 0x0504,
1411  kRTPMPResetSelect = 0x0505,
1412  kRTPMPSetInfoSelect = 0x0506,
1413  kRTPMPGetInfoSelect = 0x0507,
1414  kRTPMPSetTimeScaleSelect = 0x0508,
1415  kRTPMPGetTimeScaleSelect = 0x0509,
1416  kRTPMPSetTimeBaseSelect = 0x050A,
1417  kRTPMPGetTimeBaseSelect = 0x050B,
1418  kRTPMPHasCharacteristicSelect = 0x050C,
1419  kRTPMPSetPacketBuilderSelect = 0x050E,
1420  kRTPMPGetPacketBuilderSelect = 0x050F,
1421  kRTPMPSetMediaTypeSelect = 0x0510,
1422  kRTPMPGetMediaTypeSelect = 0x0511,
1423  kRTPMPSetMaxPacketSizeSelect = 0x0512,
1424  kRTPMPGetMaxPacketSizeSelect = 0x0513,
1425  kRTPMPSetMaxPacketDurationSelect = 0x0514,
1426  kRTPMPGetMaxPacketDurationSelect =
1427  0x0515, /* for export component and apps who want to*/
1428  /* access dialogs for Media-specific settings*/
1429  /* (such as Pure Voice interleave factor)*/
1430  kRTPMPDoUserDialogSelect = 0x0516,
1431  kRTPMPSetSettingsFromAtomContainerAtAtomSelect = 0x0517,
1432  kRTPMPGetSettingsIntoAtomContainerAtAtomSelect = 0x0518,
1433  kRTPMPGetSettingsAsTextSelect = 0x0519,
1434  kRTPMPGetSettingsSelect = 0x051A,
1435  kRTPMPSetSettingsSelect = 0x051B
1436  };
1437 
1438  /*-----------------------------------------
1439  RTP Media Packetizer functions
1440  -----------------------------------------*/
1441 
1451  ComponentResult
1452  RTPMPInitialize(RTPMediaPacketizer rtpm, SInt32 inFlags);
1453 
1454  /* return noErr if you can handle this media */
1464  ComponentResult
1465  RTPMPPreflightMedia(RTPMediaPacketizer rtpm, OSType inMediaType,
1466  SampleDescriptionHandle inSampleDescription);
1467 
1481  ComponentResult
1482  RTPMPIdle(RTPMediaPacketizer rtpm, SInt32 inFlags, SInt32 *outFlags);
1483 
1500  ComponentResult
1502  const RTPMPSampleDataParams *inSampleData, SInt32 *outFlags);
1503 
1517  ComponentResult
1518  RTPMPFlush(RTPMediaPacketizer rtpm, SInt32 inFlags, SInt32 *outFlags);
1519 
1535  ComponentResult
1536  RTPMPReset(RTPMediaPacketizer rtpm, SInt32 inFlags);
1537 
1538  /*-----------------------------------------
1539  RTP Media Packetizer get / set functions
1540  -----------------------------------------*/
1550  ComponentResult
1551  RTPMPSetInfo(RTPMediaPacketizer rtpm, OSType inSelector, const void *ioParams);
1552 
1562  ComponentResult
1563  RTPMPGetInfo(RTPMediaPacketizer rtpm, OSType inSelector, void *ioParams);
1564 
1574  ComponentResult
1575  RTPMPSetTimeScale(RTPMediaPacketizer rtpm, TimeScale inTimeScale);
1576 
1586  ComponentResult
1587  RTPMPGetTimeScale(RTPMediaPacketizer rtpm, TimeScale *outTimeScale);
1588 
1598  ComponentResult
1599  RTPMPSetTimeBase(RTPMediaPacketizer rtpm, TimeBase inTimeBase);
1600 
1610  ComponentResult
1611  RTPMPGetTimeBase(RTPMediaPacketizer rtpm, TimeBase *outTimeBase);
1612 
1622  ComponentResult
1624  Boolean *outHasIt);
1625 
1635  ComponentResult
1637  ComponentInstance inPacketBuilder);
1638 
1648  ComponentResult
1650  ComponentInstance *outPacketBuilder);
1651 
1661  ComponentResult
1662  RTPMPSetMediaType(RTPMediaPacketizer rtpm, OSType inMediaType);
1663 
1673  ComponentResult
1674  RTPMPGetMediaType(RTPMediaPacketizer rtpm, OSType *outMediaType);
1675 
1676  /* size is in bytes*/
1686  ComponentResult
1687  RTPMPSetMaxPacketSize(RTPMediaPacketizer rtpm, UInt32 inMaxPacketSize);
1688 
1698  ComponentResult
1699  RTPMPGetMaxPacketSize(RTPMediaPacketizer rtpm, UInt32 *outMaxPacketSize);
1700 
1701  /* duration is in milliseconds*/
1711  ComponentResult
1712  RTPMPSetMaxPacketDuration(RTPMediaPacketizer rtpm, UInt32 inMaxPacketDuration);
1713 
1723  ComponentResult
1724  RTPMPGetMaxPacketDuration(RTPMediaPacketizer rtpm, UInt32 *outMaxPacketDuration);
1725 
1735  ComponentResult
1736  RTPMPDoUserDialog(RTPMediaPacketizer rtpm, ModalFilterUPP inFilterUPP,
1737  Boolean *canceled);
1738 
1748  ComponentResult
1750  QTAtomContainer inContainer,
1751  QTAtom inParentAtom);
1752 
1762  ComponentResult
1764  QTAtomContainer inOutContainer,
1765  QTAtom inParentAtom);
1766 
1776  ComponentResult
1778 
1788  ComponentResult
1789  RTPMPGetSettings(RTPMediaPacketizer rtpm, QTAtomContainer *outSettings,
1790  SInt32 inFlags);
1791 
1801  ComponentResult
1803  SInt32 inFlags);
1804 
1805  /*============================================================================
1806  RTP Packet Builder
1807  ============================================================================*/
1808  enum
1809  {
1810  kRTPPacketBuilderType = FOUR_CHAR_CODE('rtpb')
1811  };
1812 
1814  typedef struct OpaqueRTPPacketGroupRef *RTPPacketGroupRef;
1815  typedef struct OpaqueRTPPacketRef *RTPPacketRef;
1816  typedef struct OpaqueRTPPacketRepeatedDataRef *RTPPacketRepeatedDataRef;
1817  /* flags for RTPPBBegin/EndPacket, RTPPBBegin/EndPacketGroup*/
1818  enum
1819  {
1820  kRTPPBSetMarkerFlag = 0x00000001,
1821  kRTPPBRepeatPacketFlag = 0x00000002,
1822  kRTPPBSyncSampleFlag = 0x00010000,
1823  kRTPPBBFrameFlag = 0x00020000,
1824  kRTPPBDontSendFlag =
1825  0x10000000 /* when set in EndPacketGroup, will not add group*/
1826  };
1827 
1828  enum
1829  {
1830  kRTPPBUnknownPacketMediaDataLength = 0
1831  };
1832 
1833  /* flags for RTPPBGetSampleData*/
1834  enum
1835  {
1836  kRTPPBEndOfDataFlag = 0x00000001
1837  };
1838 
1839  typedef CALLBACK_API(void, RTPPBCallbackProcPtr)(OSType inSelector,
1840  void *ioParams,
1841  void *inRefCon);
1842  typedef STACK_UPP_TYPE(RTPPBCallbackProcPtr) RTPPBCallbackUPP;
1843  /*-----------------------------------------
1844  RTP Packet Builder selectors
1845  -----------------------------------------*/
1846  enum
1847  {
1848  kRTPPBBeginPacketGroupSelect = 0x0500,
1849  kRTPPBEndPacketGroupSelect = 0x0501,
1850  kRTPPBBeginPacketSelect = 0x0502,
1851  kRTPPBEndPacketSelect = 0x0503,
1852  kRTPPBAddPacketLiteralDataSelect = 0x0504,
1853  kRTPPBAddPacketSampleDataSelect = 0x0505,
1854  kRTPPBAddPacketRepeatedDataSelect = 0x0506,
1855  kRTPPBReleaseRepeatedDataSelect = 0x0507,
1856  kRTPPBSetPacketSequenceNumberSelect = 0x0508,
1857  kRTPPBGetPacketSequenceNumberSelect = 0x0509,
1858  kRTPPBSetCallbackSelect = 0x050A,
1859  kRTPPBGetCallbackSelect = 0x050B,
1860  kRTPPBSetInfoSelect = 0x050C,
1861  kRTPPBGetInfoSelect = 0x050D,
1862  kRTPPBSetPacketTimeStampOffsetSelect = 0x050E,
1863  kRTPPBGetPacketTimeStampOffsetSelect = 0x050F,
1864  kRTPPBAddPacketSampleData64Select = 0x0510,
1865  kRTPPBGetSampleDataSelect = 0x0511,
1866  kRTPPBAddRepeatPacketSelect = 0x0512
1867  };
1868 
1869  /*-----------------------------------------
1870  RTP Packet Builder functions
1871  -----------------------------------------*/
1881  ComponentResult
1882  RTPPBBeginPacketGroup(RTPPacketBuilder rtpb, SInt32 inFlags, UInt32 inTimeStamp,
1883  RTPPacketGroupRef *outPacketGroup);
1884 
1894  ComponentResult
1896  RTPPacketGroupRef inPacketGroup);
1897 
1907  ComponentResult
1908  RTPPBBeginPacket(RTPPacketBuilder rtpb, SInt32 inFlags,
1909  RTPPacketGroupRef inPacketGroup,
1910  UInt32 inPacketMediaDataLength, RTPPacketRef *outPacket);
1911 
1921  ComponentResult
1922  RTPPBEndPacket(RTPPacketBuilder rtpb, SInt32 inFlags,
1923  RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket,
1924  UInt32 inTransmissionTimeOffset, UInt32 inDuration);
1925 
1939  ComponentResult
1941  RTPPacketGroupRef inPacketGroup,
1942  RTPPacketRef inPacket, UInt8 *inData,
1943  UInt32 inDataLength,
1944  RTPPacketRepeatedDataRef *outDataRef);
1945 
1959  ComponentResult
1961  RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket,
1962  RTPMPSampleDataParams *inSampleDataParams,
1963  UInt32 inSampleOffset, UInt32 inSampleDataLength,
1964  RTPPacketRepeatedDataRef *outDataRef);
1965 
1979  ComponentResult
1981  RTPPacketGroupRef inPacketGroup,
1982  RTPPacketRef inPacket,
1983  RTPMPSampleDataParams *inSampleDataParams,
1984  const UInt64 *inSampleOffset,
1985  UInt32 inSampleDataLength,
1986  RTPPacketRepeatedDataRef *outDataRef);
1987 
2001  ComponentResult
2003  RTPPacketGroupRef inPacketGroup,
2004  RTPPacketRef inPacket,
2005  RTPPacketRepeatedDataRef inDataRef);
2006 
2007  /* call when done with repeated data*/
2017  ComponentResult
2019  RTPPacketRepeatedDataRef inDataRef);
2020 
2034  ComponentResult
2036  RTPPacketGroupRef inPacketGroup,
2037  RTPPacketRef inPacket, UInt32 inSequenceNumber);
2038 
2048  ComponentResult
2050  RTPPacketGroupRef inPacketGroup,
2051  RTPPacketRef inPacket, UInt32 *outSequenceNumber);
2052 
2062  ComponentResult
2064  RTPPacketGroupRef inPacketGroup,
2065  RTPPacketRef inPacket, SInt32 inTimeStampOffset);
2066 
2076  ComponentResult
2078  RTPPacketGroupRef inPacketGroup,
2079  RTPPacketRef inPacket, SInt32 *outTimeStampOffset);
2080 
2090  ComponentResult
2092  RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket,
2093  TimeValue inTransmissionOffset, UInt32 inSequenceNumber);
2094 
2108  ComponentResult
2109  RTPPBSetCallback(RTPPacketBuilder rtpb, RTPPBCallbackUPP inCallback,
2110  void *inRefCon);
2111 
2121  ComponentResult
2122  RTPPBGetCallback(RTPPacketBuilder rtpb, RTPPBCallbackUPP *outCallback,
2123  void **outRefCon);
2124 
2134  ComponentResult
2135  RTPPBSetInfo(RTPPacketBuilder rtpb, OSType inSelector, void *ioParams);
2136 
2146  ComponentResult
2147  RTPPBGetInfo(RTPPacketBuilder rtpb, OSType inSelector, void *ioParams);
2148 
2158  ComponentResult
2160  const UInt64 *inStartOffset, UInt8 *outDataBuffer,
2161  UInt32 inBytesToRead, UInt32 *outBytesRead, SInt32 *outFlags);
2162 
2163  /* UPP call backs */
2172  RTPMPDataReleaseUPP
2173  NewRTPMPDataReleaseUPP(RTPMPDataReleaseProcPtr userRoutine);
2174 #if !OPAQUE_UPP_TYPES
2175  enum
2176  {
2177  uppRTPMPDataReleaseProcInfo = 0x000003C0
2178  }; /* pascal no_return_value Func(4_bytes, 4_bytes) */
2179 #ifdef __cplusplus
2180  inline RTPMPDataReleaseUPP
2181  NewRTPMPDataReleaseUPP(RTPMPDataReleaseProcPtr userRoutine)
2182  {
2183  return (RTPMPDataReleaseUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
2184  uppRTPMPDataReleaseProcInfo,
2185  GetCurrentArchitecture());
2186  }
2187 #else
2188 #define NewRTPMPDataReleaseUPP(userRoutine) \
2189  (RTPMPDataReleaseUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
2190  uppRTPMPDataReleaseProcInfo, \
2191  GetCurrentArchitecture())
2192 #endif
2193 #endif
2194 
2203  RTPPBCallbackUPP
2204  NewRTPPBCallbackUPP(RTPPBCallbackProcPtr userRoutine);
2205 #if !OPAQUE_UPP_TYPES
2206  enum
2207  {
2208  uppRTPPBCallbackProcInfo = 0x00000FC0
2209  }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
2210 #ifdef __cplusplus
2211  inline RTPPBCallbackUPP NewRTPPBCallbackUPP(RTPPBCallbackProcPtr userRoutine)
2212  {
2213  return (RTPPBCallbackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
2214  uppRTPPBCallbackProcInfo,
2215  GetCurrentArchitecture());
2216  }
2217 #else
2218 #define NewRTPPBCallbackUPP(userRoutine) \
2219  (RTPPBCallbackUPP) \
2220  NewRoutineDescriptor((ProcPtr)(userRoutine), uppRTPPBCallbackProcInfo, \
2221  GetCurrentArchitecture())
2222 #endif
2223 #endif
2224 
2233  void
2234  DisposeRTPMPDataReleaseUPP(RTPMPDataReleaseUPP userUPP);
2235 #if !OPAQUE_UPP_TYPES
2236 #ifdef __cplusplus
2237  inline void DisposeRTPMPDataReleaseUPP(RTPMPDataReleaseUPP userUPP)
2238  {
2239  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
2240  }
2241 #else
2242 #define DisposeRTPMPDataReleaseUPP(userUPP) DisposeRoutineDescriptor(userUPP)
2243 #endif
2244 #endif
2245 
2254  void
2255  DisposeRTPPBCallbackUPP(RTPPBCallbackUPP userUPP);
2256 #if !OPAQUE_UPP_TYPES
2257 #ifdef __cplusplus
2258  inline void DisposeRTPPBCallbackUPP(RTPPBCallbackUPP userUPP)
2259  {
2260  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
2261  }
2262 #else
2263 #define DisposeRTPPBCallbackUPP(userUPP) DisposeRoutineDescriptor(userUPP)
2264 #endif
2265 #endif
2266 
2275  void
2276  InvokeRTPMPDataReleaseUPP(UInt8 *inData, void *inRefCon,
2277  RTPMPDataReleaseUPP userUPP);
2278 #if !OPAQUE_UPP_TYPES
2279 #ifdef __cplusplus
2280  inline void InvokeRTPMPDataReleaseUPP(UInt8 *inData, void *inRefCon,
2281  RTPMPDataReleaseUPP userUPP)
2282  {
2283  CALL_TWO_PARAMETER_UPP(userUPP, uppRTPMPDataReleaseProcInfo, inData,
2284  inRefCon);
2285  }
2286 #else
2287 #define InvokeRTPMPDataReleaseUPP(inData, inRefCon, userUPP) \
2288  CALL_TWO_PARAMETER_UPP((userUPP), uppRTPMPDataReleaseProcInfo, (inData), \
2289  (inRefCon))
2290 #endif
2291 #endif
2292 
2301  void
2302  InvokeRTPPBCallbackUPP(OSType inSelector, void *ioParams, void *inRefCon,
2303  RTPPBCallbackUPP userUPP);
2304 #if !OPAQUE_UPP_TYPES
2305 #ifdef __cplusplus
2306  inline void InvokeRTPPBCallbackUPP(OSType inSelector, void *ioParams,
2307  void *inRefCon, RTPPBCallbackUPP userUPP)
2308  {
2309  CALL_THREE_PARAMETER_UPP(userUPP, uppRTPPBCallbackProcInfo, inSelector,
2310  ioParams, inRefCon);
2311  }
2312 #else
2313 #define InvokeRTPPBCallbackUPP(inSelector, ioParams, inRefCon, userUPP) \
2314  CALL_THREE_PARAMETER_UPP((userUPP), uppRTPPBCallbackProcInfo, (inSelector), \
2315  (ioParams), (inRefCon))
2316 #endif
2317 #endif
2318 
2319 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
2320 /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
2321 #define NewRTPMPDataReleaseProc(userRoutine) NewRTPMPDataReleaseUPP(userRoutine)
2322 #define NewRTPPBCallbackProc(userRoutine) NewRTPPBCallbackUPP(userRoutine)
2323 #define CallRTPMPDataReleaseProc(userRoutine, inData, inRefCon) \
2324  InvokeRTPMPDataReleaseUPP(inData, inRefCon, userRoutine)
2325 #define CallRTPPBCallbackProc(userRoutine, inSelector, ioParams, inRefCon) \
2326  InvokeRTPPBCallbackUPP(inSelector, ioParams, inRefCon, userRoutine)
2327 #endif /* CALL_NOT_IN_CARBON */
2328 
2329 #if PRAGMA_STRUCT_ALIGN
2330 #pragma options align = reset
2331 #elif PRAGMA_STRUCT_PACKPUSH
2332 #pragma pack(pop)
2333 #elif PRAGMA_STRUCT_PACK
2334 #pragma pack()
2335 #endif
2336 
2337 #ifdef PRAGMA_IMPORT_OFF
2338 #pragma import off
2339 #elif PRAGMA_IMPORT
2340 #pragma import reset
2341 #endif
2342 
2343 #ifdef __cplusplus
2344 }
2345 #endif
2346 
2347 #endif /* __QTSTREAMINGCOMPONENTS__ */
Component Manager Interfaces.
long Fixed
Definition: MacTypes.h:153
unsigned char Boolean
Definition: MacTypes.h:318
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
QuickTime Interfaces.
ComponentResult RTPRssmIncrChunkRefCount(RTPReassembler rtpr, SHChunkRecord *inChunk)
ComponentResult QTSSourcerIdle(QTSSourcer inSourcer, const TimeValue64 *inTime, SInt32 inFlags, SInt32 *outFlags)
ComponentResult RTPRssmSetCapabilities(RTPReassembler rtpr, SInt32 inFlags, SInt32 inFlagsMask)
ComponentResult RTPRssmGetTimeScale(RTPReassembler rtpr, TimeScale *outSHTimeScale)
ComponentResult RTPRssmNewStreamHandler(RTPReassembler rtpr, OSType inSHType, SampleDescriptionHandle inSampleDescription, TimeScale inSHTimeScale, ComponentInstance *outHandler)
ComponentResult RTPRssmReset(RTPReassembler rtpr, SInt32 inFlags)
ComponentResult RTPRssmSendStreamBufferRange(RTPReassembler rtpr, RTPSendStreamBufferRangeParams *inParams)
ComponentResult RTPPBGetPacketSequenceNumber(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket, UInt32 *outSequenceNumber)
OSErr QTSFindMediaPacketizerForPayloadID(long payloadID, RTPPayloadSortRequestPtr inSortInfo, QTAtomContainer *outPacketizerList)
ComponentResult QTSSourcerGetTimeScale(QTSSourcer inSourcer, TimeScale *outTimeScale)
ComponentResult RTPRssmGetInfo(RTPReassembler rtpr, OSType inSelector, void *ioParams)
ComponentResult RTPPBAddRepeatPacket(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket, TimeValue inTransmissionOffset, UInt32 inSequenceNumber)
ComponentResult RTPMPSetPacketBuilder(RTPMediaPacketizer rtpm, ComponentInstance inPacketBuilder)
ComponentResult RTPRssmFillPacketListParams(RTPReassembler rtpr, RTPRssmPacket *inPacketListHead, SInt32 inNumWraparounds, SInt32 inFlags)
ComponentResult RTPRssmInitialize(RTPReassembler rtpr, RTPRssmInitParams *inInitParams)
ComponentResult RTPMPGetMaxPacketSize(RTPMediaPacketizer rtpm, UInt32 *outMaxPacketSize)
void DisposeRTPPBCallbackUPP(RTPPBCallbackUPP userUPP)
void InvokeRTPPBCallbackUPP(OSType inSelector, void *ioParams, void *inRefCon, RTPPBCallbackUPP userUPP)
ComponentResult RTPMPFlush(RTPMediaPacketizer rtpm, SInt32 inFlags, SInt32 *outFlags)
ComponentResult RTPMPGetSettings(RTPMediaPacketizer rtpm, QTAtomContainer *outSettings, SInt32 inFlags)
ComponentResult RTPMPGetSettingsIntoAtomContainerAtAtom(RTPMediaPacketizer rtpm, QTAtomContainer inOutContainer, QTAtom inParentAtom)
OSErr QTSFindReassemblerForPayloadID(UInt8 inPayloadID, RTPPayloadSortRequest *inSortInfo, QTAtomContainer *outReassemblerList)
ComponentResult RTPMPSetTimeBase(RTPMediaPacketizer rtpm, TimeBase inTimeBase)
ComponentResult RTPRssmComputeChunkSize(RTPReassembler rtpr, RTPRssmPacket *inPacketListHead, SInt32 inFlags, UInt32 *outChunkDataSize)
ComponentResult RTPRssmGetPayloadHeaderLength(RTPReassembler rtpr, UInt32 *outPayloadHeaderLength)
ComponentResult RTPMPPreflightMedia(RTPMediaPacketizer rtpm, OSType inMediaType, SampleDescriptionHandle inSampleDescription)
ComponentResult RTPPBSetPacketSequenceNumber(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket, UInt32 inSequenceNumber)
ComponentResult RTPPBEndPacketGroup(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup)
OSErr QTSNewSourcer(void *params, const QTSSourcerInitParams *inInitParams, SInt32 inFlags, ComponentInstance *outSourcer)
ComponentResult RTPRssmSendStreamHandlerChanged(RTPReassembler rtpr)
ComponentResult QTSSourcerGetEnable(QTSSourcer inSourcer, Boolean *outEnableMode, SInt32 inFlags)
void InvokeRTPMPDataReleaseUPP(UInt8 *inData, void *inRefCon, RTPMPDataReleaseUPP userUPP)
ComponentResult RTPMPInitialize(RTPMediaPacketizer rtpm, SInt32 inFlags)
ComponentResult RTPRssmHasCharacteristic(RTPReassembler rtpr, OSType inCharacteristic, Boolean *outHasIt)
ComponentResult RTPPBSetCallback(RTPPacketBuilder rtpb, RTPPBCallbackUPP inCallback, void *inRefCon)
ComponentResult RTPRssmAdjustPacketParams(RTPReassembler rtpr, RTPRssmPacket *inPacket, SInt32 inFlags)
ComponentResult RTPPBAddPacketSampleData64(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket, RTPMPSampleDataParams *inSampleDataParams, const UInt64 *inSampleOffset, UInt32 inSampleDataLength, RTPPacketRepeatedDataRef *outDataRef)
ComponentResult RTPRssmSetSampleDescription(RTPReassembler rtpr, SampleDescriptionHandle inSampleDescription)
ComponentResult RTPRssmSetInfo(RTPReassembler rtpr, OSType inSelector, void *ioParams)
ComponentResult RTPMPGetTimeScale(RTPMediaPacketizer rtpm, TimeScale *outTimeScale)
ComponentResult RTPMPSetSampleData(RTPMediaPacketizer rtpm, const RTPMPSampleDataParams *inSampleData, SInt32 *outFlags)
void DisposeRTPMPDataReleaseUPP(RTPMPDataReleaseUPP userUPP)
ComponentResult RTPPBSetInfo(RTPPacketBuilder rtpb, OSType inSelector, void *ioParams)
ComponentResult RTPRssmSendChunkAndDecrRefCount(RTPReassembler rtpr, SHChunkRecord *inChunk, const SHServerEditParameters *inServerEdit)
ComponentResult RTPRssmCopyDataToChunk(RTPReassembler rtpr, RTPRssmPacket *inPacketListHead, UInt32 inMaxChunkDataSize, SHChunkRecord *inChunk, SInt32 inFlags)
RTPPBCallbackUPP NewRTPPBCallbackUPP(RTPPBCallbackProcPtr userRoutine)
ComponentResult RTPMPSetTimeScale(RTPMediaPacketizer rtpm, TimeScale inTimeScale)
ComponentResult QTSSourcerSetEnable(QTSSourcer inSourcer, Boolean inEnableMode, SInt32 inFlags)
ComponentResult RTPPBEndPacket(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket, UInt32 inTransmissionTimeOffset, UInt32 inDuration)
OSErr QTSFindMediaPacketizerForPayloadName(const char *payloadName, RTPPayloadSortRequestPtr inSortInfo, QTAtomContainer *outPacketizerList)
ComponentResult RTPPBGetSampleData(RTPPacketBuilder rtpb, RTPMPSampleDataParams *inParams, const UInt64 *inStartOffset, UInt8 *outDataBuffer, UInt32 inBytesToRead, UInt32 *outBytesRead, SInt32 *outFlags)
ComponentResult RTPMPSetMaxPacketDuration(RTPMediaPacketizer rtpm, UInt32 inMaxPacketDuration)
OSErr QTSFindReassemblerForPayloadName(const char *inPayloadName, RTPPayloadSortRequest *inSortInfo, QTAtomContainer *outReassemblerList)
ComponentResult RTPMPGetTimeBase(RTPMediaPacketizer rtpm, TimeBase *outTimeBase)
ComponentResult QTSSourcerSetTimeScale(QTSSourcer inSourcer, TimeScale inTimeScale)
ComponentResult QTSSourcerInitialize(QTSSourcer inSourcer, const QTSSourcerInitParams *inInitParams)
ComponentResult RTPMPIdle(RTPMediaPacketizer rtpm, SInt32 inFlags, SInt32 *outFlags)
ComponentResult RTPRssmHandleNewPacket(RTPReassembler rtpr, QTSStreamBuffer *inStreamBuffer, SInt32 inNumWraparounds)
ComponentResult RTPRssmGetChunkAndIncrRefCount(RTPReassembler rtpr, UInt32 inChunkDataSize, const TimeValue64 *inChunkPresentationTime, SHChunkRecord **outChunk)
ComponentResult QTSSourcerGetInfo(QTSSourcer inSourcer, OSType inSelector, void *ioParams)
ComponentResult RTPMPSetInfo(RTPMediaPacketizer rtpm, OSType inSelector, const void *ioParams)
ComponentResult RTPMPGetSettingsAsText(RTPMediaPacketizer rtpm, Handle *text)
OSErr QTSFindMediaPacketizer(MediaPacketizerRequirementsPtr inPacketizerinfo, SampleDescriptionHandle inSampleDescription, RTPPayloadSortRequestPtr inSortInfo, QTAtomContainer *outPacketizerList)
ComponentResult RTPRssmReleasePacketList(RTPReassembler rtpr, RTPRssmPacket *inPacketListHead)
ComponentResult RTPRssmGetCapabilities(RTPReassembler rtpr, SInt32 *outFlags)
ComponentResult RTPMPReset(RTPMediaPacketizer rtpm, SInt32 inFlags)
ComponentResult RTPRssmSetPayloadHeaderLength(RTPReassembler rtpr, UInt32 inPayloadHeaderLength)
ComponentResult RTPRssmSendPacketList(RTPReassembler rtpr, RTPRssmPacket *inPacketListHead, const TimeValue64 *inLastChunkPresentationTime, SInt32 inFlags)
ComponentResult RTPMPSetMediaType(RTPMediaPacketizer rtpm, OSType inMediaType)
ComponentResult RTPMPGetInfo(RTPMediaPacketizer rtpm, OSType inSelector, void *ioParams)
ComponentResult RTPPBBeginPacketGroup(RTPPacketBuilder rtpb, SInt32 inFlags, UInt32 inTimeStamp, RTPPacketGroupRef *outPacketGroup)
ComponentResult RTPMPHasCharacteristic(RTPMediaPacketizer rtpm, OSType inSelector, Boolean *outHasIt)
ComponentResult RTPPBAddPacketRepeatedData(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket, RTPPacketRepeatedDataRef inDataRef)
ComponentResult QTSSourcerSetInfo(QTSSourcer inSourcer, OSType inSelector, void *ioParams)
RTPMPDataReleaseUPP NewRTPMPDataReleaseUPP(RTPMPDataReleaseProcPtr userRoutine)
ComponentResult RTPRssmSetTimeScale(RTPReassembler rtpr, TimeScale inSHTimeScale)
ComponentResult RTPPBAddPacketSampleData(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket, RTPMPSampleDataParams *inSampleDataParams, UInt32 inSampleOffset, UInt32 inSampleDataLength, RTPPacketRepeatedDataRef *outDataRef)
ComponentResult RTPPBSetPacketTimeStampOffset(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket, SInt32 inTimeStampOffset)
ComponentResult RTPRssmSetStreamHandler(RTPReassembler rtpr, ComponentInstance inStreamHandler)
ComponentResult RTPMPDoUserDialog(RTPMediaPacketizer rtpm, ModalFilterUPP inFilterUPP, Boolean *canceled)
ComponentResult RTPPBGetCallback(RTPPacketBuilder rtpb, RTPPBCallbackUPP *outCallback, void **outRefCon)
ComponentResult RTPMPSetMaxPacketSize(RTPMediaPacketizer rtpm, UInt32 inMaxPacketSize)
ComponentResult RTPPBGetPacketTimeStampOffset(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket, SInt32 *outTimeStampOffset)
ComponentResult RTPMPSetSettings(RTPMediaPacketizer rtpm, QTAtomSpecPtr inSettings, SInt32 inFlags)
OSErr QTSFindMediaPacketizerForTrack(Track inTrack, long inSampleDescriptionIndex, RTPPayloadSortRequestPtr inSortInfo, QTAtomContainer *outPacketizerList)
ComponentResult RTPPBBeginPacket(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, UInt32 inPacketMediaDataLength, RTPPacketRef *outPacket)
ComponentResult RTPRssmSendLostChunk(RTPReassembler rtpr, const TimeValue64 *inChunkPresentationTime)
ComponentResult RTPPBReleaseRepeatedData(RTPPacketBuilder rtpb, RTPPacketRepeatedDataRef inDataRef)
ComponentResult RTPMPSetSettingsFromAtomContainerAtAtom(RTPMediaPacketizer rtpm, QTAtomContainer inContainer, QTAtom inParentAtom)
ComponentResult RTPPBGetInfo(RTPPacketBuilder rtpb, OSType inSelector, void *ioParams)
ComponentResult RTPRssmClearCachedPackets(RTPReassembler rtpr, SInt32 inFlags)
ComponentResult RTPPBAddPacketLiteralData(RTPPacketBuilder rtpb, SInt32 inFlags, RTPPacketGroupRef inPacketGroup, RTPPacketRef inPacket, UInt8 *inData, UInt32 inDataLength, RTPPacketRepeatedDataRef *outDataRef)
ComponentResult RTPRssmGetTimeScaleFromPacket(RTPReassembler rtpr, QTSStreamBuffer *inStreamBuffer, TimeScale *outTimeScale)
ComponentResult RTPMPGetMaxPacketDuration(RTPMediaPacketizer rtpm, UInt32 *outMaxPacketDuration)
ComponentResult RTPRssmGetStreamHandler(RTPReassembler rtpr, ComponentInstance *outStreamHandler)
ComponentResult RTPRssmDecrChunkRefCount(RTPReassembler rtpr, SHChunkRecord *inChunk)
ComponentResult RTPMPGetPacketBuilder(RTPMediaPacketizer rtpm, ComponentInstance *outPacketBuilder)
ComponentResult RTPMPGetMediaType(RTPMediaPacketizer rtpm, OSType *outMediaType)
QuickTime Interfaces.
Definition: Components.h:220
Definition: QTStreamingComponents.h:1234
Definition: QTStreamingComponents.h:1222
Definition: Movies.h:530
Definition: QTStreamingComponents.h:167
Definition: QTStreamingComponents.h:262
Definition: QTStreamingComponents.h:272
Definition: QTStreamingComponents.h:222
Definition: QTStreamingComponents.h:239
Definition: QTStreamingComponents.h:285
Definition: QTStreamingComponents.h:83
Definition: QTStreamingComponents.h:198
Definition: QuickTimeStreaming.h:2116
Definition: QTStreamingComponents.h:181
Definition: QTStreamingComponents.h:1355
Definition: QTStreamingComponents.h:1332
Definition: QTStreamingComponents.h:556
Definition: QTStreamingComponents.h:584
Definition: QTStreamingComponents.h:568
Definition: QTStreamingComponents.h:695
Definition: QTStreamingComponents.h:618
Definition: QTStreamingComponents.h:627
Definition: QTStreamingComponents.h:672
Definition: QTStreamingComponents.h:424
Definition: QTStreamingComponents.h:409
Definition: Movies.h:239
Definition: Movies.h:191
Definition: MacTypes.h:110
Definition: MacTypes.h:104