QTStreamingComponents.pas 85 KB

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