QTStreamingComponents.pas 85 KB

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