1 {
2 File: QuickTime/QTStreamingComponents.h
3
4 Contains: QuickTime Interfaces.
5
6 Version: QuickTime 7.7.1
7
8 Copyright: � 1990-2012 by Apple Inc., all rights reserved
9
10 Bugs?: For bug reports, consult the following page on
11 the World Wide Web:
12
13 http://bugs.freepascal.org
14
15 }
16 { Pascal Translation Updated: Jonas Maebe, <jonas@freepascal.org>, October 2009 }
17 { Pascal Translation Updated: Jonas Maebe, <jonas@freepascal.org>, October 2012 }
18 {
19 Modified for use with Free Pascal
20 Version 308
21 Please report any bugs to <gpc@microbizz.nl>
22 }
23
24 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
25 {$mode macpas}
26 {$modeswitch cblocks}
27 {$packenum 1}
28 {$macro on}
29 {$inline on}
30 {$calling mwpascal}
31
32 unit QTStreamingComponents;
33 interface
34 {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
35 {$setc GAP_INTERFACES_VERSION := $0308}
36
37 {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
38 {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
39 {$endc}
40
41 {$ifc defined CPUPOWERPC and defined CPUI386}
42 {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
43 {$endc}
44 {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
45 {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
46 {$endc}
47
48 {$ifc not defined __ppc__ and defined CPUPOWERPC32}
49 {$setc __ppc__ := 1}
50 {$elsec}
51 {$setc __ppc__ := 0}
52 {$endc}
53 {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
54 {$setc __ppc64__ := 1}
55 {$elsec}
56 {$setc __ppc64__ := 0}
57 {$endc}
58 {$ifc not defined __i386__ and defined CPUI386}
59 {$setc __i386__ := 1}
60 {$elsec}
61 {$setc __i386__ := 0}
62 {$endc}
63 {$ifc not defined __x86_64__ and defined CPUX86_64}
64 {$setc __x86_64__ := 1}
65 {$elsec}
66 {$setc __x86_64__ := 0}
67 {$endc}
68 {$ifc not defined __arm__ and defined CPUARM}
69 {$setc __arm__ := 1}
70 {$elsec}
71 {$setc __arm__ := 0}
72 {$endc}
73 {$ifc not defined __arm64__ and defined CPUAARCH64}
74 {$setc __arm64__ := 1}
75 {$elsec}
76 {$setc __arm64__ := 0}
77 {$endc}
78
79 {$ifc defined cpu64}
80 {$setc __LP64__ := 1}
81 {$elsec}
82 {$setc __LP64__ := 0}
83 {$endc}
84
85
86 {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
87 {$error Conflicting definitions for __ppc__ and __i386__}
88 {$endc}
89
90 {$ifc defined __ppc__ and __ppc__}
91 {$setc TARGET_CPU_PPC := TRUE}
92 {$setc TARGET_CPU_PPC64 := FALSE}
93 {$setc TARGET_CPU_X86 := FALSE}
94 {$setc TARGET_CPU_X86_64 := FALSE}
95 {$setc TARGET_CPU_ARM := FALSE}
96 {$setc TARGET_CPU_ARM64 := FALSE}
97 {$setc TARGET_OS_MAC := TRUE}
98 {$setc TARGET_OS_IPHONE := FALSE}
99 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
100 {$setc TARGET_OS_EMBEDDED := FALSE}
101 {$elifc defined __ppc64__ and __ppc64__}
102 {$setc TARGET_CPU_PPC := FALSE}
103 {$setc TARGET_CPU_PPC64 := TRUE}
104 {$setc TARGET_CPU_X86 := FALSE}
105 {$setc TARGET_CPU_X86_64 := FALSE}
106 {$setc TARGET_CPU_ARM := FALSE}
107 {$setc TARGET_CPU_ARM64 := FALSE}
108 {$setc TARGET_OS_MAC := TRUE}
109 {$setc TARGET_OS_IPHONE := FALSE}
110 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
111 {$setc TARGET_OS_EMBEDDED := FALSE}
112 {$elifc defined __i386__ and __i386__}
113 {$setc TARGET_CPU_PPC := FALSE}
114 {$setc TARGET_CPU_PPC64 := FALSE}
115 {$setc TARGET_CPU_X86 := TRUE}
116 {$setc TARGET_CPU_X86_64 := FALSE}
117 {$setc TARGET_CPU_ARM := FALSE}
118 {$setc TARGET_CPU_ARM64 := FALSE}
119 {$ifc defined iphonesim}
120 {$setc TARGET_OS_MAC := FALSE}
121 {$setc TARGET_OS_IPHONE := TRUE}
122 {$setc TARGET_IPHONE_SIMULATOR := TRUE}
123 {$elsec}
124 {$setc TARGET_OS_MAC := TRUE}
125 {$setc TARGET_OS_IPHONE := FALSE}
126 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
127 {$endc}
128 {$setc TARGET_OS_EMBEDDED := FALSE}
129 {$elifc defined __x86_64__ and __x86_64__}
130 {$setc TARGET_CPU_PPC := FALSE}
131 {$setc TARGET_CPU_PPC64 := FALSE}
132 {$setc TARGET_CPU_X86 := FALSE}
133 {$setc TARGET_CPU_X86_64 := TRUE}
134 {$setc TARGET_CPU_ARM := FALSE}
135 {$setc TARGET_CPU_ARM64 := FALSE}
136 {$ifc defined iphonesim}
137 {$setc TARGET_OS_MAC := FALSE}
138 {$setc TARGET_OS_IPHONE := TRUE}
139 {$setc TARGET_IPHONE_SIMULATOR := TRUE}
140 {$elsec}
141 {$setc TARGET_OS_MAC := TRUE}
142 {$setc TARGET_OS_IPHONE := FALSE}
143 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
144 {$endc}
145 {$setc TARGET_OS_EMBEDDED := FALSE}
146 {$elifc defined __arm__ and __arm__}
147 {$setc TARGET_CPU_PPC := FALSE}
148 {$setc TARGET_CPU_PPC64 := FALSE}
149 {$setc TARGET_CPU_X86 := FALSE}
150 {$setc TARGET_CPU_X86_64 := FALSE}
151 {$setc TARGET_CPU_ARM := TRUE}
152 {$setc TARGET_CPU_ARM64 := FALSE}
153 {$setc TARGET_OS_MAC := FALSE}
154 {$setc TARGET_OS_IPHONE := TRUE}
155 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
156 {$setc TARGET_OS_EMBEDDED := TRUE}
157 {$elifc defined __arm64__ and __arm64__}
158 {$setc TARGET_CPU_PPC := FALSE}
159 {$setc TARGET_CPU_PPC64 := FALSE}
160 {$setc TARGET_CPU_X86 := FALSE}
161 {$setc TARGET_CPU_X86_64 := FALSE}
162 {$setc TARGET_CPU_ARM := FALSE}
163 {$setc TARGET_CPU_ARM64 := TRUE}
164 {$ifc defined ios}
165 {$setc TARGET_OS_MAC := FALSE}
166 {$setc TARGET_OS_IPHONE := TRUE}
167 {$setc TARGET_OS_EMBEDDED := TRUE}
168 {$elsec}
169 {$setc TARGET_OS_MAC := TRUE}
170 {$setc TARGET_OS_IPHONE := FALSE}
171 {$setc TARGET_OS_EMBEDDED := FALSE}
172 {$endc}
173 {$setc TARGET_IPHONE_SIMULATOR := FALSE}
174 {$elsec}
175 {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
176 {$endc}
177
178 {$ifc defined __LP64__ and __LP64__ }
179 {$setc TARGET_CPU_64 := TRUE}
180 {$elsec}
181 {$setc TARGET_CPU_64 := FALSE}
182 {$endc}
183
184 {$ifc defined FPC_BIG_ENDIAN}
185 {$setc TARGET_RT_BIG_ENDIAN := TRUE}
186 {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
187 {$elifc defined FPC_LITTLE_ENDIAN}
188 {$setc TARGET_RT_BIG_ENDIAN := FALSE}
189 {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
190 {$elsec}
191 {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
192 {$endc}
193 {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
194 {$setc CALL_NOT_IN_CARBON := FALSE}
195 {$setc OLDROUTINENAMES := FALSE}
196 {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
197 {$setc OPAQUE_UPP_TYPES := TRUE}
198 {$setc OTCARBONAPPLICATION := TRUE}
199 {$setc OTKERNEL := FALSE}
200 {$setc PM_USE_SESSION_APIS := TRUE}
201 {$setc TARGET_API_MAC_CARBON := TRUE}
202 {$setc TARGET_API_MAC_OS8 := FALSE}
203 {$setc TARGET_API_MAC_OSX := TRUE}
204 {$setc TARGET_CARBON := TRUE}
205 {$setc TARGET_CPU_68K := FALSE}
206 {$setc TARGET_CPU_MIPS := FALSE}
207 {$setc TARGET_CPU_SPARC := FALSE}
208 {$setc TARGET_OS_UNIX := FALSE}
209 {$setc TARGET_OS_WIN32 := FALSE}
210 {$setc TARGET_RT_MAC_68881 := FALSE}
211 {$setc TARGET_RT_MAC_CFM := FALSE}
212 {$setc TARGET_RT_MAC_MACHO := TRUE}
213 {$setc TYPED_FUNCTION_POINTERS := TRUE}
214 {$setc TYPE_BOOL := FALSE}
215 {$setc TYPE_EXTENDED := FALSE}
216 {$setc TYPE_LONGLONG := TRUE}
217 uses MacTypes,Components,Dialogs,Movies,QuickTimeStreaming;
218 {$endc} {not MACOSALLINCLUDE}
219
220
221 {$ifc TARGET_OS_MAC}
222
223 {$ALIGN MAC68K}
224
225
226 { QuickTime is not available to 64-bit clients }
227
228 {$ifc not TARGET_CPU_64}
229
230 {============================================================================
231 Stream Sourcer
232 ============================================================================}
233 const
234 kQTSSourcerType = FourCharCode('srcr');
235
236 type
237 QTSSourcer = ComponentInstance;
238 const
239 kQTSSGChannelSourcerType = FourCharCode('sgch');
240 kQTSMovieTrackSourcerType = FourCharCode('trak');
241 kQTSPushDataSourcerType = FourCharCode('push');
242
243 { flags for sourcer data }
244 const
245 kQTSSourcerDataFlag_SyncSample = $00000001;
246 kQTSPushDataSourcerFlag_SampleTimeIsValid = $80000000;
247
248
249 const
250 kQTSSourcerInitParamsVersion1 = 1;
251
252 type
253 QTSSourcerInitParamsPtr = ^QTSSourcerInitParams;
254 QTSSourcerInitParams = record
255 version: SInt32;
256 flags: SInt32;
257 dataType: OSType;
258 data: UnivPtr;
259 dataLength: UInt32;
260 end;
261 {
262 * QTSNewSourcer()
263 *
264 * Availability:
265 * Mac OS X: in version 10.0 and later in QuickTime.framework
266 * CarbonLib: in CarbonLib 1.3 and later
267 * Non-Carbon CFM: in QTStreamLib 5.0 and later
268 }
QTSNewSourcernull269 function QTSNewSourcer( params: UnivPtr; const (*var*) inInitParams: QTSSourcerInitParams; inFlags: SInt32; var outSourcer: ComponentInstance ): OSErr; external name '_QTSNewSourcer';
270 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
271
272
273 { info selectors for sourcers - get and set }
274 const
275 kQTSInfo_Track = FourCharCode('trak'); { QTSTrackParams* }
276 kQTSInfo_Loop = FourCharCode('loop'); { QTSLoopParams* }
277 kQTSInfo_SourcerTiming = FourCharCode('stim'); { QTSSourcerTimingParams* }
278 kQTSInfo_TargetFrameRate = FourCharCode('tfps'); { Fixed * in frames per second }
279 kQTSInfo_PushData = FourCharCode('push'); { QTSPushDataParams* }
280 kQTSInfo_SourcerCallbackProc = FourCharCode('scbp'); { QTSSourcerCallbackProcParams* }
281 kQTSInfo_TargetDataRate = FourCharCode('tdrt'); { UInt32 * in bytes per second }
282 kQTSInfo_AudioAutoGainOnOff = FourCharCode('agc '); { Boolean* - error if unavailable}
283 kQTSInfo_AudioGain = FourCharCode('gain'); { Fixed* kFixed1 is unity gain }
284 kQTSInfo_CroppedInputRect = FourCharCode('crpr'); { Rect* - defined relative to kQTSInfo_FullInputRect below }
285 kQTSInfo_SpatialSettings = FourCharCode('sptl'); { pointer to SCSpatialSettings struct}
286 kQTSInfo_TemporalSettings = FourCharCode('tprl'); { pointer to SCTemporalSettings struct}
287 kQTSInfo_DataRateSettings = FourCharCode('drat'); { pointer to SCDataRateSettings struct}
288 kQTSInfo_CodecFlags = FourCharCode('cflg'); { pointer to CodecFlags}
289 kQTSInfo_CodecSettings = FourCharCode('cdec'); { pointer to Handle}
290 kQTSInfo_ForceKeyValue = FourCharCode('ksim'); { pointer to long}
291 kQTSInfo_SoundSampleRate = FourCharCode('ssrt'); { pointer to UnsignedFixed}
292 kQTSInfo_SoundSampleSize = FourCharCode('ssss'); { pointer to short}
293 kQTSInfo_SoundChannelCount = FourCharCode('sscc'); { pointer to short}
294 kQTSInfo_SoundCompression = FourCharCode('ssct'); { pointer to OSType}
295 kQTSInfo_CompressionList = FourCharCode('ctyl'); { pointer to OSType Handle}
296 kQTSInfo_VideoHue = FourCharCode('hue '); { UInt16* }
297 kQTSInfo_VideoSaturation = FourCharCode('satr'); { UInt16* }
298 kQTSInfo_VideoContrast = FourCharCode('trst'); { UInt16* }
299 kQTSInfo_VideoBrightness = FourCharCode('brit'); { UInt16* }
300 kQTSInfo_VideoSharpness = FourCharCode('shrp'); { UInt16* }
301 kQTSInfo_TimeScale = FourCharCode('scal'); { UInt32* }
302 kQTSInfo_SGChannelDeviceName = FourCharCode('innm'); { Handle* }
303 kQTSInfo_SGChannelDeviceList = FourCharCode('srdl'); { SGDeviceList* }
304 kQTSInfo_SGChannelDeviceInput = FourCharCode('sdii'); { short* }
305 kQTSInfo_SGChannelSettings = FourCharCode('sesg'); { QTSSGChannelSettingsParams }
306 kQTSInfo_PreviewWhileRecordingMode = FourCharCode('srpr'); { Boolean* }
307 kQTSInfo_CompressionParams = FourCharCode('sccp'); { QTAtomContainer* }
308
309 { info selectors for sourcers - get only}
310 const
311 kQTSInfo_SGChannel = FourCharCode('sgch'); { SGChannel* }
312 kQTSInfo_SGChannelInputName = FourCharCode('srnm'); { Handle* }
313 kQTSInfo_FullInputRect = FourCharCode('fulr'); { Rect* }
314
315 { loop flags }
316 const
317 kQTSLoopFlag_Loop = $00000001;
318
319 const
320 kQTSLoopParamsVersion1 = 1;
321
322 type
323 QTSLoopParamsPtr = ^QTSLoopParams;
324 QTSLoopParams = record
325 version: SInt32;
326 flags: SInt32;
327 loopFlags: SInt32;
328 flagsMask: SInt32;
329 numLoops: SInt32;
330 end;
331 const
332 kQTSTrackParamsVersion1 = 1;
333
334 type
335 QTSTrackParamsPtr = ^QTSTrackParams;
336 QTSTrackParams = record
337 version: SInt32;
338 flags: SInt32;
339 track: Track_fix;
340 trackStartOffset: TimeValue64; { to start other than at the beginning otherwise set to 0}
341 duration: TimeValue64; { to limit the duration otherwise set to 0}
342 loopParams: QTSLoopParamsPtr; { set to NULL if not using; default is no looping }
343 end;
344 const
345 kQTSSourcerTimingParamsVersion1 = 1;
346
347 type
348 QTSSourcerTimingParamsPtr = ^QTSSourcerTimingParams;
349 QTSSourcerTimingParams = record
350 version: SInt32;
351 flags: SInt32;
352 timeScale_: TimeScale;
353 presentationStartTime: TimeValue64;
354 presentationEndTime: TimeValue64;
355 presentationCurrentTime: TimeValue64;
356 localStartTime: TimeValue64;
357 localEndTime: TimeValue64;
358 localCurrentTime: TimeValue64;
359 end;
360 const
361 kQTSPushDataParamsVersion1 = 1;
362
363 const
364 kQTSPushDataFlag_SampleTimeIsValid = $00000001;
365 kQTSPushDataFlag_DurationIsValid = $00000002;
366
367 type
368 QTSPushDataParamsPtr = ^QTSPushDataParams;
369 QTSPushDataParams = record
370 version: SInt32;
371 flags: SInt32;
372 sampleDescription: SampleDescriptionHandle; { caller owns the handle }
373 sampleDescSeed: UInt32;
374 sampleTime: TimeValue64; { also set flag if you set this }
375 duration: TimeValue64; { also set flag if you set this }
376 dataLength: UInt32;
377 dataPtr: UnivPtr; { this does not have to be a real macintosh Ptr }
378 end;
379 const
380 kQTSSourcerCallbackProcParamsVersion1 = 1;
381
382
383 type
384 QTSSourcerCallbackProcParamsPtr = ^QTSSourcerCallbackProcParams;
385 QTSSourcerCallbackProcParams = record
386 version: SInt32;
387 flags: SInt32;
388 proc: QTSNotificationUPP;
389 refCon: UnivPtr;
390 end;
391 { track sourcer callback selectors}
392 const
393 kQTSSourcerCallback_Done = FourCharCode('done'); { QTSSourcerDoneParams* }
394
395
396 { push data sourcer callback selectors}
397 const
398 kQTSPushDataSourcerCallback_HasCharacteristic = $050D; { QTSPushDataHasCharacteristicParams* }
399 kQTSPushDataSourcerCallback_SetInfo = $0507; { QTSPushDataInfoParams* }
400 kQTSPushDataSourcerCallback_GetInfo = $0508; { QTSPushDataInfoParams* }
401
402 type
403 QTSPushDataHasCharacteristicParamsPtr = ^QTSPushDataHasCharacteristicParams;
404 QTSPushDataHasCharacteristicParams = record
405 version: SInt32;
406 flags: SInt32;
407 characteristic: OSType;
408 returnedHasIt: Boolean;
409 reserved1: SInt8;
410 reserved2: SInt8;
411 reserved3: SInt8;
412 end;
413 type
414 QTSPushDataInfoParamsPtr = ^QTSPushDataInfoParams;
415 QTSPushDataInfoParams = record
416 version: SInt32;
417 flags: SInt32;
418 selector: OSType;
419 ioParams: UnivPtr;
420 end;
421 const
422 kQTSSourcerDoneParamsVersion1 = 1;
423
424 type
425 QTSSourcerDoneParamsPtr = ^QTSSourcerDoneParams;
426 QTSSourcerDoneParams = record
427 version: SInt32;
428 flags: SInt32;
429 sourcer: ComponentInstance;
430 end;
431 type
432 QTSSGChannelSettingsParamsPtr = ^QTSSGChannelSettingsParams;
433 QTSSGChannelSettingsParams = record
434 settings: UserData;
435 flags: SInt32;
436 end;
437
438 {-----------------------------------------
439 Stream Sourcer Selectors
440 -----------------------------------------}
441 const
442 kQTSSourcerInitializeSelect = $0500;
443 kQTSSourcerSetEnableSelect = $0503;
444 kQTSSourcerGetEnableSelect = $0504;
445 kQTSSourcerSetInfoSelect = $0507;
446 kQTSSourcerGetInfoSelect = $0508;
447 kQTSSourcerSetTimeScaleSelect = $050E;
448 kQTSSourcerGetTimeScaleSelect = $050F;
449 kQTSSourcerIdleSelect = $0516;
450
451 {-----------------------------------------
452 Stream Sourcer Prototypes
453 -----------------------------------------}
454 {
455 * QTSSourcerInitialize()
456 *
457 * Availability:
458 * Mac OS X: in version 10.1 and later in QuickTime.framework
459 * CarbonLib: in CarbonLib 1.6 and later
460 * Non-Carbon CFM: in QTStreamLib 5.0.1 and later
461 }
QTSSourcerInitializenull462 function QTSSourcerInitialize( inSourcer: QTSSourcer; const (*var*) inInitParams: QTSSourcerInitParams ): ComponentResult; external name '_QTSSourcerInitialize';
463 (* AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER *)
464
465
466 {
467 * QTSSourcerIdle()
468 *
469 * Availability:
470 * Mac OS X: in version 10.0 and later in QuickTime.framework
471 * CarbonLib: in CarbonLib 1.3 and later
472 * Non-Carbon CFM: in QTStreamLib 5.0 and later
473 }
QTSSourcerIdlenull474 function QTSSourcerIdle( inSourcer: QTSSourcer; (*const*) var inTime: TimeValue64; inFlags: SInt32; var outFlags: SInt32 ): ComponentResult; external name '_QTSSourcerIdle';
475 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
476
477
478 {
479 * QTSSourcerSetEnable()
480 *
481 * Availability:
482 * Mac OS X: in version 10.0 and later in QuickTime.framework
483 * CarbonLib: in CarbonLib 1.3 and later
484 * Non-Carbon CFM: in QTStreamLib 5.0 and later
485 }
QTSSourcerSetEnablenull486 function QTSSourcerSetEnable( inSourcer: QTSSourcer; inEnableMode: Boolean; inFlags: SInt32 ): ComponentResult; external name '_QTSSourcerSetEnable';
487 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
488
489
490 {
491 * QTSSourcerGetEnable()
492 *
493 * Availability:
494 * Mac OS X: in version 10.0 and later in QuickTime.framework
495 * CarbonLib: in CarbonLib 1.3 and later
496 * Non-Carbon CFM: in QTStreamLib 5.0 and later
497 }
QTSSourcerGetEnablenull498 function QTSSourcerGetEnable( inSourcer: QTSSourcer; var outEnableMode: Boolean; inFlags: SInt32 ): ComponentResult; external name '_QTSSourcerGetEnable';
499 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
500
501
502 {
503 * QTSSourcerSetTimeScale()
504 *
505 * Availability:
506 * Mac OS X: in version 10.0 and later in QuickTime.framework
507 * CarbonLib: in CarbonLib 1.3 and later
508 * Non-Carbon CFM: in QTStreamLib 5.0 and later
509 }
QTSSourcerSetTimeScalenull510 function QTSSourcerSetTimeScale( inSourcer: QTSSourcer; inTimeScale: TimeScale ): ComponentResult; external name '_QTSSourcerSetTimeScale';
511 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
512
513
514 {
515 * QTSSourcerGetTimeScale()
516 *
517 * Availability:
518 * Mac OS X: in version 10.0 and later in QuickTime.framework
519 * CarbonLib: in CarbonLib 1.3 and later
520 * Non-Carbon CFM: in QTStreamLib 5.0 and later
521 }
QTSSourcerGetTimeScalenull522 function QTSSourcerGetTimeScale( inSourcer: QTSSourcer; var outTimeScale: TimeScale ): ComponentResult; external name '_QTSSourcerGetTimeScale';
523 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
524
525
526 {
527 * QTSSourcerSetInfo()
528 *
529 * Availability:
530 * Mac OS X: in version 10.0 and later in QuickTime.framework
531 * CarbonLib: in CarbonLib 1.3 and later
532 * Non-Carbon CFM: in QTStreamLib 5.0 and later
533 }
QTSSourcerSetInfonull534 function QTSSourcerSetInfo( inSourcer: QTSSourcer; inSelector: OSType; ioParams: UnivPtr ): ComponentResult; external name '_QTSSourcerSetInfo';
535 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
536
537
538 {
539 * QTSSourcerGetInfo()
540 *
541 * Availability:
542 * Mac OS X: in version 10.0 and later in QuickTime.framework
543 * CarbonLib: in CarbonLib 1.3 and later
544 * Non-Carbon CFM: in QTStreamLib 5.0 and later
545 }
QTSSourcerGetInfonull546 function QTSSourcerGetInfo( inSourcer: QTSSourcer; inSelector: OSType; ioParams: UnivPtr ): ComponentResult; external name '_QTSSourcerGetInfo';
547 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
548
549
550 const
551 kQTSInfo_InputDeviceName = FourCharCode('innm'); { Handle* }
552 kQTSInfo_InputSourceName = FourCharCode('srnm'); { Handle* }
553
554
555 {============================================================================
556 Stream Handler
557 ============================================================================}
558
559 {
560 Server edits are only valid for the current chunk
561 }
562 type
563 SHServerEditParametersPtr = ^SHServerEditParameters;
564 SHServerEditParameters = record
565 version: UInt32;
566 editRate: Fixed;
567 dataStartTime_mediaAxis: TimeValue64;
568 dataEndTime_mediaAxis: TimeValue64;
569 end;
570 const
571 kSHNoChunkDispatchFlags = 0;
572 kSHChunkFlagSyncSample = 1 shl 2;
573 kSHChunkFlagDataLoss = 1 shl 4;
574 kSHChunkFlagExtended = 1 shl 5;
575
576 type
577 SHChunkRecordPtr = ^SHChunkRecord;
578 SHChunkRecord = record
579 version: UInt32;
580 reserved1: SIGNEDLONG;
581 flags: SInt32;
582 dataSize: UInt32;
583 dataPtr: UInt8Ptr;
584 reserved2: SIGNEDLONG;
585 reserved3: SIGNEDLONG;
586 presentationTime: TimeValue64;
587
588 reserved4: SIGNEDLONG;
589 reserved5: SIGNEDLONG;
590 serverEditParameters: {const} SHServerEditParametersPtr;
591 reserved6: SIGNEDLONG;
592 reserved7: SIGNEDLONG;
593 end;
594 const
595 kSHNumExtendedDataLongs = 10;
596
597 const
598 kSHExtendedChunkFlag_HasSampleCount = 1 shl 0;
599 kSHExtendedChunkFlag_HasFrameLengths = 1 shl 1;
600
601 type
602 SHExtendedChunkRecordPtr = ^SHExtendedChunkRecord;
603 SHExtendedChunkRecord = record
604 chunk: SHChunkRecord;
605 extendedFlags: SInt32;
606 extendedData: array [0..9] of SInt32;
607 end;
608
609
610 {============================================================================
611 RTP Components
612 ============================================================================}
613
614 type
615 RTPSSRC = UInt32;
616 const
617 kRTPInvalidSSRC = 0;
618
619
620 { RTP standard content encodings for audio }
621 const
622 kRTPPayload_PCMU = 0; { 8kHz PCM mu-law mono }
623 kRTPPayload_1016 = 1; { 8kHz CELP (Fed Std 1016) mono }
624 kRTPPayload_G721 = 2; { 8kHz G.721 ADPCM mono }
625 kRTPPayload_GSM = 3; { 8kHz GSM mono }
626 kRTPPayload_G723 = 4; { 8kHz G.723 ADPCM mono }
627 kRTPPayload_DVI_8 = 5; { 8kHz Intel DVI ADPCM mono }
628 kRTPPayload_DVI_16 = 6; { 16kHz Intel DVI ADPCM mono }
629 kRTPPayload_LPC = 7; { 8kHz LPC }
630 kRTPPayload_PCMA = 8; { 8kHz PCM a-law mono }
631 kRTPPayload_L16_44_2 = 10; { 44.1kHz 16-bit linear stereo }
632 kRTPPayload_L16_44_1 = 11; { 44.1kHz 16-bit linear mono }
633 kRTPPayload_PureVoice = 12; { 8kHz PureVoice mono (QCELP) }
634 kRTPPayload_MPEGAUDIO = 14; { MPEG I and II audio }
635 kRTPPayload_DVI_11 = 16; { 11kHz Intel DVI ADPCM mono }
636 kRTPPayload_DVI_22 = 17; { 22kHz Intel DVI ADPCM mono }
637
638 { RTP standard content encodings for video }
639 const
640 kRTPPayload_CELLB = 25; { Sun CellB }
641 kRTPPayload_JPEG = 26; { JPEG }
642 kRTPPayload_CUSEEME = 27; { Cornell CU-SeeMe }
643 kRTPPayload_NV = 28; { Xerox PARC nv }
644 kRTPPayload_PICWIN = 29; { BBN Picture Window }
645 kRTPPayload_CPV = 30; { Bolter CPV }
646 kRTPPayload_H261 = 31; { CCITT H.261 }
647 kRTPPayload_MPEGVIDEO = 32; { MPEG I and II video }
648 kRTPPayload_H263 = 34; { CCITT H.263 }
649
650 { Other RTP standard content encodings }
651 const
652 kRTPPayload_MPEG2T = 33; { MPEG 2 Transport }
653
654 { Dynamic encodings }
655 const
656 kRTPPayload_FirstDynamic = 96;
657 kRTPPayload_LastDynamic = 127;
658 kRTPPayload_Unknown = $FF;
659
660
661 {
662 -----------------------------------------
663 RTP Info selectors
664 -----------------------------------------
665 }
666 { ----- these are get and set ----- }
667 const
668 kRTPInfo_SSRC = FourCharCode('ssrc'); { UInt32* }
669 kRTPInfo_NextSeqNum = FourCharCode('rnsn'); { UInt16* }
670
671 {-----------------------------------------
672 RTP Statistics
673 -----------------------------------------}
674 const
675 kRTPTotalReceivedPktsStat = FourCharCode('trcp');
676 kRTPTotalLostPktsStat = FourCharCode('tlsp');
677 kRTPTotalProcessedPktsStat = FourCharCode('tprp');
678 kRTPTotalDroppedPktsStat = FourCharCode('tdrp');
679 kRTPBadHeaderDroppedPktsStat = FourCharCode('bhdp');
680 kRTPOurHeaderDroppedPktsStat = FourCharCode('ohdp');
681 kRTPNotReceivingSenderDroppedPktsStat = FourCharCode('nsdp');
682 kRTPNotProcessingDroppedPktsStat = FourCharCode('npdp');
683 kRTPBadSeqDroppedPktsStat = FourCharCode('bsdp');
684 kRTPArriveTooLatePktsStat = FourCharCode('artl');
685 kRTPWaitForSeqDroppedPktsStat = FourCharCode('wsdp');
686 kRTPBadStateDroppedPktsStat = FourCharCode('stdp');
687 kRTPBadPayloadDroppedPktsStat = FourCharCode('bpdp');
688 kRTPNoTimeScaleDroppedPktsStat = FourCharCode('ntdp');
689 kRTPDupSeqNumDroppedPktsStat = FourCharCode('dsdp');
690 kRTPLostPktsPercentStat = FourCharCode('lspp');
691 kRTPDroppedPktsPercentStat = FourCharCode('dppp');
692 kRTPTotalUnprocessedPktsPercentStat = FourCharCode('tupp');
693 kRTPRTCPDataRateStat = FourCharCode('rrcd');
694 kRTPPayloadIDStat = FourCharCode('rpid');
695 kRTPPayloadNameStat = FourCharCode('rpnm');
696 kRTPNumPktsInQueueStat = FourCharCode('rnpq');
697 kRTPTotalPktsInQueueStat = FourCharCode('rtpq');
698 kRTPTotalOutOfOrderPktsStat = FourCharCode('rtoo');
699 kRTPRetransmissionStat = FourCharCode('rrtx');
700
701
702 {-----------------------------------------
703 Payload Info
704 -----------------------------------------}
705 const
706 kRTPPayloadSpeedTag = FourCharCode('sped'); { 0-255, 255 is fastest}
707 kRTPPayloadLossRecoveryTag = FourCharCode('loss'); { 0-255, 0 can't handle any loss, 128 can handle 50% packet loss}
708 kRTPPayloadConformanceTag = FourCharCode('conf'); { more than one of these can be present}
709
710 type
711 RTPPayloadCharacteristicPtr = ^RTPPayloadCharacteristic;
712 RTPPayloadCharacteristic = record
713 tag: OSType;
714 value: SIGNEDLONG;
715 end;
716 {
717 pass RTPPayloadSortRequest to QTSFindMediaPacketizer or QTSFindMediaPacketizerForTrack.
718 define the characteristics to sort by. tag is key to sort on. value is positive for ascending
719 sort (low value first), negative for descending sort (high value first).
720 }
721 type
722 RTPPayloadSortRequest = record
723 characteristicCount: SIGNEDLONG;
724 characteristic: array [0..0] of RTPPayloadCharacteristic; { tag is key to sort on, value is + for ascending, - for descending}
725 end;
726 RTPPayloadSortRequestPtr = ^RTPPayloadSortRequest;
727 { flags for RTPPayloadInfo }
728 const
729 kRTPPayloadTypeStaticFlag = $00000001;
730 kRTPPayloadTypeDynamicFlag = $00000002;
731
732 type
733 RTPPayloadInfo = record
734 payloadFlags: SIGNEDLONG;
735 payloadID: UInt8;
736 reserved1: SInt8;
737 reserved2: SInt8;
738 reserved3: SInt8;
739 payloadName: array [0..1] of SInt8;
740 end;
741 RTPPayloadInfoPtr = ^RTPPayloadInfo;
742 type
743 RTPPayloadInfoHandle = ^RTPPayloadInfoPtr;
744 {============================================================================
745 RTP Reassembler
746 ============================================================================}
747 type
748 RTPReassembler = ComponentInstance;
749 const
750 kRTPReassemblerType = FourCharCode('rtpr');
751
752 const
753 kRTPBaseReassemblerType = FourCharCode('gnrc');
754 kRTP261ReassemblerType = FourCharCode('h261');
755 kRTP263ReassemblerType = FourCharCode('h263');
756 kRTP263PlusReassemblerType = FourCharCode('263+');
757 kRTPAudioReassemblerType = FourCharCode('soun');
758 kRTPQTReassemblerType = FourCharCode('qtim');
759 kRTPPureVoiceReassemblerType = FourCharCode('Qclp');
760 kRTPJPEGReassemblerType = FourCharCode('jpeg');
761 kRTPQDesign2ReassemblerType = FourCharCode('QDM2');
762 kRTPSorensonReassemblerType = FourCharCode('SVQ1');
763 kRTPMP3ReassemblerType = FourCharCode('mp3 ');
764 kRTPMPEG4AudioReassemblerType = FourCharCode('mp4a');
765 kRTPMPEG4VideoReassemblerType = FourCharCode('mp4v');
766
767 type
768 RTPRssmInitParamsPtr = ^RTPRssmInitParams;
769 RTPRssmInitParams = record
770 ssrc: RTPSSRC;
771 payloadType: UInt8;
772 reserved1: UInt8;
773 reserved2: UInt8;
774 reserved3: UInt8;
775 timeBase_: TimeBase;
776 timeScale_: TimeScale;
777 end;
778 type
779 RTPDescParamsPtr = ^RTPDescParams;
780 RTPDescParams = record
781 container: QTAtomContainer;
782 presentationParentAtom: QTAtom;
783 streamParentAtom: QTAtom;
784 end;
785 type
786 RTPRssmMoreInitParamsPtr = ^RTPRssmMoreInitParams;
787 RTPRssmMoreInitParams = record
788 initParams: RTPRssmInitParams;
789 version: SInt32;
790 desc: RTPDescParams;
791 end;
792 const
793 kRTPRssmMoreInitParamsVersion1 = 1;
794
795
796 { get/set info selectors}
797 const
798 kRTPRssmInfo_MoreInitParams = FourCharCode('rrmi');
799
800
801 type
802 RTPRssmPacketPtr = ^RTPRssmPacket;
803 RTPRssmPacket = record
804 next: RTPRssmPacketPtr;
805 prev: RTPRssmPacketPtr;
806 streamBuffer: QTSStreamBufferPtr;
807 paramsFilledIn: Boolean;
808 reserved: UInt8;
809 sequenceNum: UInt16;
810 transportHeaderLength: UInt32; { filled in by base}
811 payloadHeaderLength: UInt32; { derived adjusts this }
812 dataLength: UInt32;
813 serverEditParams: SHServerEditParameters;
814 timeStamp: TimeValue64; { lower 32 bits is original rtp timestamp}
815 chunkFlags: SInt32; { these are or'd together}
816 flags: SInt32;
817 end;
818 { flags for RTPRssmPacket struct}
819 const
820 kRTPRssmPacketHasMarkerBitSet = $00000001;
821 kRTPRssmPacketHasServerEditFlag = $00010000;
822
823 { flags for RTPRssmSendStreamBufferRange}
824 const
825 kRTPRssmCanRefStreamBuffer = $00000001;
826
827 { flags for RTPRssmSendPacketList}
828 const
829 kRTPRssmLostSomePackets = $00000001;
830
831 { flags for RTPRssmSetFlags}
832 const
833 kRTPRssmEveryPacketAChunkFlag = $00000001;
834 kRTPRssmQueueAndUseMarkerBitFlag = $00000002;
835 kRTPRssmTrackLostPacketsFlag = $00010000;
836 kRTPRssmNoReorderingRequiredFlag = $00020000;
837
838
839 type
840 RTPSendStreamBufferRangeParamsPtr = ^RTPSendStreamBufferRangeParams;
841 RTPSendStreamBufferRangeParams = record
842 streamBuffer: QTSStreamBufferPtr;
843 presentationTime: TimeValue64;
844 chunkStartPosition: UInt32;
845 numDataBytes: UInt32;
846 chunkFlags: SInt32;
847 flags: SInt32;
848 serverEditParams: {const} SHServerEditParametersPtr; { NULL if no edit}
849 end;
850 { characteristics}
851 const
852 kRTPCharacteristic_RequiresOrderedPackets = FourCharCode('rrop');
853 kRTPCharacteristic_TimeStampsNotMonoIncreasing = FourCharCode('tsmi');
854
855
856 const
857 kRTPReassemblerInfoResType = FourCharCode('rsmi');
858
859 type
860 RTPReassemblerInfo = record
861 characteristicCount: SIGNEDLONG;
862 characteristic: array [0..0] of RTPPayloadCharacteristic;
863
864 { after the last characteristic, the payload name (defined by the MediaPacketizerPayloadInfo}
865 { structure) is present. }
866 end;
867 RTPReassemblerInfoPtr = ^RTPReassemblerInfo;
868 type
869 RTPReassemblerInfoHandle = ^RTPReassemblerInfoPtr;
870 { RTPReassemblerInfoElement structs are padded to 32 bits }
871 const
872 kRTPReassemblerInfoPadUpToBytes = 4;
873
874
875 {
876 * QTSFindReassemblerForPayloadID()
877 *
878 * Availability:
879 * Mac OS X: in version 10.0 and later in QuickTime.framework
880 * CarbonLib: in CarbonLib 1.1 and later
881 * Non-Carbon CFM: in QTStreamLib 4.0 and later
882 * Windows: in QTSClient.lib 4.0 and later
883 }
QTSFindReassemblerForPayloadIDnull884 function QTSFindReassemblerForPayloadID( inPayloadID: UInt8; var inSortInfo: RTPPayloadSortRequest; var outReassemblerList: QTAtomContainer ): OSErr; external name '_QTSFindReassemblerForPayloadID';
885 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
886
887
888 {
889 * QTSFindReassemblerForPayloadName()
890 *
891 * Availability:
892 * Mac OS X: in version 10.0 and later in QuickTime.framework
893 * CarbonLib: in CarbonLib 1.1 and later
894 * Non-Carbon CFM: in QTStreamLib 4.0 and later
895 * Windows: in QTSClient.lib 4.0 and later
896 }
QTSFindReassemblerForPayloadNamenull897 function QTSFindReassemblerForPayloadName( inPayloadName: ConstCStringPtr; var inSortInfo: RTPPayloadSortRequest; var outReassemblerList: QTAtomContainer ): OSErr; external name '_QTSFindReassemblerForPayloadName';
898 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
899
900
901 {-----------------------------------------
902 RTP Reassembler Selectors
903 -----------------------------------------}
904 const
905 kRTPRssmSetCapabilitiesSelect = $0100;
906 kRTPRssmGetCapabilitiesSelect = $0101;
907 kRTPRssmSetPayloadHeaderLengthSelect = $0102;
908 kRTPRssmGetPayloadHeaderLengthSelect = $0103;
909 kRTPRssmSetTimeScaleSelect = $0104;
910 kRTPRssmGetTimeScaleSelect = $0105;
911 kRTPRssmNewStreamHandlerSelect = $0106;
912 kRTPRssmSetStreamHandlerSelect = $0107;
913 kRTPRssmGetStreamHandlerSelect = $0108;
914 kRTPRssmSendStreamHandlerChangedSelect = $0109;
915 kRTPRssmSetSampleDescriptionSelect = $010A;
916 kRTPRssmGetChunkAndIncrRefCountSelect = $010D;
917 kRTPRssmSendChunkAndDecrRefCountSelect = $010E;
918 kRTPRssmSendLostChunkSelect = $010F;
919 kRTPRssmSendStreamBufferRangeSelect = $0110;
920 kRTPRssmClearCachedPackets = $0111;
921 kRTPRssmFillPacketListParamsSelect = $0113;
922 kRTPRssmReleasePacketListSelect = $0114;
923 kRTPRssmIncrChunkRefCountSelect = $0115;
924 kRTPRssmDecrChunkRefCountSelect = $0116;
925 kRTPRssmGetExtChunkAndIncrRefCountSelect = $0117;
926 kRTPRssmInitializeSelect = $0500;
927 kRTPRssmHandleNewPacketSelect = $0501;
928 kRTPRssmComputeChunkSizeSelect = $0502;
929 kRTPRssmAdjustPacketParamsSelect = $0503;
930 kRTPRssmCopyDataToChunkSelect = $0504;
931 kRTPRssmSendPacketListSelect = $0505;
932 kRTPRssmGetTimeScaleFromPacketSelect = $0506;
933 kRTPRssmSetInfoSelect = $0509;
934 kRTPRssmGetInfoSelect = $050A;
935 kRTPRssmHasCharacteristicSelect = $050B;
936 kRTPRssmResetSelect = $050C;
937
938 {-----------------------------------------
939 RTP Reassembler functions - base to derived
940 -----------------------------------------}
941
942 {
943 * RTPRssmInitialize()
944 *
945 * Availability:
946 * Mac OS X: in version 10.0 and later in QuickTime.framework
947 * CarbonLib: in CarbonLib 1.1 and later
948 * Non-Carbon CFM: in QTStreamLib 4.0 and later
949 * Windows: in QTSClient.lib 4.0 and later
950 }
RTPRssmInitializenull951 function RTPRssmInitialize( rtpr: RTPReassembler; var inInitParams: RTPRssmInitParams ): ComponentResult; external name '_RTPRssmInitialize';
952 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
953
954
955 {
956 * RTPRssmHandleNewPacket()
957 *
958 * Availability:
959 * Mac OS X: in version 10.0 and later in QuickTime.framework
960 * CarbonLib: in CarbonLib 1.1 and later
961 * Non-Carbon CFM: in QTStreamLib 4.0 and later
962 * Windows: in QTSClient.lib 4.0 and later
963 }
RTPRssmHandleNewPacketnull964 function RTPRssmHandleNewPacket( rtpr: RTPReassembler; var inStreamBuffer: QTSStreamBuffer; inNumWraparounds: SInt32 ): ComponentResult; external name '_RTPRssmHandleNewPacket';
965 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
966
967
968 {
969 * RTPRssmComputeChunkSize()
970 *
971 * Availability:
972 * Mac OS X: in version 10.0 and later in QuickTime.framework
973 * CarbonLib: in CarbonLib 1.1 and later
974 * Non-Carbon CFM: in QTStreamLib 4.0 and later
975 * Windows: in QTSClient.lib 4.0 and later
976 }
RTPRssmComputeChunkSizenull977 function RTPRssmComputeChunkSize( rtpr: RTPReassembler; var inPacketListHead: RTPRssmPacket; inFlags: SInt32; var outChunkDataSize: UInt32 ): ComponentResult; external name '_RTPRssmComputeChunkSize';
978 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
979
980
981 {
982 * RTPRssmAdjustPacketParams()
983 *
984 * Availability:
985 * Mac OS X: in version 10.0 and later in QuickTime.framework
986 * CarbonLib: in CarbonLib 1.1 and later
987 * Non-Carbon CFM: in QTStreamLib 4.0 and later
988 * Windows: in QTSClient.lib 4.0 and later
989 }
RTPRssmAdjustPacketParamsnull990 function RTPRssmAdjustPacketParams( rtpr: RTPReassembler; var inPacket: RTPRssmPacket; inFlags: SInt32 ): ComponentResult; external name '_RTPRssmAdjustPacketParams';
991 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
992
993
994 {
995 * RTPRssmCopyDataToChunk()
996 *
997 * Availability:
998 * Mac OS X: in version 10.0 and later in QuickTime.framework
999 * CarbonLib: in CarbonLib 1.1 and later
1000 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1001 * Windows: in QTSClient.lib 4.0 and later
1002 }
RTPRssmCopyDataToChunknull1003 function RTPRssmCopyDataToChunk( rtpr: RTPReassembler; var inPacketListHead: RTPRssmPacket; inMaxChunkDataSize: UInt32; var inChunk: SHChunkRecord; inFlags: SInt32 ): ComponentResult; external name '_RTPRssmCopyDataToChunk';
1004 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1005
1006
1007 {
1008 * RTPRssmSendPacketList()
1009 *
1010 * Availability:
1011 * Mac OS X: in version 10.0 and later in QuickTime.framework
1012 * CarbonLib: in CarbonLib 1.1 and later
1013 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1014 * Windows: in QTSClient.lib 4.0 and later
1015 }
RTPRssmSendPacketListnull1016 function RTPRssmSendPacketList( rtpr: RTPReassembler; var inPacketListHead: RTPRssmPacket; (*const*) var inLastChunkPresentationTime: TimeValue64; inFlags: SInt32 ): ComponentResult; external name '_RTPRssmSendPacketList';
1017 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1018
1019
1020 {
1021 * RTPRssmGetTimeScaleFromPacket()
1022 *
1023 * Availability:
1024 * Mac OS X: in version 10.0 and later in QuickTime.framework
1025 * CarbonLib: in CarbonLib 1.1 and later
1026 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1027 * Windows: in QTSClient.lib 4.0 and later
1028 }
RTPRssmGetTimeScaleFromPacketnull1029 function RTPRssmGetTimeScaleFromPacket( rtpr: RTPReassembler; var inStreamBuffer: QTSStreamBuffer; var outTimeScale: TimeScale ): ComponentResult; external name '_RTPRssmGetTimeScaleFromPacket';
1030 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1031
1032
1033 {
1034 * RTPRssmSetInfo()
1035 *
1036 * Availability:
1037 * Mac OS X: in version 10.0 and later in QuickTime.framework
1038 * CarbonLib: in CarbonLib 1.1 and later
1039 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1040 * Windows: in QTSClient.lib 4.0 and later
1041 }
RTPRssmSetInfonull1042 function RTPRssmSetInfo( rtpr: RTPReassembler; inSelector: OSType; ioParams: UnivPtr ): ComponentResult; external name '_RTPRssmSetInfo';
1043 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1044
1045
1046 {
1047 * RTPRssmGetInfo()
1048 *
1049 * Availability:
1050 * Mac OS X: in version 10.0 and later in QuickTime.framework
1051 * CarbonLib: in CarbonLib 1.1 and later
1052 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1053 * Windows: in QTSClient.lib 4.0 and later
1054 }
RTPRssmGetInfonull1055 function RTPRssmGetInfo( rtpr: RTPReassembler; inSelector: OSType; ioParams: UnivPtr ): ComponentResult; external name '_RTPRssmGetInfo';
1056 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1057
1058
1059 {
1060 * RTPRssmHasCharacteristic()
1061 *
1062 * Availability:
1063 * Mac OS X: in version 10.0 and later in QuickTime.framework
1064 * CarbonLib: in CarbonLib 1.1 and later
1065 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1066 * Windows: in QTSClient.lib 4.0 and later
1067 }
RTPRssmHasCharacteristicnull1068 function RTPRssmHasCharacteristic( rtpr: RTPReassembler; inCharacteristic: OSType; var outHasIt: Boolean ): ComponentResult; external name '_RTPRssmHasCharacteristic';
1069 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1070
1071
1072 {
1073 * RTPRssmReset()
1074 *
1075 * Availability:
1076 * Mac OS X: in version 10.0 and later in QuickTime.framework
1077 * CarbonLib: in CarbonLib 1.1 and later
1078 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1079 * Windows: in QTSClient.lib 4.0 and later
1080 }
RTPRssmResetnull1081 function RTPRssmReset( rtpr: RTPReassembler; inFlags: SInt32 ): ComponentResult; external name '_RTPRssmReset';
1082 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1083
1084
1085 {-----------------------------------------
1086 RTP Reassembler functions - derived to base
1087 -----------------------------------------}
1088 { ----- setup}
1089 {
1090 * RTPRssmSetCapabilities()
1091 *
1092 * Availability:
1093 * Mac OS X: in version 10.0 and later in QuickTime.framework
1094 * CarbonLib: in CarbonLib 1.1 and later
1095 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1096 * Windows: in QTSClient.lib 4.0 and later
1097 }
RTPRssmSetCapabilitiesnull1098 function RTPRssmSetCapabilities( rtpr: RTPReassembler; inFlags: SInt32; inFlagsMask: SInt32 ): ComponentResult; external name '_RTPRssmSetCapabilities';
1099 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1100
1101
1102 {
1103 * RTPRssmGetCapabilities()
1104 *
1105 * Availability:
1106 * Mac OS X: in version 10.0 and later in QuickTime.framework
1107 * CarbonLib: in CarbonLib 1.1 and later
1108 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1109 * Windows: in QTSClient.lib 4.0 and later
1110 }
RTPRssmGetCapabilitiesnull1111 function RTPRssmGetCapabilities( rtpr: RTPReassembler; var outFlags: SInt32 ): ComponentResult; external name '_RTPRssmGetCapabilities';
1112 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1113
1114
1115 {
1116 * RTPRssmSetPayloadHeaderLength()
1117 *
1118 * Availability:
1119 * Mac OS X: in version 10.0 and later in QuickTime.framework
1120 * CarbonLib: in CarbonLib 1.1 and later
1121 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1122 * Windows: in QTSClient.lib 4.0 and later
1123 }
RTPRssmSetPayloadHeaderLengthnull1124 function RTPRssmSetPayloadHeaderLength( rtpr: RTPReassembler; inPayloadHeaderLength: UInt32 ): ComponentResult; external name '_RTPRssmSetPayloadHeaderLength';
1125 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1126
1127
1128 {
1129 * RTPRssmGetPayloadHeaderLength()
1130 *
1131 * Availability:
1132 * Mac OS X: in version 10.0 and later in QuickTime.framework
1133 * CarbonLib: in CarbonLib 1.1 and later
1134 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1135 * Windows: in QTSClient.lib 4.0 and later
1136 }
RTPRssmGetPayloadHeaderLengthnull1137 function RTPRssmGetPayloadHeaderLength( rtpr: RTPReassembler; var outPayloadHeaderLength: UInt32 ): ComponentResult; external name '_RTPRssmGetPayloadHeaderLength';
1138 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1139
1140
1141 {
1142 * RTPRssmSetTimeScale()
1143 *
1144 * Availability:
1145 * Mac OS X: in version 10.0 and later in QuickTime.framework
1146 * CarbonLib: in CarbonLib 1.1 and later
1147 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1148 * Windows: in QTSClient.lib 4.0 and later
1149 }
RTPRssmSetTimeScalenull1150 function RTPRssmSetTimeScale( rtpr: RTPReassembler; inSHTimeScale: TimeScale ): ComponentResult; external name '_RTPRssmSetTimeScale';
1151 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1152
1153
1154 {
1155 * RTPRssmGetTimeScale()
1156 *
1157 * Availability:
1158 * Mac OS X: in version 10.0 and later in QuickTime.framework
1159 * CarbonLib: in CarbonLib 1.1 and later
1160 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1161 * Windows: in QTSClient.lib 4.0 and later
1162 }
RTPRssmGetTimeScalenull1163 function RTPRssmGetTimeScale( rtpr: RTPReassembler; var outSHTimeScale: TimeScale ): ComponentResult; external name '_RTPRssmGetTimeScale';
1164 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1165
1166
1167 {
1168 * RTPRssmNewStreamHandler()
1169 *
1170 * Availability:
1171 * Mac OS X: in version 10.0 and later in QuickTime.framework
1172 * CarbonLib: in CarbonLib 1.1 and later
1173 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1174 * Windows: in QTSClient.lib 4.0 and later
1175 }
RTPRssmNewStreamHandlernull1176 function RTPRssmNewStreamHandler( rtpr: RTPReassembler; inSHType: OSType; inSampleDescription: SampleDescriptionHandle; inSHTimeScale: TimeScale; var outHandler: ComponentInstance ): ComponentResult; external name '_RTPRssmNewStreamHandler';
1177 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1178
1179
1180 {
1181 * RTPRssmSetStreamHandler()
1182 *
1183 * Availability:
1184 * Mac OS X: in version 10.0 and later in QuickTime.framework
1185 * CarbonLib: in CarbonLib 1.1 and later
1186 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1187 * Windows: in QTSClient.lib 4.0 and later
1188 }
RTPRssmSetStreamHandlernull1189 function RTPRssmSetStreamHandler( rtpr: RTPReassembler; inStreamHandler: ComponentInstance ): ComponentResult; external name '_RTPRssmSetStreamHandler';
1190 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1191
1192
1193 {
1194 * RTPRssmGetStreamHandler()
1195 *
1196 * Availability:
1197 * Mac OS X: in version 10.0 and later in QuickTime.framework
1198 * CarbonLib: in CarbonLib 1.1 and later
1199 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1200 * Windows: in QTSClient.lib 4.0 and later
1201 }
RTPRssmGetStreamHandlernull1202 function RTPRssmGetStreamHandler( rtpr: RTPReassembler; var outStreamHandler: ComponentInstance ): ComponentResult; external name '_RTPRssmGetStreamHandler';
1203 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1204
1205
1206 {
1207 * RTPRssmSendStreamHandlerChanged()
1208 *
1209 * Availability:
1210 * Mac OS X: in version 10.0 and later in QuickTime.framework
1211 * CarbonLib: in CarbonLib 1.1 and later
1212 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1213 * Windows: in QTSClient.lib 4.0 and later
1214 }
RTPRssmSendStreamHandlerChangednull1215 function RTPRssmSendStreamHandlerChanged( rtpr: RTPReassembler ): ComponentResult; external name '_RTPRssmSendStreamHandlerChanged';
1216 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1217
1218
1219 {
1220 * RTPRssmSetSampleDescription()
1221 *
1222 * Availability:
1223 * Mac OS X: in version 10.0 and later in QuickTime.framework
1224 * CarbonLib: in CarbonLib 1.1 and later
1225 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1226 * Windows: in QTSClient.lib 4.0 and later
1227 }
RTPRssmSetSampleDescriptionnull1228 function RTPRssmSetSampleDescription( rtpr: RTPReassembler; inSampleDescription: SampleDescriptionHandle ): ComponentResult; external name '_RTPRssmSetSampleDescription';
1229 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1230
1231
1232 { ----- manually sending chunks}
1233 {
1234 * RTPRssmGetChunkAndIncrRefCount()
1235 *
1236 * Availability:
1237 * Mac OS X: in version 10.0 and later in QuickTime.framework
1238 * CarbonLib: in CarbonLib 1.1 and later
1239 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1240 * Windows: in QTSClient.lib 4.0 and later
1241 }
RTPRssmGetChunkAndIncrRefCountnull1242 function RTPRssmGetChunkAndIncrRefCount( rtpr: RTPReassembler; inChunkDataSize: UInt32; (*const*) var inChunkPresentationTime: TimeValue64; var outChunk: UnivPtr ): ComponentResult; external name '_RTPRssmGetChunkAndIncrRefCount';
1243 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1244
1245
1246 {
1247 * RTPRssmGetExtChunkAndIncrRefCount()
1248 *
1249 * Availability:
1250 * Mac OS X: in version 10.2 and later in QuickTime.framework
1251 * CarbonLib: in CarbonLib 1.6 and later
1252 * Non-Carbon CFM: in QTStreamLib 6.0 and later
1253 * Windows: in qtmlClient.lib 6.0 and later
1254 }
RTPRssmGetExtChunkAndIncrRefCountnull1255 function RTPRssmGetExtChunkAndIncrRefCount( rtpr: RTPReassembler; inChunkDataSize: UInt32; (*const*) var inChunkPresentationTime: TimeValue64; inFlags: SInt32; var outChunk: UnivPtr ): ComponentResult; external name '_RTPRssmGetExtChunkAndIncrRefCount';
1256 (* AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER *)
1257
1258
1259 {
1260 * RTPRssmSendChunkAndDecrRefCount()
1261 *
1262 * Availability:
1263 * Mac OS X: in version 10.0 and later in QuickTime.framework
1264 * CarbonLib: in CarbonLib 1.1 and later
1265 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1266 * Windows: in QTSClient.lib 4.0 and later
1267 }
RTPRssmSendChunkAndDecrRefCountnull1268 function RTPRssmSendChunkAndDecrRefCount( rtpr: RTPReassembler; var inChunk: SHChunkRecord; const (*var*) inServerEdit: SHServerEditParameters ): ComponentResult; external name '_RTPRssmSendChunkAndDecrRefCount';
1269 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1270
1271
1272 {
1273 * RTPRssmSendLostChunk()
1274 *
1275 * Availability:
1276 * Mac OS X: in version 10.0 and later in QuickTime.framework
1277 * CarbonLib: in CarbonLib 1.1 and later
1278 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1279 * Windows: in QTSClient.lib 4.0 and later
1280 }
RTPRssmSendLostChunknull1281 function RTPRssmSendLostChunk( rtpr: RTPReassembler; (*const*) var inChunkPresentationTime: TimeValue64 ): ComponentResult; external name '_RTPRssmSendLostChunk';
1282 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1283
1284
1285 {
1286 * RTPRssmSendStreamBufferRange()
1287 *
1288 * Availability:
1289 * Mac OS X: in version 10.0 and later in QuickTime.framework
1290 * CarbonLib: in CarbonLib 1.1 and later
1291 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1292 * Windows: in QTSClient.lib 4.0 and later
1293 }
RTPRssmSendStreamBufferRangenull1294 function RTPRssmSendStreamBufferRange( rtpr: RTPReassembler; var inParams: RTPSendStreamBufferRangeParams ): ComponentResult; external name '_RTPRssmSendStreamBufferRange';
1295 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1296
1297
1298 {
1299 * RTPRssmClearCachedPackets()
1300 *
1301 * Availability:
1302 * Mac OS X: in version 10.0 and later in QuickTime.framework
1303 * CarbonLib: in CarbonLib 1.1 and later
1304 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1305 * Windows: in QTSClient.lib 4.0 and later
1306 }
RTPRssmClearCachedPacketsnull1307 function RTPRssmClearCachedPackets( rtpr: RTPReassembler; inFlags: SInt32 ): ComponentResult; external name '_RTPRssmClearCachedPackets';
1308 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1309
1310
1311 {
1312 * RTPRssmFillPacketListParams()
1313 *
1314 * Availability:
1315 * Mac OS X: in version 10.0 and later in QuickTime.framework
1316 * CarbonLib: in CarbonLib 1.1 and later
1317 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1318 * Windows: in QTSClient.lib 4.0 and later
1319 }
RTPRssmFillPacketListParamsnull1320 function RTPRssmFillPacketListParams( rtpr: RTPReassembler; var inPacketListHead: RTPRssmPacket; inNumWraparounds: SInt32; inFlags: SInt32 ): ComponentResult; external name '_RTPRssmFillPacketListParams';
1321 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1322
1323
1324 {
1325 * RTPRssmReleasePacketList()
1326 *
1327 * Availability:
1328 * Mac OS X: in version 10.0 and later in QuickTime.framework
1329 * CarbonLib: in CarbonLib 1.1 and later
1330 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1331 * Windows: in QTSClient.lib 4.0 and later
1332 }
RTPRssmReleasePacketListnull1333 function RTPRssmReleasePacketList( rtpr: RTPReassembler; var inPacketListHead: RTPRssmPacket ): ComponentResult; external name '_RTPRssmReleasePacketList';
1334 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1335
1336
1337 {
1338 * RTPRssmIncrChunkRefCount()
1339 *
1340 * Availability:
1341 * Mac OS X: in version 10.0 and later in QuickTime.framework
1342 * CarbonLib: in CarbonLib 1.1 and later
1343 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1344 * Windows: in QTSClient.lib 4.0 and later
1345 }
RTPRssmIncrChunkRefCountnull1346 function RTPRssmIncrChunkRefCount( rtpr: RTPReassembler; var inChunk: SHChunkRecord ): ComponentResult; external name '_RTPRssmIncrChunkRefCount';
1347 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1348
1349
1350 {
1351 * RTPRssmDecrChunkRefCount()
1352 *
1353 * Availability:
1354 * Mac OS X: in version 10.0 and later in QuickTime.framework
1355 * CarbonLib: in CarbonLib 1.1 and later
1356 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1357 * Windows: in QTSClient.lib 4.0 and later
1358 }
RTPRssmDecrChunkRefCountnull1359 function RTPRssmDecrChunkRefCount( rtpr: RTPReassembler; var inChunk: SHChunkRecord ): ComponentResult; external name '_RTPRssmDecrChunkRefCount';
1360 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1361
1362
1363 {============================================================================
1364 RTP Media Packetizer
1365 ============================================================================}
1366 const
1367 kRTPMediaPacketizerType = FourCharCode('rtpm');
1368
1369 type
1370 RTPMediaPacketizer = ComponentInstance;
1371 const
1372 kRTPBaseMediaPacketizerType = FourCharCode('gnrc');
1373 kRTP261MediaPacketizerType = FourCharCode('h261');
1374 kRTP263PlusMediaPacketizerType = FourCharCode('263+');
1375 kRTPAudioMediaPacketizerType = FourCharCode('soun');
1376 kRTPQTMediaPacketizerType = FourCharCode('qtim');
1377 kRTPPureVoiceMediaPacketizerType = FourCharCode('Qclp');
1378 kRTPJPEGMediaPacketizerType = FourCharCode('jpeg');
1379 kRTPQDesign2MediaPacketizerType = FourCharCode('QDM2');
1380 kRTPSorensonMediaPacketizerType = FourCharCode('SVQ1');
1381 kRTPMP3MediaPacketizerType = FourCharCode('mp3 ');
1382 kRTPMPEG4AudioMediaPacketizerType = FourCharCode('mp4a');
1383 kRTPMPEG4VideoMediaPacketizerType = FourCharCode('mp4v');
1384 kRTPAMRMediaPacketizerType = FourCharCode('amr ');
1385
1386 type
1387 RTPMPSampleRef = UInt32;
1388 RTPMPDataReleaseProcPtr = procedure( var inData: UInt8; inRefCon: UnivPtr );
1389 RTPMPDataReleaseUPP = RTPMPDataReleaseProcPtr;
1390 const
1391 kMediaPacketizerCanPackEditRate = 1 shl 0;
1392 kMediaPacketizerCanPackLayer = 1 shl 1;
1393 kMediaPacketizerCanPackVolume = 1 shl 2;
1394 kMediaPacketizerCanPackBalance = 1 shl 3;
1395 kMediaPacketizerCanPackGraphicsMode = 1 shl 4;
1396 kMediaPacketizerCanPackEmptyEdit = 1 shl 5;
1397
1398
1399 type
1400 MediaPacketizerRequirements = record
1401 mediaType: OSType; { media type supported (0 for all)}
1402 dataFormat: OSType; { data format (e.g., compression) supported (0 for all)}
1403 capabilityFlags: UInt32; { ability to handle non-standard track characteristics}
1404 canPackMatrixType: UInt8; { can pack any matrix type up to this (identityMatrixType for identity only)}
1405 reserved1: UInt8;
1406 reserved2: UInt8;
1407 reserved3: UInt8;
1408 end;
1409 MediaPacketizerRequirementsPtr = ^MediaPacketizerRequirements;
1410 type
1411 MediaPacketizerInfo = record
1412 mediaType: OSType; { media type supported (0 for all)}
1413 dataFormat: OSType; { data format (e.g., compression) supported (0 for all)}
1414 vendor: OSType; { manufacturer of this packetizer (e.g., 'appl' for Apple)}
1415 capabilityFlags: UInt32; { ability to handle non-standard track characteristics}
1416 canPackMatrixType: UInt8; { can pack any matrix type up to this (identityMatrixType for identity only)}
1417 reserved1: UInt8;
1418 reserved2: UInt8;
1419 reserved3: UInt8;
1420 characteristicCount: SIGNEDLONG;
1421 characteristic: array [0..0] of RTPPayloadCharacteristic;
1422
1423 { after the last characteristic, the payload name (defined by the RTPPayloadInfo}
1424 { structure) is present. }
1425 end;
1426 MediaPacketizerInfoPtr = ^MediaPacketizerInfo;
1427 type
1428 MediaPacketizerInfoHandle = ^MediaPacketizerInfoPtr;
1429 { MediaPacketizerInfo structs are padded to 32 bits }
1430 const
1431 kMediaPacketizerInfoPadUpToBytes = 4;
1432
1433 const
1434 kRTPMediaPacketizerInfoRezType = FourCharCode('pcki');
1435
1436
1437 {
1438 * QTSFindMediaPacketizer()
1439 *
1440 * Availability:
1441 * Mac OS X: in version 10.0 and later in QuickTime.framework
1442 * CarbonLib: in CarbonLib 1.1 and later
1443 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1444 * Windows: in QTSClient.lib 4.0 and later
1445 }
QTSFindMediaPacketizernull1446 function QTSFindMediaPacketizer( inPacketizerinfo: MediaPacketizerRequirementsPtr; inSampleDescription: SampleDescriptionHandle; inSortInfo: RTPPayloadSortRequestPtr; var outPacketizerList: QTAtomContainer ): OSErr; external name '_QTSFindMediaPacketizer';
1447 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1448
1449
1450 {
1451 * QTSFindMediaPacketizerForTrack()
1452 *
1453 * Availability:
1454 * Mac OS X: in version 10.0 and later in QuickTime.framework
1455 * CarbonLib: in CarbonLib 1.1 and later
1456 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1457 * Windows: in QTSClient.lib 4.0 and later
1458 }
QTSFindMediaPacketizerForTracknull1459 function QTSFindMediaPacketizerForTrack( inTrack: Track; inSampleDescriptionIndex: SIGNEDLONG; inSortInfo: RTPPayloadSortRequestPtr; var outPacketizerList: QTAtomContainer ): OSErr; external name '_QTSFindMediaPacketizerForTrack';
1460 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1461
1462
1463 {
1464 * QTSFindMediaPacketizerForPayloadID()
1465 *
1466 * Availability:
1467 * Mac OS X: in version 10.0 and later in QuickTime.framework
1468 * CarbonLib: in CarbonLib 1.1 and later
1469 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1470 * Windows: in QTSClient.lib 4.0 and later
1471 }
QTSFindMediaPacketizerForPayloadIDnull1472 function QTSFindMediaPacketizerForPayloadID( payloadID: SIGNEDLONG; inSortInfo: RTPPayloadSortRequestPtr; var outPacketizerList: QTAtomContainer ): OSErr; external name '_QTSFindMediaPacketizerForPayloadID';
1473 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1474
1475
1476 {
1477 * QTSFindMediaPacketizerForPayloadName()
1478 *
1479 * Availability:
1480 * Mac OS X: in version 10.0 and later in QuickTime.framework
1481 * CarbonLib: in CarbonLib 1.1 and later
1482 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1483 * Windows: in QTSClient.lib 4.0 and later
1484 }
QTSFindMediaPacketizerForPayloadNamenull1485 function QTSFindMediaPacketizerForPayloadName( payloadName: ConstCStringPtr; inSortInfo: RTPPayloadSortRequestPtr; var outPacketizerList: QTAtomContainer ): OSErr; external name '_QTSFindMediaPacketizerForPayloadName';
1486 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1487
1488
1489 { flags for RTPMPInitialize}
1490 const
1491 kRTPMPRealtimeModeFlag = $00000001;
1492
1493 { flags for RTPMPSampleDataParams}
1494 const
1495 kRTPMPSyncSampleFlag = $00000001;
1496 kRTPMPRespectDurationFlag = $00000002;
1497
1498 type
1499 RTPMPSampleDataParamsPtr = ^RTPMPSampleDataParams;
1500 RTPMPSampleDataParams = record
1501 version: UInt32;
1502 timeStamp: UInt32;
1503 duration: UInt32; { 0 = unknown duration}
1504 playOffset: UInt32;
1505 playRate: Fixed;
1506 flags: SInt32;
1507 sampleDescSeed: UInt32;
1508 sampleDescription: Handle;
1509 sampleRef: RTPMPSampleRef;
1510 dataLength: UInt32;
1511 data: {const} UInt8Ptr;
1512 releaseProc: RTPMPDataReleaseUPP;
1513 refCon: UnivPtr;
1514 end;
1515 { out flags for idle, RTPMPSetSampleData, and RTPMPFlush}
1516 const
1517 kRTPMPStillProcessingData = $00000001; { not done with data you've got}
1518
1519 type
1520 RTPMPPayloadTypeParamsPtr = ^RTPMPPayloadTypeParams;
1521 RTPMPPayloadTypeParams = record
1522 flags: UInt32;
1523 payloadNumber: UInt32;
1524 nameLength: SInt16; { in: size of payloadName buffer (counting null terminator) -- this will be reset to needed length and paramErr returned if too small }
1525 payloadName: CStringPtr; { caller must provide buffer }
1526 end;
1527 {-----------------------------------------
1528 RTP Media Packetizer Info selectors
1529 -----------------------------------------}
1530 { info selectors - get only }
1531 const
1532 kRTPMPPayloadTypeInfo = FourCharCode('rtpp'); { RTPMPPayloadTypeParams* }
1533 kRTPMPRTPTimeScaleInfo = FourCharCode('rtpt'); { TimeScale* }
1534 kRTPMPRequiredSampleDescriptionInfo = FourCharCode('sdsc'); { SampleDescriptionHandle* }
1535 kRTPMPMinPayloadSize = FourCharCode('mins'); { UInt32* in bytes, does not include rtp header; default is 0 }
1536 kRTPMPMinPacketDuration = FourCharCode('mind'); { UInt3* in milliseconds; default is no min required }
1537 kRTPMPSuggestedRepeatPktCountInfo = FourCharCode('srpc'); { UInt32* }
1538 kRTPMPSuggestedRepeatPktSpacingInfo = FourCharCode('srps'); { UInt32* in milliseconds }
1539 kRTPMPMaxPartialSampleSizeInfo = FourCharCode('mpss'); { UInt32* in bytes }
1540 kRTPMPPreferredBufferDelayInfo = FourCharCode('prbd'); { UInt32* in milliseconds }
1541 kRTPMPPayloadNameInfo = FourCharCode('name'); { StringPtr }
1542 kRTPInfo_FormatString = FourCharCode('fmtp'); { char **, caller allocates ptr, callee disposes }
1543
1544 {-----------------------------------------
1545 RTP Media Packetizer Characteristics
1546 -----------------------------------------}
1547 { also supports relevant ones in Movies.h and QTSToolbox.h }
1548 const
1549 kRTPMPNoSampleDataRequiredCharacteristic = FourCharCode('nsdr');
1550 kRTPMPHasUserSettingsDialogCharacteristic = FourCharCode('sdlg');
1551 kRTPMPPrefersReliableTransportCharacteristic = FourCharCode('rely');
1552 kRTPMPRequiresOutOfBandDimensionsCharacteristic = FourCharCode('robd');
1553 kRTPMPReadsPartialSamplesCharacteristic = FourCharCode('rpsp');
1554
1555 {-----------------------------------------
1556 RTP Media Packetizer selectors
1557 -----------------------------------------}
1558 const
1559 kRTPMPInitializeSelect = $0500;
1560 kRTPMPPreflightMediaSelect = $0501;
1561 kRTPMPIdleSelect = $0502;
1562 kRTPMPSetSampleDataSelect = $0503;
1563 kRTPMPFlushSelect = $0504;
1564 kRTPMPResetSelect = $0505;
1565 kRTPMPSetInfoSelect = $0506;
1566 kRTPMPGetInfoSelect = $0507;
1567 kRTPMPSetTimeScaleSelect = $0508;
1568 kRTPMPGetTimeScaleSelect = $0509;
1569 kRTPMPSetTimeBaseSelect = $050A;
1570 kRTPMPGetTimeBaseSelect = $050B;
1571 kRTPMPHasCharacteristicSelect = $050C;
1572 kRTPMPSetPacketBuilderSelect = $050E;
1573 kRTPMPGetPacketBuilderSelect = $050F;
1574 kRTPMPSetMediaTypeSelect = $0510;
1575 kRTPMPGetMediaTypeSelect = $0511;
1576 kRTPMPSetMaxPacketSizeSelect = $0512;
1577 kRTPMPGetMaxPacketSizeSelect = $0513;
1578 kRTPMPSetMaxPacketDurationSelect = $0514;
1579 kRTPMPGetMaxPacketDurationSelect = $0515; { for export component and apps who want to}
1580 { access dialogs for Media-specific settings}
1581 { (such as Pure Voice interleave factor)}
1582 kRTPMPDoUserDialogSelect = $0516;
1583 kRTPMPSetSettingsFromAtomContainerAtAtomSelect = $0517;
1584 kRTPMPGetSettingsIntoAtomContainerAtAtomSelect = $0518;
1585 kRTPMPGetSettingsAsTextSelect = $0519;
1586 kRTPMPGetSettingsSelect = $051C;
1587 kRTPMPSetSettingsSelect = $051D;
1588
1589 {-----------------------------------------
1590 RTP Media Packetizer functions
1591 -----------------------------------------}
1592
1593 {
1594 * RTPMPInitialize()
1595 *
1596 * Availability:
1597 * Mac OS X: in version 10.0 and later in QuickTime.framework
1598 * CarbonLib: in CarbonLib 1.1 and later
1599 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1600 * Windows: in QTSClient.lib 4.0 and later
1601 }
RTPMPInitializenull1602 function RTPMPInitialize( rtpm: RTPMediaPacketizer; inFlags: SInt32 ): ComponentResult; external name '_RTPMPInitialize';
1603 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1604
1605
1606 { return noErr if you can handle this media }
1607 {
1608 * RTPMPPreflightMedia()
1609 *
1610 * Availability:
1611 * Mac OS X: in version 10.0 and later in QuickTime.framework
1612 * CarbonLib: in CarbonLib 1.1 and later
1613 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1614 * Windows: in QTSClient.lib 4.0 and later
1615 }
RTPMPPreflightMedianull1616 function RTPMPPreflightMedia( rtpm: RTPMediaPacketizer; inMediaType: OSType; inSampleDescription: SampleDescriptionHandle ): ComponentResult; external name '_RTPMPPreflightMedia';
1617 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1618
1619
1620 {
1621 do work here if you need to - give up time periodically
1622 if you're doing time consuming operations
1623 }
1624 {
1625 * RTPMPIdle()
1626 *
1627 * Availability:
1628 * Mac OS X: in version 10.0 and later in QuickTime.framework
1629 * CarbonLib: in CarbonLib 1.1 and later
1630 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1631 * Windows: in QTSClient.lib 4.0 and later
1632 }
RTPMPIdlenull1633 function RTPMPIdle( rtpm: RTPMediaPacketizer; inFlags: SInt32; var outFlags: SInt32 ): ComponentResult; external name '_RTPMPIdle';
1634 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1635
1636
1637 {
1638 caller owns the RTPMPSampleDataParams struct
1639 media Packetizer must copy any fields of the struct it wants to keep
1640 media Packetizer must call release proc when done with the data
1641 you can do the processing work here if it does not take up too
1642 much cpu time - otherwise do it in idle
1643 }
1644 {
1645 * RTPMPSetSampleData()
1646 *
1647 * Availability:
1648 * Mac OS X: in version 10.0 and later in QuickTime.framework
1649 * CarbonLib: in CarbonLib 1.1 and later
1650 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1651 * Windows: in QTSClient.lib 4.0 and later
1652 }
RTPMPSetSampleDatanull1653 function RTPMPSetSampleData( rtpm: RTPMediaPacketizer; const (*var*) inSampleData: RTPMPSampleDataParams; var outFlags: SInt32 ): ComponentResult; external name '_RTPMPSetSampleData';
1654 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1655
1656
1657 {
1658 send everything you have buffered - you will get idles while
1659 you set the kRTPMPStillProcessingData flag here and in idle
1660 }
1661 {
1662 * RTPMPFlush()
1663 *
1664 * Availability:
1665 * Mac OS X: in version 10.0 and later in QuickTime.framework
1666 * CarbonLib: in CarbonLib 1.1 and later
1667 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1668 * Windows: in QTSClient.lib 4.0 and later
1669 }
RTPMPFlushnull1670 function RTPMPFlush( rtpm: RTPMediaPacketizer; inFlags: SInt32; var outFlags: SInt32 ): ComponentResult; external name '_RTPMPFlush';
1671 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1672
1673
1674 {
1675 dispose of anything buffered and get rid of state
1676 do not send the buffered data (because presumably
1677 there is no connection for you to send on)
1678 state should be the same as if you were just initialized
1679 }
1680 {
1681 * RTPMPReset()
1682 *
1683 * Availability:
1684 * Mac OS X: in version 10.0 and later in QuickTime.framework
1685 * CarbonLib: in CarbonLib 1.1 and later
1686 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1687 * Windows: in QTSClient.lib 4.0 and later
1688 }
RTPMPResetnull1689 function RTPMPReset( rtpm: RTPMediaPacketizer; inFlags: SInt32 ): ComponentResult; external name '_RTPMPReset';
1690 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1691
1692
1693 {-----------------------------------------
1694 RTP Media Packetizer get / set functions
1695 -----------------------------------------}
1696 {
1697 * RTPMPSetInfo()
1698 *
1699 * Availability:
1700 * Mac OS X: in version 10.0 and later in QuickTime.framework
1701 * CarbonLib: in CarbonLib 1.1 and later
1702 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1703 * Windows: in QTSClient.lib 4.0 and later
1704 }
RTPMPSetInfonull1705 function RTPMPSetInfo( rtpm: RTPMediaPacketizer; inSelector: OSType; ioParams: {const} UnivPtr ): ComponentResult; external name '_RTPMPSetInfo';
1706 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1707
1708
1709 {
1710 * RTPMPGetInfo()
1711 *
1712 * Availability:
1713 * Mac OS X: in version 10.0 and later in QuickTime.framework
1714 * CarbonLib: in CarbonLib 1.1 and later
1715 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1716 * Windows: in QTSClient.lib 4.0 and later
1717 }
RTPMPGetInfonull1718 function RTPMPGetInfo( rtpm: RTPMediaPacketizer; inSelector: OSType; ioParams: UnivPtr ): ComponentResult; external name '_RTPMPGetInfo';
1719 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1720
1721
1722 {
1723 * RTPMPSetTimeScale()
1724 *
1725 * Availability:
1726 * Mac OS X: in version 10.0 and later in QuickTime.framework
1727 * CarbonLib: in CarbonLib 1.1 and later
1728 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1729 * Windows: in QTSClient.lib 4.0 and later
1730 }
RTPMPSetTimeScalenull1731 function RTPMPSetTimeScale( rtpm: RTPMediaPacketizer; inTimeScale: TimeScale ): ComponentResult; external name '_RTPMPSetTimeScale';
1732 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1733
1734
1735 {
1736 * RTPMPGetTimeScale()
1737 *
1738 * Availability:
1739 * Mac OS X: in version 10.0 and later in QuickTime.framework
1740 * CarbonLib: in CarbonLib 1.1 and later
1741 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1742 * Windows: in QTSClient.lib 4.0 and later
1743 }
RTPMPGetTimeScalenull1744 function RTPMPGetTimeScale( rtpm: RTPMediaPacketizer; var outTimeScale: TimeScale ): ComponentResult; external name '_RTPMPGetTimeScale';
1745 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1746
1747
1748 {
1749 * RTPMPSetTimeBase()
1750 *
1751 * Availability:
1752 * Mac OS X: in version 10.0 and later in QuickTime.framework
1753 * CarbonLib: in CarbonLib 1.1 and later
1754 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1755 * Windows: in QTSClient.lib 4.0 and later
1756 }
RTPMPSetTimeBasenull1757 function RTPMPSetTimeBase( rtpm: RTPMediaPacketizer; inTimeBase: TimeBase ): ComponentResult; external name '_RTPMPSetTimeBase';
1758 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1759
1760
1761 {
1762 * RTPMPGetTimeBase()
1763 *
1764 * Availability:
1765 * Mac OS X: in version 10.0 and later in QuickTime.framework
1766 * CarbonLib: in CarbonLib 1.1 and later
1767 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1768 * Windows: in QTSClient.lib 4.0 and later
1769 }
RTPMPGetTimeBasenull1770 function RTPMPGetTimeBase( rtpm: RTPMediaPacketizer; var outTimeBase: TimeBase ): ComponentResult; external name '_RTPMPGetTimeBase';
1771 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1772
1773
1774 {
1775 * RTPMPHasCharacteristic()
1776 *
1777 * Availability:
1778 * Mac OS X: in version 10.0 and later in QuickTime.framework
1779 * CarbonLib: in CarbonLib 1.1 and later
1780 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1781 * Windows: in QTSClient.lib 4.0 and later
1782 }
RTPMPHasCharacteristicnull1783 function RTPMPHasCharacteristic( rtpm: RTPMediaPacketizer; inSelector: OSType; var outHasIt: Boolean ): ComponentResult; external name '_RTPMPHasCharacteristic';
1784 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1785
1786
1787 {
1788 * RTPMPSetPacketBuilder()
1789 *
1790 * Availability:
1791 * Mac OS X: in version 10.0 and later in QuickTime.framework
1792 * CarbonLib: in CarbonLib 1.1 and later
1793 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1794 * Windows: in QTSClient.lib 4.0 and later
1795 }
RTPMPSetPacketBuildernull1796 function RTPMPSetPacketBuilder( rtpm: RTPMediaPacketizer; inPacketBuilder: ComponentInstance ): ComponentResult; external name '_RTPMPSetPacketBuilder';
1797 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1798
1799
1800 {
1801 * RTPMPGetPacketBuilder()
1802 *
1803 * Availability:
1804 * Mac OS X: in version 10.0 and later in QuickTime.framework
1805 * CarbonLib: in CarbonLib 1.1 and later
1806 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1807 * Windows: in QTSClient.lib 4.0 and later
1808 }
RTPMPGetPacketBuildernull1809 function RTPMPGetPacketBuilder( rtpm: RTPMediaPacketizer; var outPacketBuilder: ComponentInstance ): ComponentResult; external name '_RTPMPGetPacketBuilder';
1810 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1811
1812
1813 {
1814 * RTPMPSetMediaType()
1815 *
1816 * Availability:
1817 * Mac OS X: in version 10.0 and later in QuickTime.framework
1818 * CarbonLib: in CarbonLib 1.1 and later
1819 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1820 * Windows: in QTSClient.lib 4.0 and later
1821 }
RTPMPSetMediaTypenull1822 function RTPMPSetMediaType( rtpm: RTPMediaPacketizer; inMediaType: OSType ): ComponentResult; external name '_RTPMPSetMediaType';
1823 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1824
1825
1826 {
1827 * RTPMPGetMediaType()
1828 *
1829 * Availability:
1830 * Mac OS X: in version 10.0 and later in QuickTime.framework
1831 * CarbonLib: in CarbonLib 1.1 and later
1832 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1833 * Windows: in QTSClient.lib 4.0 and later
1834 }
RTPMPGetMediaTypenull1835 function RTPMPGetMediaType( rtpm: RTPMediaPacketizer; var outMediaType: OSType ): ComponentResult; external name '_RTPMPGetMediaType';
1836 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1837
1838
1839 { size is in bytes}
1840 {
1841 * RTPMPSetMaxPacketSize()
1842 *
1843 * Availability:
1844 * Mac OS X: in version 10.0 and later in QuickTime.framework
1845 * CarbonLib: in CarbonLib 1.1 and later
1846 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1847 * Windows: in QTSClient.lib 4.0 and later
1848 }
RTPMPSetMaxPacketSizenull1849 function RTPMPSetMaxPacketSize( rtpm: RTPMediaPacketizer; inMaxPacketSize: UInt32 ): ComponentResult; external name '_RTPMPSetMaxPacketSize';
1850 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1851
1852
1853 {
1854 * RTPMPGetMaxPacketSize()
1855 *
1856 * Availability:
1857 * Mac OS X: in version 10.0 and later in QuickTime.framework
1858 * CarbonLib: in CarbonLib 1.1 and later
1859 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1860 * Windows: in QTSClient.lib 4.0 and later
1861 }
RTPMPGetMaxPacketSizenull1862 function RTPMPGetMaxPacketSize( rtpm: RTPMediaPacketizer; var outMaxPacketSize: UInt32 ): ComponentResult; external name '_RTPMPGetMaxPacketSize';
1863 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1864
1865
1866 { duration is in milliseconds}
1867 {
1868 * RTPMPSetMaxPacketDuration()
1869 *
1870 * Availability:
1871 * Mac OS X: in version 10.0 and later in QuickTime.framework
1872 * CarbonLib: in CarbonLib 1.1 and later
1873 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1874 * Windows: in QTSClient.lib 4.0 and later
1875 }
RTPMPSetMaxPacketDurationnull1876 function RTPMPSetMaxPacketDuration( rtpm: RTPMediaPacketizer; inMaxPacketDuration: UInt32 ): ComponentResult; external name '_RTPMPSetMaxPacketDuration';
1877 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1878
1879
1880 {
1881 * RTPMPGetMaxPacketDuration()
1882 *
1883 * Availability:
1884 * Mac OS X: in version 10.0 and later in QuickTime.framework
1885 * CarbonLib: in CarbonLib 1.1 and later
1886 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1887 * Windows: in QTSClient.lib 4.0 and later
1888 }
RTPMPGetMaxPacketDurationnull1889 function RTPMPGetMaxPacketDuration( rtpm: RTPMediaPacketizer; var outMaxPacketDuration: UInt32 ): ComponentResult; external name '_RTPMPGetMaxPacketDuration';
1890 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1891
1892
1893 {
1894 * RTPMPDoUserDialog()
1895 *
1896 * Availability:
1897 * Mac OS X: in version 10.0 and later in QuickTime.framework
1898 * CarbonLib: in CarbonLib 1.1 and later
1899 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1900 * Windows: in QTSClient.lib 4.0 and later
1901 }
RTPMPDoUserDialognull1902 function RTPMPDoUserDialog( rtpm: RTPMediaPacketizer; inFilterUPP: ModalFilterUPP; var canceled: Boolean ): ComponentResult; external name '_RTPMPDoUserDialog';
1903 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1904
1905
1906 {
1907 * RTPMPSetSettingsFromAtomContainerAtAtom()
1908 *
1909 * Availability:
1910 * Mac OS X: in version 10.0 and later in QuickTime.framework
1911 * CarbonLib: in CarbonLib 1.1 and later
1912 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1913 * Windows: in QTSClient.lib 4.0 and later
1914 }
RTPMPSetSettingsFromAtomContainerAtAtomnull1915 function RTPMPSetSettingsFromAtomContainerAtAtom( rtpm: RTPMediaPacketizer; inContainer: QTAtomContainer; inParentAtom: QTAtom ): ComponentResult; external name '_RTPMPSetSettingsFromAtomContainerAtAtom';
1916 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1917
1918
1919 {
1920 * RTPMPGetSettingsIntoAtomContainerAtAtom()
1921 *
1922 * Availability:
1923 * Mac OS X: in version 10.0 and later in QuickTime.framework
1924 * CarbonLib: in CarbonLib 1.1 and later
1925 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1926 * Windows: in QTSClient.lib 4.0 and later
1927 }
RTPMPGetSettingsIntoAtomContainerAtAtomnull1928 function RTPMPGetSettingsIntoAtomContainerAtAtom( rtpm: RTPMediaPacketizer; inOutContainer: QTAtomContainer; inParentAtom: QTAtom ): ComponentResult; external name '_RTPMPGetSettingsIntoAtomContainerAtAtom';
1929 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1930
1931
1932 {
1933 * RTPMPGetSettingsAsText()
1934 *
1935 * Availability:
1936 * Mac OS X: in version 10.0 and later in QuickTime.framework
1937 * CarbonLib: in CarbonLib 1.1 and later
1938 * Non-Carbon CFM: in QTStreamLib 4.0 and later
1939 * Windows: in QTSClient.lib 4.0 and later
1940 }
RTPMPGetSettingsAsTextnull1941 function RTPMPGetSettingsAsText( rtpm: RTPMediaPacketizer; var text: Handle ): ComponentResult; external name '_RTPMPGetSettingsAsText';
1942 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1943
1944
1945 {
1946 * RTPMPGetSettings()
1947 *
1948 * Availability:
1949 * Mac OS X: in version 10.0 and later in QuickTime.framework
1950 * CarbonLib: in CarbonLib 1.3 and later
1951 * Non-Carbon CFM: in QTStreamLib 5.0 and later
1952 * Windows: in QTSClient.lib 5.0 and later
1953 }
RTPMPGetSettingsnull1954 function RTPMPGetSettings( rtpm: RTPMediaPacketizer; var outSettings: QTAtomContainer; inFlags: SInt32 ): ComponentResult; external name '_RTPMPGetSettings';
1955 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1956
1957
1958 {
1959 * RTPMPSetSettings()
1960 *
1961 * Availability:
1962 * Mac OS X: in version 10.0 and later in QuickTime.framework
1963 * CarbonLib: in CarbonLib 1.3 and later
1964 * Non-Carbon CFM: in QTStreamLib 5.0 and later
1965 * Windows: in QTSClient.lib 5.0 and later
1966 }
RTPMPSetSettingsnull1967 function RTPMPSetSettings( rtpm: RTPMediaPacketizer; inSettings: QTAtomSpecPtr; inFlags: SInt32 ): ComponentResult; external name '_RTPMPSetSettings';
1968 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
1969
1970
1971 {============================================================================
1972 RTP Packet Builder
1973 ============================================================================}
1974 const
1975 kRTPPacketBuilderType = FourCharCode('rtpb');
1976
1977
1978 type
1979 RTPPacketBuilder = ComponentInstance;
1980 RTPPacketGroupRef = ^OpaqueRTPPacketGroupRef; { an opaque type }
1981 OpaqueRTPPacketGroupRef = record end;
1982 RTPPacketRef = ^OpaqueRTPPacketRef; { an opaque type }
1983 OpaqueRTPPacketRef = record end;
1984 RTPPacketRepeatedDataRef = ^OpaqueRTPPacketRepeatedDataRef; { an opaque type }
1985 OpaqueRTPPacketRepeatedDataRef = record end;
1986 { flags for RTPPBBegin/EndPacket, RTPPBBegin/EndPacketGroup}
1987 const
1988 kRTPPBSetMarkerFlag = $00000001;
1989 kRTPPBRepeatPacketFlag = $00000002;
1990 kRTPPBSyncSampleFlag = $00010000;
1991 kRTPPBBFrameFlag = $00020000;
1992 kRTPPBDontSendFlag = $10000000; { when set in EndPacketGroup, will not add group}
1993
1994 const
1995 kRTPPBUnknownPacketMediaDataLength = 0;
1996
1997 { flags for RTPPBGetSampleData}
1998 const
1999 kRTPPBEndOfDataFlag = $00000001;
2000
2001
2002 type
2003 RTPPBCallbackProcPtr = procedure( inSelector: OSType; ioParams: UnivPtr; inRefCon: UnivPtr );
2004 RTPPBCallbackUPP = RTPPBCallbackProcPtr;
2005 {-----------------------------------------
2006 RTP Packet Builder selectors
2007 -----------------------------------------}
2008 const
2009 kRTPPBBeginPacketGroupSelect = $0500;
2010 kRTPPBEndPacketGroupSelect = $0501;
2011 kRTPPBBeginPacketSelect = $0502;
2012 kRTPPBEndPacketSelect = $0503;
2013 kRTPPBAddPacketLiteralDataSelect = $0504;
2014 kRTPPBAddPacketSampleDataSelect = $0505;
2015 kRTPPBAddPacketRepeatedDataSelect = $0506;
2016 kRTPPBReleaseRepeatedDataSelect = $0507;
2017 kRTPPBSetPacketSequenceNumberSelect = $0508;
2018 kRTPPBGetPacketSequenceNumberSelect = $0509;
2019 kRTPPBSetCallbackSelect = $050A;
2020 kRTPPBGetCallbackSelect = $050B;
2021 kRTPPBSetInfoSelect = $050C;
2022 kRTPPBGetInfoSelect = $050D;
2023 kRTPPBSetPacketTimeStampOffsetSelect = $050E;
2024 kRTPPBGetPacketTimeStampOffsetSelect = $050F;
2025 kRTPPBAddPacketSampleData64Select = $0510;
2026 kRTPPBGetSampleDataSelect = $0511;
2027 kRTPPBAddRepeatPacketSelect = $0512;
2028
2029 {-----------------------------------------
2030 RTP Packet Builder functions
2031 -----------------------------------------}
2032 {
2033 * RTPPBBeginPacketGroup()
2034 *
2035 * Availability:
2036 * Mac OS X: in version 10.0 and later in QuickTime.framework
2037 * CarbonLib: in CarbonLib 1.1 and later
2038 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2039 * Windows: in QTSClient.lib 4.0 and later
2040 }
RTPPBBeginPacketGroupnull2041 function RTPPBBeginPacketGroup( rtpb: RTPPacketBuilder; inFlags: SInt32; inTimeStamp: UInt32; var outPacketGroup: RTPPacketGroupRef ): ComponentResult; external name '_RTPPBBeginPacketGroup';
2042 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2043
2044
2045 {
2046 * RTPPBEndPacketGroup()
2047 *
2048 * Availability:
2049 * Mac OS X: in version 10.0 and later in QuickTime.framework
2050 * CarbonLib: in CarbonLib 1.1 and later
2051 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2052 * Windows: in QTSClient.lib 4.0 and later
2053 }
RTPPBEndPacketGroupnull2054 function RTPPBEndPacketGroup( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef ): ComponentResult; external name '_RTPPBEndPacketGroup';
2055 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2056
2057
2058 {
2059 * RTPPBBeginPacket()
2060 *
2061 * Availability:
2062 * Mac OS X: in version 10.0 and later in QuickTime.framework
2063 * CarbonLib: in CarbonLib 1.1 and later
2064 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2065 * Windows: in QTSClient.lib 4.0 and later
2066 }
RTPPBBeginPacketnull2067 function RTPPBBeginPacket( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacketMediaDataLength: UInt32; var outPacket: RTPPacketRef ): ComponentResult; external name '_RTPPBBeginPacket';
2068 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2069
2070
2071 {
2072 * RTPPBEndPacket()
2073 *
2074 * Availability:
2075 * Mac OS X: in version 10.0 and later in QuickTime.framework
2076 * CarbonLib: in CarbonLib 1.1 and later
2077 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2078 * Windows: in QTSClient.lib 4.0 and later
2079 }
RTPPBEndPacketnull2080 function RTPPBEndPacket( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacket: RTPPacketRef; inTransmissionTimeOffset: UInt32; inDuration: UInt32 ): ComponentResult; external name '_RTPPBEndPacket';
2081 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2082
2083
2084 {
2085 non-NULL RTPPacketRepeatedDataRef means this data will be repeated later
2086 pb must return a repeated data ref
2087 }
2088 {
2089 * RTPPBAddPacketLiteralData()
2090 *
2091 * Availability:
2092 * Mac OS X: in version 10.0 and later in QuickTime.framework
2093 * CarbonLib: in CarbonLib 1.1 and later
2094 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2095 * Windows: in QTSClient.lib 4.0 and later
2096 }
RTPPBAddPacketLiteralDatanull2097 function RTPPBAddPacketLiteralData( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacket: RTPPacketRef; var inData: UInt8; inDataLength: UInt32; var outDataRef: RTPPacketRepeatedDataRef ): ComponentResult; external name '_RTPPBAddPacketLiteralData';
2098 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2099
2100
2101 {
2102 non-NULL RTPPacketRepeatedDataRef means this data will be repeated later
2103 pb must return a repeated data ref
2104 }
2105 {
2106 * RTPPBAddPacketSampleData()
2107 *
2108 * Availability:
2109 * Mac OS X: in version 10.0 and later in QuickTime.framework
2110 * CarbonLib: in CarbonLib 1.1 and later
2111 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2112 * Windows: in QTSClient.lib 4.0 and later
2113 }
RTPPBAddPacketSampleDatanull2114 function RTPPBAddPacketSampleData( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacket: RTPPacketRef; var inSampleDataParams: RTPMPSampleDataParams; inSampleOffset: UInt32; inSampleDataLength: UInt32; var outDataRef: RTPPacketRepeatedDataRef ): ComponentResult; external name '_RTPPBAddPacketSampleData';
2115 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2116
2117
2118 {
2119 non-NULL RTPPacketRepeatedDataRef means this data will be repeated later
2120 pb must return a repeated data ref
2121 }
2122 {
2123 * RTPPBAddPacketSampleData64()
2124 *
2125 * Availability:
2126 * Mac OS X: in version 10.0 and later in QuickTime.framework
2127 * CarbonLib: in CarbonLib 1.3 and later
2128 * Non-Carbon CFM: in QTStreamLib 5.0 and later
2129 * Windows: in QTSClient.lib 5.0 and later
2130 }
RTPPBAddPacketSampleData64null2131 function RTPPBAddPacketSampleData64( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacket: RTPPacketRef; var inSampleDataParams: RTPMPSampleDataParams; (*const*) var inSampleOffset: UInt64; inSampleDataLength: UInt32; var outDataRef: RTPPacketRepeatedDataRef ): ComponentResult; external name '_RTPPBAddPacketSampleData64';
2132 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2133
2134
2135 {
2136 call to add the repeated data using the ref you got from
2137 RTPPBAddPacketLiteralData or RTPPBAddPacketSampleData
2138 }
2139 {
2140 * RTPPBAddPacketRepeatedData()
2141 *
2142 * Availability:
2143 * Mac OS X: in version 10.0 and later in QuickTime.framework
2144 * CarbonLib: in CarbonLib 1.1 and later
2145 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2146 * Windows: in QTSClient.lib 4.0 and later
2147 }
RTPPBAddPacketRepeatedDatanull2148 function RTPPBAddPacketRepeatedData( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacket: RTPPacketRef; inDataRef: RTPPacketRepeatedDataRef ): ComponentResult; external name '_RTPPBAddPacketRepeatedData';
2149 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2150
2151
2152 { call when done with repeated data}
2153 {
2154 * RTPPBReleaseRepeatedData()
2155 *
2156 * Availability:
2157 * Mac OS X: in version 10.0 and later in QuickTime.framework
2158 * CarbonLib: in CarbonLib 1.1 and later
2159 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2160 * Windows: in QTSClient.lib 4.0 and later
2161 }
RTPPBReleaseRepeatedDatanull2162 function RTPPBReleaseRepeatedData( rtpb: RTPPacketBuilder; inDataRef: RTPPacketRepeatedDataRef ): ComponentResult; external name '_RTPPBReleaseRepeatedData';
2163 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2164
2165
2166 {
2167 seq number is just relative seq number
2168 don't call if you don't care when seq # is used
2169 }
2170 {
2171 * RTPPBSetPacketSequenceNumber()
2172 *
2173 * Availability:
2174 * Mac OS X: in version 10.0 and later in QuickTime.framework
2175 * CarbonLib: in CarbonLib 1.1 and later
2176 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2177 * Windows: in QTSClient.lib 4.0 and later
2178 }
RTPPBSetPacketSequenceNumbernull2179 function RTPPBSetPacketSequenceNumber( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacket: RTPPacketRef; inSequenceNumber: UInt32 ): ComponentResult; external name '_RTPPBSetPacketSequenceNumber';
2180 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2181
2182
2183 {
2184 * RTPPBGetPacketSequenceNumber()
2185 *
2186 * Availability:
2187 * Mac OS X: in version 10.0 and later in QuickTime.framework
2188 * CarbonLib: in CarbonLib 1.1 and later
2189 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2190 * Windows: in QTSClient.lib 4.0 and later
2191 }
RTPPBGetPacketSequenceNumbernull2192 function RTPPBGetPacketSequenceNumber( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacket: RTPPacketRef; var outSequenceNumber: UInt32 ): ComponentResult; external name '_RTPPBGetPacketSequenceNumber';
2193 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2194
2195
2196 {
2197 * RTPPBSetPacketTimeStampOffset()
2198 *
2199 * Availability:
2200 * Mac OS X: in version 10.0 and later in QuickTime.framework
2201 * CarbonLib: in CarbonLib 1.3 and later
2202 * Non-Carbon CFM: in QTStreamLib 5.0 and later
2203 * Windows: in QTSClient.lib 5.0 and later
2204 }
RTPPBSetPacketTimeStampOffsetnull2205 function RTPPBSetPacketTimeStampOffset( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacket: RTPPacketRef; inTimeStampOffset: SInt32 ): ComponentResult; external name '_RTPPBSetPacketTimeStampOffset';
2206 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2207
2208
2209 {
2210 * RTPPBGetPacketTimeStampOffset()
2211 *
2212 * Availability:
2213 * Mac OS X: in version 10.0 and later in QuickTime.framework
2214 * CarbonLib: in CarbonLib 1.3 and later
2215 * Non-Carbon CFM: in QTStreamLib 5.0 and later
2216 * Windows: in QTSClient.lib 5.0 and later
2217 }
RTPPBGetPacketTimeStampOffsetnull2218 function RTPPBGetPacketTimeStampOffset( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacket: RTPPacketRef; var outTimeStampOffset: SInt32 ): ComponentResult; external name '_RTPPBGetPacketTimeStampOffset';
2219 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2220
2221
2222 {
2223 * RTPPBAddRepeatPacket()
2224 *
2225 * Availability:
2226 * Mac OS X: in version 10.0 and later in QuickTime.framework
2227 * CarbonLib: in CarbonLib 1.3 and later
2228 * Non-Carbon CFM: in QTStreamLib 5.0 and later
2229 * Windows: in QTSClient.lib 5.0 and later
2230 }
RTPPBAddRepeatPacketnull2231 function RTPPBAddRepeatPacket( rtpb: RTPPacketBuilder; inFlags: SInt32; inPacketGroup: RTPPacketGroupRef; inPacket: RTPPacketRef; inTransmissionOffset: TimeValue; inSequenceNumber: UInt32 ): ComponentResult; external name '_RTPPBAddRepeatPacket';
2232 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2233
2234
2235 {
2236 used for communicating with the caller of the media packetizers if needed
2237 NOT used for communicating with the media packetizers themselves
2238 }
2239 {
2240 * RTPPBSetCallback()
2241 *
2242 * Availability:
2243 * Mac OS X: in version 10.0 and later in QuickTime.framework
2244 * CarbonLib: in CarbonLib 1.1 and later
2245 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2246 * Windows: in QTSClient.lib 4.0 and later
2247 }
RTPPBSetCallbacknull2248 function RTPPBSetCallback( rtpb: RTPPacketBuilder; inCallback: RTPPBCallbackUPP; inRefCon: UnivPtr ): ComponentResult; external name '_RTPPBSetCallback';
2249 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2250
2251
2252 {
2253 * RTPPBGetCallback()
2254 *
2255 * Availability:
2256 * Mac OS X: in version 10.0 and later in QuickTime.framework
2257 * CarbonLib: in CarbonLib 1.1 and later
2258 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2259 * Windows: in QTSClient.lib 4.0 and later
2260 }
RTPPBGetCallbacknull2261 function RTPPBGetCallback( rtpb: RTPPacketBuilder; var outCallback: RTPPBCallbackUPP; var outRefCon: UnivPtr ): ComponentResult; external name '_RTPPBGetCallback';
2262 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2263
2264
2265 {
2266 * RTPPBSetInfo()
2267 *
2268 * Availability:
2269 * Mac OS X: in version 10.0 and later in QuickTime.framework
2270 * CarbonLib: in CarbonLib 1.1 and later
2271 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2272 * Windows: in QTSClient.lib 4.0 and later
2273 }
RTPPBSetInfonull2274 function RTPPBSetInfo( rtpb: RTPPacketBuilder; inSelector: OSType; ioParams: UnivPtr ): ComponentResult; external name '_RTPPBSetInfo';
2275 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2276
2277
2278 {
2279 * RTPPBGetInfo()
2280 *
2281 * Availability:
2282 * Mac OS X: in version 10.0 and later in QuickTime.framework
2283 * CarbonLib: in CarbonLib 1.1 and later
2284 * Non-Carbon CFM: in QTStreamLib 4.0 and later
2285 * Windows: in QTSClient.lib 4.0 and later
2286 }
RTPPBGetInfonull2287 function RTPPBGetInfo( rtpb: RTPPacketBuilder; inSelector: OSType; ioParams: UnivPtr ): ComponentResult; external name '_RTPPBGetInfo';
2288 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2289
2290
2291 {
2292 * RTPPBGetSampleData()
2293 *
2294 * Availability:
2295 * Mac OS X: in version 10.0 and later in QuickTime.framework
2296 * CarbonLib: in CarbonLib 1.3 and later
2297 * Non-Carbon CFM: in QTStreamLib 5.0 and later
2298 * Windows: in QTSClient.lib 5.0 and later
2299 }
RTPPBGetSampleDatanull2300 function RTPPBGetSampleData( rtpb: RTPPacketBuilder; var inParams: RTPMPSampleDataParams; (*const*) var inStartOffset: UInt64; var outDataBuffer: UInt8; inBytesToRead: UInt32; var outBytesRead: UInt32; var outFlags: SInt32 ): ComponentResult; external name '_RTPPBGetSampleData';
2301 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2302
2303
2304 { UPP call backs }
2305 {
2306 * NewRTPMPDataReleaseUPP()
2307 *
2308 * Availability:
2309 * Mac OS X: in version 10.0 and later in QuickTime.framework
2310 * CarbonLib: in CarbonLib 1.3 and later
2311 * Non-Carbon CFM: available as macro/inline
2312 }
NewRTPMPDataReleaseUPPnull2313 function NewRTPMPDataReleaseUPP( userRoutine: RTPMPDataReleaseProcPtr ): RTPMPDataReleaseUPP; external name '_NewRTPMPDataReleaseUPP';
2314 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2315
2316 {
2317 * NewRTPPBCallbackUPP()
2318 *
2319 * Availability:
2320 * Mac OS X: in version 10.0 and later in QuickTime.framework
2321 * CarbonLib: in CarbonLib 1.3 and later
2322 * Non-Carbon CFM: available as macro/inline
2323 }
NewRTPPBCallbackUPPnull2324 function NewRTPPBCallbackUPP( userRoutine: RTPPBCallbackProcPtr ): RTPPBCallbackUPP; external name '_NewRTPPBCallbackUPP';
2325 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2326
2327 {
2328 * DisposeRTPMPDataReleaseUPP()
2329 *
2330 * Availability:
2331 * Mac OS X: in version 10.0 and later in QuickTime.framework
2332 * CarbonLib: in CarbonLib 1.3 and later
2333 * Non-Carbon CFM: available as macro/inline
2334 }
2335 procedure DisposeRTPMPDataReleaseUPP( userUPP: RTPMPDataReleaseUPP ); external name '_DisposeRTPMPDataReleaseUPP';
2336 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2337
2338 {
2339 * DisposeRTPPBCallbackUPP()
2340 *
2341 * Availability:
2342 * Mac OS X: in version 10.0 and later in QuickTime.framework
2343 * CarbonLib: in CarbonLib 1.3 and later
2344 * Non-Carbon CFM: available as macro/inline
2345 }
2346 procedure DisposeRTPPBCallbackUPP( userUPP: RTPPBCallbackUPP ); external name '_DisposeRTPPBCallbackUPP';
2347 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2348
2349 {
2350 * InvokeRTPMPDataReleaseUPP()
2351 *
2352 * Availability:
2353 * Mac OS X: in version 10.0 and later in QuickTime.framework
2354 * CarbonLib: in CarbonLib 1.3 and later
2355 * Non-Carbon CFM: available as macro/inline
2356 }
2357 procedure InvokeRTPMPDataReleaseUPP( var inData: UInt8; inRefCon: UnivPtr; userUPP: RTPMPDataReleaseUPP ); external name '_InvokeRTPMPDataReleaseUPP';
2358 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2359
2360 {
2361 * InvokeRTPPBCallbackUPP()
2362 *
2363 * Availability:
2364 * Mac OS X: in version 10.0 and later in QuickTime.framework
2365 * CarbonLib: in CarbonLib 1.3 and later
2366 * Non-Carbon CFM: available as macro/inline
2367 }
2368 procedure InvokeRTPPBCallbackUPP( inSelector: OSType; ioParams: UnivPtr; inRefCon: UnivPtr; userUPP: RTPPBCallbackUPP ); external name '_InvokeRTPPBCallbackUPP';
2369 (* AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER *)
2370
2371
2372 {$endc} {not TARGET_CPU_64}
2373
2374 {$endc} {TARGET_OS_MAC}
2375 {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
2376
2377 end.
2378 {$endc} {not MACOSALLINCLUDE}
2379