PageRenderTime 62ms CodeModel.GetById 12ms RepoModel.GetById 1ms app.codeStats 1ms

/src/avfoundation.cs

https://github.com/kjpou1/maccore
C# | 4350 lines | 3143 code | 1130 blank | 77 comment | 0 complexity | d48d3104850950554269f19cd73a22d0 MD5 | raw file
Possible License(s): Apache-2.0
  1. //
  2. // AVFoundation.cs: This file describes the API that the generator will produce for AVFoundation
  3. //
  4. // Authors:
  5. // Miguel de Icaza
  6. // Marek Safar (marek.safar@gmail.com)
  7. //
  8. // Copyright 2009, Novell, Inc.
  9. // Copyright 2010, Novell, Inc.
  10. // Copyright 2011-2012, Xamarin, Inc.
  11. //
  12. // Permission is hereby granted, free of charge, to any person obtaining
  13. // a copy of this software and associated documentation files (the
  14. // "Software"), to deal in the Software without restriction, including
  15. // without limitation the rights to use, copy, modify, merge, publish,
  16. // distribute, sublicense, and/or sell copies of the Software, and to
  17. // permit persons to whom the Software is furnished to do so, subject to
  18. // the following conditions:
  19. //
  20. // The above copyright notice and this permission notice shall be
  21. // included in all copies or substantial portions of the Software.
  22. //
  23. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  24. // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  25. // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  26. // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  27. // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  28. // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  29. // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  30. //
  31. using MonoMac.ObjCRuntime;
  32. using MonoMac.Foundation;
  33. using MonoMac.CoreFoundation;
  34. using MonoMac.CoreMedia;
  35. using MonoMac.CoreGraphics;
  36. using MonoMac.CoreAnimation;
  37. using MonoMac.CoreVideo;
  38. using System;
  39. using System.Drawing;
  40. #if !MONOMAC
  41. using MonoTouch.MediaToolbox;
  42. #endif
  43. namespace MonoMac.AVFoundation {
  44. delegate void AVAssetImageGeneratorCompletionHandler (CMTime requestedTime, IntPtr imageRef, CMTime actualTime, AVAssetImageGeneratorResult result, NSError error);
  45. delegate void AVCompletion (bool finished);
  46. [Since (4,0)]
  47. [BaseType (typeof (NSObject))][Static]
  48. interface AVMediaType {
  49. [Field ("AVMediaTypeVideo")]
  50. NSString Video { get; }
  51. [Field ("AVMediaTypeAudio")]
  52. NSString Audio { get; }
  53. [Field ("AVMediaTypeText")]
  54. NSString Text { get; }
  55. [Field ("AVMediaTypeClosedCaption")]
  56. NSString ClosedCaption { get; }
  57. [Field ("AVMediaTypeSubtitle")]
  58. NSString Subtitle { get; }
  59. [Field ("AVMediaTypeTimecode")]
  60. NSString Timecode { get; }
  61. [Field ("AVMediaTypeTimedMetadata")]
  62. [Obsolete ("Deprecated in iOS 6.0, see Metadata")]
  63. NSString TimedMetadata { get; }
  64. [Field ("AVMediaTypeMuxed")]
  65. NSString Muxed { get; }
  66. #if !MONOMAC
  67. [Since (6,0)]
  68. [Field ("AVMediaTypeMetadata")]
  69. NSString Metadata { get; }
  70. #endif
  71. }
  72. [Since (4,0)]
  73. [BaseType (typeof (NSObject))][Static]
  74. interface AVMediaCharacteristic {
  75. [Field ("AVMediaCharacteristicVisual")]
  76. NSString Visual { get; }
  77. [Field ("AVMediaCharacteristicAudible")]
  78. NSString Audible { get; }
  79. [Field ("AVMediaCharacteristicLegible")]
  80. NSString Legible { get; }
  81. [Field ("AVMediaCharacteristicFrameBased")]
  82. NSString FrameBased { get; }
  83. [MountainLion]
  84. [Field ("AVMediaCharacteristicIsMainProgramContent")]
  85. NSString IsMainProgramContent { get; }
  86. [MountainLion]
  87. [Field ("AVMediaCharacteristicIsAuxiliaryContent")]
  88. NSString IsAuxiliaryContent { get; }
  89. [MountainLion]
  90. [Field ("AVMediaCharacteristicContainsOnlyForcedSubtitles")]
  91. NSString ContainsOnlyForcedSubtitles { get; }
  92. [MountainLion]
  93. [Field ("AVMediaCharacteristicTranscribesSpokenDialogForAccessibility")]
  94. NSString TranscribesSpokenDialogForAccessibility { get; }
  95. [MountainLion]
  96. [Field ("AVMediaCharacteristicDescribesMusicAndSoundForAccessibility")]
  97. NSString DescribesMusicAndSoundForAccessibility { get; }
  98. [MountainLion]
  99. [Field ("AVMediaCharacteristicDescribesVideoForAccessibility")]
  100. NSString DescribesVideoForAccessibility { get; }
  101. #if !MONOMAC
  102. [Since (6,0)]
  103. [Field ("AVMediaCharacteristicEasyToRead")]
  104. NSString EasyToRead { get; }
  105. #endif
  106. }
  107. [Since (4,0)]
  108. [BaseType (typeof (NSObject))][Static]
  109. interface AVFileType {
  110. [Field ("AVFileTypeQuickTimeMovie")]
  111. NSString QuickTimeMovie { get; }
  112. [Field ("AVFileTypeMPEG4")]
  113. NSString Mpeg4 { get; }
  114. [Field ("AVFileTypeAppleM4V")]
  115. NSString AppleM4V { get; }
  116. [Field ("AVFileType3GPP")]
  117. NSString ThreeGpp { get; }
  118. [Field ("AVFileTypeAppleM4A")]
  119. NSString AppleM4A { get; }
  120. [Field ("AVFileTypeCoreAudioFormat")]
  121. NSString CoreAudioFormat { get; }
  122. [Field ("AVFileTypeWAVE")]
  123. NSString Wave { get; }
  124. [Field ("AVFileTypeAIFF")]
  125. NSString Aiff { get; }
  126. [Field ("AVFileTypeAIFC")]
  127. NSString Aifc { get; }
  128. [Field ("AVFileTypeAMR")]
  129. NSString Amr { get; }
  130. }
  131. [Since (4,0)]
  132. [BaseType (typeof (NSObject))][Static]
  133. interface AVVideo {
  134. [Field ("AVVideoCodecKey")]
  135. NSString CodecKey { get; }
  136. [Field ("AVVideoCodecH264")]
  137. NSString CodecH264 { get; }
  138. [Field ("AVVideoCodecJPEG")]
  139. NSString CodecJPEG { get; }
  140. [Field ("AVVideoWidthKey")]
  141. NSString WidthKey { get; }
  142. [Field ("AVVideoHeightKey")]
  143. NSString HeightKey { get; }
  144. [Since (5,0)]
  145. [Field ("AVVideoScalingModeKey")]
  146. NSString ScalingModeKey { get; }
  147. [Field ("AVVideoCompressionPropertiesKey")]
  148. NSString CompressionPropertiesKey { get; }
  149. [Field ("AVVideoAverageBitRateKey")]
  150. NSString AverageBitRateKey { get; }
  151. [Field ("AVVideoMaxKeyFrameIntervalKey")]
  152. NSString MaxKeyFrameIntervalKey { get; }
  153. [Field ("AVVideoProfileLevelKey")]
  154. NSString ProfileLevelKey { get; }
  155. [Since (5,0)]
  156. [Field ("AVVideoQualityKey")]
  157. NSString QualityKey { get; }
  158. [Field ("AVVideoProfileLevelH264Baseline30")]
  159. NSString ProfileLevelH264Baseline30 { get; }
  160. [Field ("AVVideoProfileLevelH264Baseline31")]
  161. NSString ProfileLevelH264Baseline31 { get; }
  162. [Field ("AVVideoProfileLevelH264Main30")]
  163. NSString ProfileLevelH264Main30 { get; }
  164. [Field ("AVVideoProfileLevelH264Main31")]
  165. NSString ProfileLevelH264Main31 { get; }
  166. [Since (5,0)]
  167. [Field ("AVVideoProfileLevelH264Baseline41")]
  168. NSString ProfileLevelH264Baseline41 { get; }
  169. [Since (5,0)][MountainLion]
  170. [Field ("AVVideoProfileLevelH264Main32")]
  171. NSString ProfileLevelH264Main32 { get; }
  172. [Since (5,0)]
  173. [Field ("AVVideoProfileLevelH264Main41")]
  174. NSString ProfileLevelH264Main41 { get; }
  175. #if !MONOMAC
  176. [Since (6,0)]
  177. [Field ("AVVideoProfileLevelH264High40")]
  178. NSString ProfileLevelH264High40 { get; }
  179. [Since (6,0)]
  180. [Field ("AVVideoProfileLevelH264High41")]
  181. NSString ProfileLevelH264High41 { get; }
  182. #endif
  183. [Field ("AVVideoPixelAspectRatioKey")]
  184. NSString PixelAspectRatioKey { get; }
  185. [Field ("AVVideoPixelAspectRatioHorizontalSpacingKey")]
  186. NSString PixelAspectRatioHorizontalSpacingKey { get; }
  187. [Field ("AVVideoPixelAspectRatioVerticalSpacingKey")]
  188. NSString PixelAspectRatioVerticalSpacingKey { get; }
  189. [Field ("AVVideoCleanApertureKey")]
  190. NSString CleanApertureKey { get; }
  191. [Field ("AVVideoCleanApertureWidthKey")]
  192. NSString CleanApertureWidthKey { get; }
  193. [Field ("AVVideoCleanApertureHeightKey")]
  194. NSString CleanApertureHeightKey { get; }
  195. [Field ("AVVideoCleanApertureHorizontalOffsetKey")]
  196. NSString CleanApertureHorizontalOffsetKey { get; }
  197. [Field ("AVVideoCleanApertureVerticalOffsetKey")]
  198. NSString CleanApertureVerticalOffsetKey { get; }
  199. }
  200. [Since (5,0)]
  201. [Static]
  202. interface AVVideoScalingModeKey
  203. {
  204. [Field ("AVVideoScalingModeFit")]
  205. NSString Fit { get; }
  206. [Field ("AVVideoScalingModeResize")]
  207. NSString Resize { get; }
  208. [Field ("AVVideoScalingModeResizeAspect")]
  209. NSString ResizeAspect { get; }
  210. [Field ("AVVideoScalingModeResizeAspectFill")]
  211. NSString ResizeAspectFill { get; }
  212. }
  213. [BaseType (typeof (NSObject))]
  214. [DisableDefaultCtor]
  215. interface AVAudioPlayer {
  216. [Export ("initWithContentsOfURL:error:")][Internal]
  217. IntPtr Constructor (NSUrl url, IntPtr outError);
  218. [Export ("initWithData:error:")][Internal]
  219. IntPtr Constructor (NSData data, IntPtr outError);
  220. [Export ("prepareToPlay")]
  221. bool PrepareToPlay ();
  222. [Export ("play")]
  223. bool Play ();
  224. [Export ("pause")]
  225. void Pause ();
  226. [Export ("stop")]
  227. void Stop ();
  228. [Export ("playing")]
  229. bool Playing { [Bind ("isPlaying")] get; }
  230. [Export ("numberOfChannels")]
  231. uint NumberOfChannels { get; }
  232. [Export ("duration")]
  233. double Duration { get; }
  234. [Export ("delegate", ArgumentSemantic.Assign)]
  235. NSObject WeakDelegate { get; set; }
  236. [Wrap ("WeakDelegate")]
  237. AVAudioPlayerDelegate Delegate { get; set; }
  238. [Export ("url")]
  239. NSUrl Url { get; }
  240. [Export ("data")]
  241. NSData Data { get; }
  242. [Export ("volume")]
  243. float Volume { get; set; }
  244. [Export ("currentTime")]
  245. double CurrentTime { get; set; }
  246. [Export ("numberOfLoops")]
  247. int NumberOfLoops { get; set; }
  248. [Export ("meteringEnabled")]
  249. bool MeteringEnabled { [Bind ("isMeteringEnabled")] get; set; }
  250. [Export ("updateMeters")]
  251. void UpdateMeters ();
  252. [Export ("peakPowerForChannel:")]
  253. float PeakPower (uint channelNumber);
  254. [Export ("averagePowerForChannel:")]
  255. float AveragePower (uint channelNumber);
  256. [Since (4,0)]
  257. [Export ("deviceCurrentTime")]
  258. double DeviceCurrentTime { get; }
  259. [Since (4,0)]
  260. [Export ("pan")]
  261. float Pan { get; set; }
  262. [Since (4,0)]
  263. [Export ("playAtTime:")]
  264. bool PlayAtTime (double time);
  265. [Since (4,0)]
  266. [Export ("settings")][Protected]
  267. NSDictionary WeakSettings { get; }
  268. [Wrap ("WeakSettings")]
  269. AudioSettings SoundSetting { get; }
  270. [Since (5,0)]
  271. [Export ("enableRate")]
  272. bool EnableRate { get; set; }
  273. [Since (5,0)]
  274. [Export ("rate")]
  275. float Rate { get; set; }
  276. #if !MONOMAC
  277. [Since (6,0)]
  278. [Export ("channelAssignments")]
  279. AVAudioSessionChannelDescription [] ChannelAssignments { get; set; }
  280. #endif
  281. }
  282. [BaseType (typeof (NSObject))]
  283. [Model]
  284. [Protocol]
  285. interface AVAudioPlayerDelegate {
  286. [Export ("audioPlayerDidFinishPlaying:successfully:"), CheckDisposed]
  287. void FinishedPlaying (AVAudioPlayer player, bool flag);
  288. [Export ("audioPlayerDecodeErrorDidOccur:error:")]
  289. void DecoderError (AVAudioPlayer player, NSError error);
  290. #if !MONOMAC
  291. [Export ("audioPlayerBeginInterruption:")]
  292. void BeginInterruption (AVAudioPlayer player);
  293. [Export ("audioPlayerEndInterruption:")]
  294. [Obsolete ("Deprecated in iOS 6.0")]
  295. void EndInterruption (AVAudioPlayer player);
  296. // Deprecated in iOS 6.0 but we have same C# signature
  297. [Since (4,0)]
  298. [Export ("audioPlayerEndInterruption:withFlags:")]
  299. void EndInterruption (AVAudioPlayer player, AVAudioSessionInterruptionFlags flags);
  300. //[Since (6,0)]
  301. //[Export ("audioPlayerEndInterruption:withOptions:")]
  302. //void EndInterruption (AVAudioPlayer player, AVAudioSessionInterruptionFlags flags);
  303. #endif
  304. }
  305. [BaseType (typeof (NSObject))]
  306. interface AVAudioRecorder {
  307. [Export ("initWithURL:settings:error:")][Internal]
  308. IntPtr Constructor (NSUrl url, NSDictionary settings, IntPtr outError);
  309. [Export ("prepareToRecord")]
  310. bool PrepareToRecord ();
  311. [Export ("record")]
  312. bool Record ();
  313. [Export ("recordForDuration:")]
  314. bool RecordFor (double duration);
  315. [Export ("pause")]
  316. void Pause ();
  317. [Export ("stop")]
  318. void Stop ();
  319. [Export ("deleteRecording")]
  320. bool DeleteRecording ();
  321. [Export ("recording")]
  322. bool Recording { [Bind ("isRecording")] get; }
  323. [Export ("url")]
  324. NSUrl Url { get; }
  325. [Advice ("Use AudioSettings")]
  326. [Export ("settings")]
  327. NSDictionary Settings { get; }
  328. [Wrap ("Settings")]
  329. AudioSettings AudioSettings { get; }
  330. [Export ("delegate")]
  331. NSObject WeakDelegate { get; set; }
  332. [Wrap ("WeakDelegate")]
  333. AVAudioRecorderDelegate Delegate { get; set; }
  334. [Export ("currentTime")]
  335. double currentTime { get; }
  336. [Export ("meteringEnabled")]
  337. bool MeteringEnabled { [Bind ("isMeteringEnabled")] get; set; }
  338. [Export ("updateMeters")]
  339. void UpdateMeters ();
  340. [Export ("peakPowerForChannel:")]
  341. float PeakPower (uint channelNumber);
  342. [Export ("averagePowerForChannel:")]
  343. float AveragePower (uint channelNumber);
  344. #if !MONOMAC
  345. [Since (6,0)]
  346. [Export ("channelAssignments")]
  347. AVAudioSessionChannelDescription [] ChannelAssignments { get; set; }
  348. [Since (6,0)]
  349. [Export ("recordAtTime:")]
  350. bool RecordAt (double time);
  351. [Since (6,0)]
  352. [Export ("recordAtTime:forDuration:")]
  353. bool RecordAt (double time, double duration);
  354. [Since (6,0)]
  355. [Export ("deviceCurrentTime")]
  356. double DeviceCurrentTime { get; }
  357. #endif
  358. }
  359. [BaseType (typeof (NSObject))]
  360. [Model]
  361. [Protocol]
  362. interface AVAudioRecorderDelegate {
  363. [Export ("audioRecorderDidFinishRecording:successfully:"), CheckDisposed]
  364. void FinishedRecording (AVAudioRecorder recorder, bool flag);
  365. [Export ("audioRecorderEncodeErrorDidOccur:error:")]
  366. void EncoderError (AVAudioRecorder recorder, NSError error);
  367. #if !MONOMAC
  368. [Export ("audioRecorderBeginInterruption:")]
  369. void BeginInterruption (AVAudioRecorder recorder);
  370. [Obsolete ("Deprecated in iOS 6.0")]
  371. [Export ("audioRecorderEndInterruption:")]
  372. void EndInterruption (AVAudioRecorder recorder);
  373. // Deprecated in iOS 6.0 but we have same C# signature
  374. [Since (4,0)]
  375. [Export ("audioRecorderEndInterruption:withFlags:")]
  376. void EndInterruption (AVAudioRecorder recorder, AVAudioSessionInterruptionFlags flags);
  377. //[Since (6,0)]
  378. //[Export ("audioRecorderEndInterruption:withOptions:")]
  379. //void EndInterruption (AVAudioRecorder recorder, AVAudioSessionInterruptionFlags flags);
  380. #endif
  381. }
  382. #if !MONOMAC
  383. [BaseType (typeof (NSObject))]
  384. interface AVAudioSession {
  385. [Export ("sharedInstance"), Static]
  386. AVAudioSession SharedInstance ();
  387. [Export ("delegate")]
  388. NSObject WeakDelegate { get; set; }
  389. [Wrap ("WeakDelegate")]
  390. [Obsolete ("Deprecated in iOS 6.0. Use AVAudioSession.Notification.Observe* methods instead")]
  391. AVAudioSessionDelegate Delegate { get; set; }
  392. [Export ("setActive:error:")]
  393. bool SetActive (bool beActive, out NSError outError);
  394. [Since (4,0)]
  395. [Export ("setActive:withFlags:error:")]
  396. [Obsolete ("Deprecated in iOS 6.0. Use SetActive (bool, AVAudioSessionSetActiveOptions, out NSError) instead")]
  397. bool SetActive (bool beActive, AVAudioSessionFlags flags, out NSError outError);
  398. [Export ("setCategory:error:")]
  399. bool SetCategory (NSString theCategory, out NSError outError);
  400. [Obsolete ("Deprecated in iOS 6.0, use SetPreferredSampleRate")]
  401. [Export ("setPreferredHardwareSampleRate:error:")]
  402. bool SetPreferredHardwareSampleRate (double sampleRate, out NSError outError);
  403. [Export ("setPreferredIOBufferDuration:error:")]
  404. bool SetPreferredIOBufferDuration (double duration, out NSError outError);
  405. [Export ("category")]
  406. NSString Category { get; }
  407. [Export ("mode")]
  408. NSString Mode { get; }
  409. [Export ("setMode:error:")]
  410. bool SetMode (NSString mode, out NSError error);
  411. [Export ("preferredHardwareSampleRate")]
  412. [Obsolete ("Deprecated in iOS 6.0")]
  413. double PreferredHardwareSampleRate { get; }
  414. [Export ("preferredIOBufferDuration")]
  415. double PreferredIOBufferDuration { get; }
  416. [Export ("inputIsAvailable")]
  417. [Obsolete ("Deprecated in iOS 6.0")]
  418. bool InputIsAvailable { get; }
  419. [Export ("currentHardwareSampleRate")]
  420. [Obsolete ("Deprecated in iOS 6.0, use SampleRate instead")]
  421. double CurrentHardwareSampleRate { get; }
  422. [Export ("currentHardwareInputNumberOfChannels")]
  423. [Obsolete ("Deprecated in iOS 6.0, use InputNumberOfChannels instead")]
  424. int CurrentHardwareInputNumberOfChannels { get; }
  425. [Export ("currentHardwareOutputNumberOfChannels")]
  426. [Obsolete ("Deprecated in iOS 6.0, use OutputNumberOfChannels instead")]
  427. int CurrentHardwareOutputNumberOfChannels { get; }
  428. [Field ("AVAudioSessionCategoryAmbient")]
  429. NSString CategoryAmbient { get; }
  430. [Field ("AVAudioSessionCategorySoloAmbient")]
  431. NSString CategorySoloAmbient { get; }
  432. [Field ("AVAudioSessionCategoryPlayback")]
  433. NSString CategoryPlayback { get; }
  434. [Field ("AVAudioSessionCategoryRecord")]
  435. NSString CategoryRecord { get; }
  436. [Field ("AVAudioSessionCategoryPlayAndRecord")]
  437. NSString CategoryPlayAndRecord { get; }
  438. [Field ("AVAudioSessionCategoryAudioProcessing")]
  439. NSString CategoryAudioProcessing { get; }
  440. [Field ("AVAudioSessionModeDefault")]
  441. NSString ModeDefault { get; }
  442. [Field ("AVAudioSessionModeVoiceChat")]
  443. NSString ModeVoiceChat { get; }
  444. [Field ("AVAudioSessionModeVideoRecording")]
  445. NSString ModeVideoRecording { get; }
  446. [Field ("AVAudioSessionModeMeasurement")]
  447. NSString ModeMeasurement { get; }
  448. [Field ("AVAudioSessionModeGameChat")]
  449. NSString ModeGameChat { get; }
  450. [Since (6,0)]
  451. [Export ("setActive:withOptions:error:")]
  452. bool SetActive (bool active, AVAudioSessionSetActiveOptions options, out NSError outError);
  453. [Since (6,0)]
  454. [Export ("setCategory:withOptions:error:")]
  455. bool SetCategory (string category, AVAudioSessionCategoryOptions options, out NSError outError);
  456. [Since (6,0)]
  457. [Export ("categoryOptions")]
  458. AVAudioSessionCategoryOptions CategoryOptions { get; }
  459. [Since (6,0)]
  460. [Export ("overrideOutputAudioPort:error:")]
  461. bool OverrideOutputAudioPort (AVAudioSessionPortOverride portOverride, out NSError outError);
  462. [Since (6,0)]
  463. [Export ("otherAudioPlaying")]
  464. bool OtherAudioPlaying { [Bind ("isOtherAudioPlaying")] get; }
  465. [Since (6,0)]
  466. [Export ("currentRoute")]
  467. AVAudioSessionRouteDescription CurrentRoute { get; }
  468. [Since (6,0)]
  469. [Export ("setPreferredSampleRate:error:")]
  470. bool SetPreferredSampleRate (double sampleRate, out NSError error);
  471. [Since (6,0)]
  472. [Export ("preferredSampleRate")]
  473. double PreferredSampleRate { get; }
  474. [Since (6,0)]
  475. [Export ("inputGain")]
  476. float InputGain { get; }
  477. [Since (6,0)]
  478. [Export ("inputGainSettable")]
  479. bool InputGainSettable { [Bind ("isInputGainSettable")] get; }
  480. [Since (6,0)]
  481. [Export ("inputAvailable")]
  482. bool InputAvailable { [Bind ("isInputAvailable")] get; }
  483. [Since (6,0)]
  484. [Export ("sampleRate")]
  485. double SampleRate { get; }
  486. [Since (6,0)]
  487. [Export ("inputNumberOfChannels")]
  488. int InputNumberOfChannels { get; }
  489. [Since (6,0)]
  490. [Export ("outputNumberOfChannels")]
  491. int OutputNumberOfChannels { get; }
  492. [Since (6,0)]
  493. [Export ("outputVolume")]
  494. float OutputVolume { get; }
  495. [Since (6,0)]
  496. [Export ("inputLatency")]
  497. double InputLatency { get; }
  498. [Since (6,0)]
  499. [Export ("outputLatency")]
  500. double OutputLatency { get; }
  501. [Since (6,0)]
  502. [Export ("IOBufferDuration")]
  503. double IOBufferDuration { get; }
  504. [Since (6,0)]
  505. [Export ("setInputGain:error:")]
  506. bool SetInputGain (float gain, out NSError outError);
  507. [Since (6,0)]
  508. [Field ("AVAudioSessionInterruptionNotification")]
  509. [Notification (typeof (AVAudioSessionInterruptionEventArgs))]
  510. NSString InterruptionNotification { get; }
  511. [Since (6,0)]
  512. [Field ("AVAudioSessionRouteChangeNotification")]
  513. [Notification (typeof (AVAudioSessionRouteChangeEventArgs))]
  514. NSString RouteChangeNotification { get; }
  515. [Since (6,0)]
  516. [Field ("AVAudioSessionMediaServicesWereResetNotification")]
  517. [Notification]
  518. NSString MediaServicesWereResetNotification { get; }
  519. [Since (6,0)]
  520. [Field ("AVAudioSessionCategoryMultiRoute")]
  521. NSString CategoryMultiRoute { get; }
  522. [Since (6,0)]
  523. [Field ("AVAudioSessionModeMoviePlayback")]
  524. NSString ModeMoviePlayback { get; }
  525. [Since (6,0)]
  526. [Field ("AVAudioSessionPortLineIn")]
  527. NSString PortLineIn { get; }
  528. [Since (6,0)]
  529. [Field ("AVAudioSessionPortBuiltInMic")]
  530. NSString PortBuiltInMic { get; }
  531. [Since (6,0)]
  532. [Field ("AVAudioSessionPortHeadsetMic")]
  533. NSString PortHeadsetMic { get; }
  534. [Since (6,0)]
  535. [Field ("AVAudioSessionPortLineOut")]
  536. NSString PortLineOut { get; }
  537. [Since (6,0)]
  538. [Field ("AVAudioSessionPortHeadphones")]
  539. NSString PortHeadphones { get; }
  540. [Since (6,0)]
  541. [Field ("AVAudioSessionPortBluetoothA2DP")]
  542. NSString PortBluetoothA2DP { get; }
  543. [Since (6,0)]
  544. [Field ("AVAudioSessionPortBuiltInReceiver")]
  545. NSString PortBuiltInReceiver { get; }
  546. [Since (6,0)]
  547. [Field ("AVAudioSessionPortBuiltInSpeaker")]
  548. NSString PortBuiltInSpeaker { get; }
  549. [Since (6,0)]
  550. [Field ("AVAudioSessionPortHDMI")]
  551. NSString PortHdmi { get; }
  552. [Since (6,0)]
  553. [Field ("AVAudioSessionPortAirPlay")]
  554. NSString PortAirPlay { get; }
  555. [Since (6,0)]
  556. [Field ("AVAudioSessionPortBluetoothHFP")]
  557. NSString PortBluetoothHfp { get; }
  558. [Since (6,0)]
  559. [Field ("AVAudioSessionPortUSBAudio")]
  560. NSString PortUsbAudio { get; }
  561. [Since (6,0)]
  562. [Export ("inputDataSources")]
  563. AVAudioSessionDataSourceDescription [] InputDataSources { get; }
  564. [Since (6,0)]
  565. [Export ("inputDataSource")]
  566. AVAudioSessionDataSourceDescription InputDataSource { get; }
  567. [Since (6,0)]
  568. [Export ("outputDataSources")]
  569. AVAudioSessionDataSourceDescription [] OutputDataSources { get; }
  570. [Since (6,0)]
  571. [Export ("outputDataSource")]
  572. AVAudioSessionDataSourceDescription OutputDataSource { get; }
  573. [Since (6,0)]
  574. [Export ("setInputDataSource:error:")]
  575. [PostGet ("InputDataSource")]
  576. bool SetInputDataSource (AVAudioSessionDataSourceDescription dataSource, out NSError outError);
  577. [Since (6,0)]
  578. [Export ("setOutputDataSource:error:")]
  579. [PostGet ("OutputDataSource")]
  580. bool SetOutputDataSource (AVAudioSessionDataSourceDescription dataSource, out NSError outError);
  581. }
  582. [Since (6,0)]
  583. [BaseType (typeof (NSObject))]
  584. interface AVAudioSessionDataSourceDescription {
  585. [Export ("dataSourceID")]
  586. NSNumber DataSourceID { get; }
  587. [Export ("dataSourceName")]
  588. string DataSourceName { get; }
  589. }
  590. interface AVAudioSessionInterruptionEventArgs {
  591. [Export ("AVAudioSessionInterruptionTypeKey")]
  592. AVAudioSessionInterruptionType InterruptionType { get; }
  593. [Export ("AVAudioSessionInterruptionOptionKey")]
  594. AVAudioSessionInterruptionOptions Option { get; }
  595. }
  596. interface AVAudioSessionRouteChangeEventArgs {
  597. [Export ("AVAudioSessionRouteChangeReasonKey")]
  598. AVAudioSessionRouteChangeReason Reason { get; }
  599. [Export ("AVAudioSessionRouteChangePreviousRouteKey")]
  600. AVAudioSessionRouteDescription PreviousRoute { get; }
  601. }
  602. [BaseType (typeof (NSObject))]
  603. [Model]
  604. [Protocol]
  605. interface AVAudioSessionDelegate {
  606. [Export ("beginInterruption")]
  607. void BeginInterruption ();
  608. [Export ("endInterruption")]
  609. void EndInterruption ();
  610. [Export ("inputIsAvailableChanged:")]
  611. void InputIsAvailableChanged (bool isInputAvailable);
  612. [Since (4,0)]
  613. [Export ("endInterruptionWithFlags:")]
  614. void EndInterruption (AVAudioSessionInterruptionFlags flags);
  615. }
  616. [Since (6,0)]
  617. [BaseType (typeof (NSObject))]
  618. interface AVAudioSessionChannelDescription {
  619. [Export ("channelName")]
  620. string ChannelName { get; }
  621. [Export ("owningPortUID")]
  622. string OwningPortUID { get; }
  623. [Export ("channelNumber")]
  624. int ChannelNumber { get; }
  625. }
  626. [Since (6,0)]
  627. [BaseType (typeof (NSObject))]
  628. interface AVAudioSessionPortDescription {
  629. [Export ("portType")]
  630. NSString PortType { get; }
  631. [Export ("portName")]
  632. string PortName { get; }
  633. [Export ("UID")]
  634. string UID { get; }
  635. [Export ("channels")]
  636. AVAudioSessionChannelDescription [] Channels { get; }
  637. }
  638. [Since (6,0)]
  639. [BaseType (typeof (NSObject))]
  640. interface AVAudioSessionRouteDescription {
  641. [Export ("inputs")]
  642. AVAudioSessionPortDescription [] Inputs { get; }
  643. [Export ("outputs")]
  644. AVAudioSessionPortDescription [] Outputs { get; }
  645. }
  646. #endif
  647. [Since (4,0)]
  648. [BaseType (typeof (NSObject))]
  649. // Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** initialization method -init cannot be sent to an abstract object of class AVAsset: Create a concrete instance!
  650. [DisableDefaultCtor]
  651. interface AVAsset {
  652. [Export ("duration")]
  653. CMTime Duration { get; }
  654. [Export ("preferredRate")]
  655. float PreferredRate { get; }
  656. [Export ("preferredVolume")]
  657. float PreferredVolume { get; }
  658. [Export ("preferredTransform")]
  659. CGAffineTransform PreferredTransform { get; }
  660. [Export ("naturalSize"), Obsolete ("Deprecated in iOS 5.0. Use NaturalSize/PreferredTransform as appropriate on the video track")]
  661. SizeF NaturalSize { get; }
  662. [Export ("providesPreciseDurationAndTiming")]
  663. bool ProvidesPreciseDurationAndTiming { get; }
  664. [Export ("cancelLoading")]
  665. void CancelLoading ();
  666. [Export ("tracks")]
  667. AVAssetTrack [] Tracks { get; }
  668. [Export ("trackWithTrackID:")]
  669. AVAssetTrack TrackWithTrackID (int trackID);
  670. [Export ("tracksWithMediaType:")]
  671. AVAssetTrack [] TracksWithMediaType (string mediaType);
  672. [Export ("tracksWithMediaCharacteristic:")]
  673. AVAssetTrack [] TracksWithMediaCharacteristic (string mediaCharacteristic);
  674. [Export ("lyrics")]
  675. string Lyrics { get; }
  676. [Export ("commonMetadata")]
  677. AVMetadataItem [] CommonMetadata { get; }
  678. [Export ("availableMetadataFormats")]
  679. string [] AvailableMetadataFormats { get; }
  680. [Export ("metadataForFormat:")]
  681. AVMetadataItem [] MetadataForFormat (string format);
  682. [Since (4,2)]
  683. [Export ("hasProtectedContent")]
  684. bool ProtectedContent { get; }
  685. [Since (4,3)]
  686. [Export ("availableChapterLocales")]
  687. NSLocale [] AvailableChapterLocales { get; }
  688. [Since (4,3)]
  689. [Export ("chapterMetadataGroupsWithTitleLocale:containingItemsWithCommonKeys:")]
  690. AVMetadataItem [] ChapterMetadataGroups (NSLocale forLocale, [NullAllowed] AVMetadataItem [] commonKeys);
  691. [Since (4,3)]
  692. [Export ("isPlayable")]
  693. bool Playable { get; }
  694. [Since (4,3)]
  695. [Export ("isExportable")]
  696. bool Exportable { get; }
  697. [Since (4,3)]
  698. [Export ("isReadable")]
  699. bool Readable { get; }
  700. [Since (4,3)]
  701. [Export ("isComposable")]
  702. bool Composable { get; }
  703. // 5.0 APIs:
  704. [Since (5,0)]
  705. [Static, Export ("assetWithURL:")]
  706. AVAsset FromUrl (NSUrl url);
  707. #if !MONOMAC
  708. [Since (5,0)]
  709. [Export ("availableMediaCharacteristicsWithMediaSelectionOptions")]
  710. string [] AvailableMediaCharacteristicsWithMediaSelectionOptions { get; }
  711. [Since (5,0)]
  712. [Export ("compatibleWithSavedPhotosAlbum")]
  713. bool CompatibleWithSavedPhotosAlbum { [Bind ("isCompatibleWithSavedPhotosAlbum")] get; }
  714. [Since (5,0)]
  715. [Export ("creationDate")]
  716. AVMetadataItem CreationDate { get; }
  717. #endif
  718. [Since (5,0)]
  719. [Export ("referenceRestrictions")]
  720. AVAssetReferenceRestrictions ReferenceRestrictions { get; }
  721. #if !MONOMAC
  722. [Since (5,0)]
  723. [Export ("mediaSelectionGroupForMediaCharacteristic:")]
  724. AVMediaSelectionGroup MediaSelectionGroupForMediaCharacteristic (string avMediaCharacteristic);
  725. #endif
  726. [Export ("statusOfValueForKey:error:")]
  727. AVKeyValueStatus StatusOfValue (string key, out NSError error);
  728. [Export ("loadValuesAsynchronouslyForKeys:completionHandler:")]
  729. [Async ("LoadValuesTaskAsync")]
  730. void LoadValuesAsynchronously (string [] keys, NSAction handler);
  731. #if !MONOMAC
  732. [Since (6,0)]
  733. [Export ("chapterMetadataGroupsBestMatchingPreferredLanguages:")]
  734. AVTimedMetadataGroup [] GetChapterMetadataGroupsBestMatchingPreferredLanguages (string [] languages);
  735. #endif
  736. }
  737. [BaseType (typeof (NSObject))]
  738. // <quote>You create an asset generator using initWithAsset: or assetImageGeneratorWithAsset:</quote> http://developer.apple.com/library/ios/#documentation/AVFoundation/Reference/AVAssetImageGenerator_Class/Reference/Reference.html
  739. // calling 'init' returns a NIL handle
  740. [DisableDefaultCtor]
  741. interface AVAssetImageGenerator {
  742. [Export ("maximumSize")]
  743. SizeF MaximumSize { get; set; }
  744. [Export ("apertureMode")]
  745. NSString ApertureMode { get; set; }
  746. [Export ("videoComposition", ArgumentSemantic.Copy)]
  747. AVVideoComposition VideoComposition { get; set; }
  748. [Export ("appliesPreferredTrackTransform")]
  749. bool AppliesPreferredTrackTransform { get; set; }
  750. [Static]
  751. [Export ("assetImageGeneratorWithAsset:")]
  752. AVAssetImageGenerator FromAsset (AVAsset asset);
  753. [Export ("initWithAsset:")]
  754. IntPtr Constructor (AVAsset asset);
  755. [Export ("copyCGImageAtTime:actualTime:error:")]
  756. CGImage CopyCGImageAtTime (CMTime requestedTime, out CMTime actualTime, out NSError outError);
  757. [Export ("generateCGImagesAsynchronouslyForTimes:completionHandler:")]
  758. void GenerateCGImagesAsynchronously (NSValue[] cmTimesRequestedTimes, AVAssetImageGeneratorCompletionHandler handler);
  759. [Export ("cancelAllCGImageGeneration")]
  760. void CancelAllCGImageGeneration ();
  761. [Field ("AVAssetImageGeneratorApertureModeCleanAperture")]
  762. NSString ApertureModeCleanAperture { get; }
  763. [Field ("AVAssetImageGeneratorApertureModeProductionAperture")]
  764. NSString ApertureModeProductionAperture { get; }
  765. [Field ("AVAssetImageGeneratorApertureModeEncodedPixels")]
  766. NSString ApertureModeEncodedPixels { get; }
  767. // 5.0 APIs
  768. [Since (5,0)]
  769. [Export ("requestedTimeToleranceBefore")]
  770. CMTime RequestedTimeToleranceBefore { get; set; }
  771. [Since (5,0)]
  772. [Export ("requestedTimeToleranceAfter")]
  773. CMTime RequestedTimeToleranceAfter { get; set; }
  774. #if !MONOMAC
  775. [Since (6,0)]
  776. [Export ("asset")]
  777. AVAsset Asset { get; }
  778. #endif
  779. }
  780. [Since (4,1)]
  781. [BaseType (typeof (NSObject))]
  782. // Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** -[AVAssetReader initWithAsset:error:] invalid parameter not satisfying: asset != ((void*)0)
  783. [DisableDefaultCtor]
  784. interface AVAssetReader {
  785. [Export ("asset")]
  786. AVAsset Asset { get; }
  787. [Export ("status")]
  788. AVAssetReaderStatus Status { get; }
  789. [Export ("error")]
  790. NSError Error { get; }
  791. [Export ("timeRange")]
  792. CMTimeRange TimeRange { get; set; }
  793. [Export ("outputs")]
  794. AVAssetReaderOutput [] Outputs { get; }
  795. [Static, Export ("assetReaderWithAsset:error:")]
  796. AVAssetReader FromAsset (AVAsset asset, out NSError error);
  797. [Export ("initWithAsset:error:")]
  798. IntPtr Constructor (AVAsset asset, out NSError error);
  799. [Export ("canAddOutput:")]
  800. bool CanAddOutput (AVAssetReaderOutput output);
  801. [Export ("addOutput:")]
  802. void AddOutput (AVAssetReaderOutput output);
  803. [Export ("startReading")]
  804. bool StartReading ();
  805. [Export ("cancelReading")]
  806. void CancelReading ();
  807. }
  808. [Since (4,1)]
  809. [BaseType (typeof (NSObject))]
  810. // Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** initialization method -init cannot be sent to an abstract object of class AVAssetReaderOutput: Create a concrete instance!
  811. [DisableDefaultCtor]
  812. interface AVAssetReaderOutput {
  813. [Export ("mediaType")]
  814. string MediaType { get; }
  815. [Export ("copyNextSampleBuffer")]
  816. CMSampleBuffer CopyNextSampleBuffer ();
  817. [Export ("alwaysCopiesSampleData")]
  818. bool AlwaysCopiesSampleData { get; set; }
  819. }
  820. [Since (4,1)]
  821. [BaseType (typeof (AVAssetReaderOutput))]
  822. // Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** -[AVAssetReaderTrackOutput initWithTrack:outputSettings:] invalid parameter not satisfying: track != ((void*)0)
  823. [DisableDefaultCtor]
  824. interface AVAssetReaderTrackOutput {
  825. [Export ("track")]
  826. AVAssetTrack Track { get; }
  827. [Advice ("Use Create method")]
  828. [Static, Export ("assetReaderTrackOutputWithTrack:outputSettings:")]
  829. AVAssetReaderTrackOutput FromTrack (AVAssetTrack track, [NullAllowed] NSDictionary outputSettings);
  830. [Static, Wrap ("FromTrack (track, settings == null ? null : settings.Dictionary)")]
  831. AVAssetReaderTrackOutput Create (AVAssetTrack track, [NullAllowed] AudioSettings settings);
  832. [Static, Wrap ("FromTrack (track, settings == null ? null : settings.Dictionary)")]
  833. AVAssetReaderTrackOutput Create (AVAssetTrack track, [NullAllowed] AVVideoSettingsUncompressed settings);
  834. [Export ("initWithTrack:outputSettings:")]
  835. IntPtr Constructor (AVAssetTrack track, [NullAllowed] NSDictionary outputSettings);
  836. [Wrap ("this (track, settings == null ? null : settings.Dictionary)")]
  837. IntPtr Constructor (AVAssetTrack track, [NullAllowed] AudioSettings settings);
  838. [Wrap ("this (track, settings == null ? null : settings.Dictionary)")]
  839. IntPtr Constructor (AVAssetTrack track, [NullAllowed] AVVideoSettingsUncompressed settings);
  840. [Export ("outputSettings")]
  841. NSDictionary OutputSettings { get; }
  842. }
  843. [Since (4,1)]
  844. [BaseType (typeof (AVAssetReaderOutput))]
  845. // Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** -[AVAssetReaderAudioMixOutput initWithAudioTracks:audioSettings:] invalid parameter not satisfying: audioTracks != ((void*)0)
  846. [DisableDefaultCtor]
  847. interface AVAssetReaderAudioMixOutput {
  848. [Export ("audioTracks")]
  849. AVAssetTrack [] AudioTracks { get; }
  850. [Export ("audioMix", ArgumentSemantic.Copy)]
  851. AVAudioMix AudioMix { get; set; }
  852. [Advice ("Use Create method")]
  853. [Static, Export ("assetReaderAudioMixOutputWithAudioTracks:audioSettings:")]
  854. AVAssetReaderAudioMixOutput FromTracks (AVAssetTrack [] audioTracks, [NullAllowed] NSDictionary audioSettings);
  855. [Wrap ("FromTracks (audioTracks, settings == null ? null : settings.Dictionary)")]
  856. AVAssetReaderAudioMixOutput Create (AVAssetTrack [] audioTracks, [NullAllowed] AudioSettings settings);
  857. [Export ("initWithAudioTracks:audioSettings:")]
  858. IntPtr Constructor (AVAssetTrack [] audioTracks, [NullAllowed] NSDictionary audioSettings);
  859. [Wrap ("this (audioTracks, settings == null ? null : settings.Dictionary)")]
  860. IntPtr Constructor (AVAssetTrack [] audioTracks, [NullAllowed] AudioSettings settings);
  861. [Advice ("Use Settings property")]
  862. [Export ("audioSettings")]
  863. NSDictionary AudioSettings { get; }
  864. [Wrap ("AudioSettings")]
  865. AudioSettings Settings { get; }
  866. }
  867. [Since (4,1)]
  868. [BaseType (typeof (AVAssetReaderOutput))]
  869. // crash application if 'init' is called
  870. [DisableDefaultCtor]
  871. interface AVAssetReaderVideoCompositionOutput {
  872. [Export ("videoTracks")]
  873. AVAssetTrack [] VideoTracks { get; }
  874. [Export ("videoComposition", ArgumentSemantic.Copy)]
  875. AVVideoComposition VideoComposition { get; set; }
  876. [Advice ("Use Create method")]
  877. [Static]
  878. [Export ("assetReaderVideoCompositionOutputWithVideoTracks:videoSettings:")]
  879. AVAssetReaderVideoCompositionOutput WeakFromTracks (AVAssetTrack [] videoTracks, [NullAllowed] NSDictionary videoSettings);
  880. [Wrap ("WeakFromTracks (videoTracks, settings == null ? null : settings.Dictionary)")]
  881. [Static]
  882. AVAssetReaderVideoCompositionOutput Create (AVAssetTrack [] videoTracks, [NullAllowed] CVPixelBufferAttributes settings);
  883. [Export ("initWithVideoTracks:videoSettings:")]
  884. IntPtr Constructor (AVAssetTrack [] videoTracks, [NullAllowed] NSDictionary videoSettings);
  885. [Wrap ("this (videoTracks, settings == null ? null : settings.Dictionary)")]
  886. IntPtr Constructor (AVAssetTrack [] videoTracks, [NullAllowed] CVPixelBufferAttributes settings);
  887. [Export ("videoSettings")]
  888. NSDictionary WeakVideoSettings { get; }
  889. [Wrap ("WeakVideoSettings")]
  890. CVPixelBufferAttributes UncompressedVideoSettings { get; }
  891. }
  892. #if !MONOMAC
  893. [Since (6,0)]
  894. [BaseType (typeof (NSObject))]
  895. interface AVAssetResourceLoader {
  896. [Export ("delegate")]
  897. AVAssetResourceLoaderDelegate Delegate { get; }
  898. [Export ("delegateQueue")]
  899. DispatchQueue DelegateQueue { get; }
  900. [Export ("setDelegate:queue:")]
  901. void SetDelegate (AVAssetResourceLoaderDelegate resourceLoaderDelegate, DispatchQueue delegateQueue);
  902. }
  903. [Since (6,0)]
  904. [BaseType (typeof (NSObject))]
  905. [Model]
  906. [Protocol]
  907. interface AVAssetResourceLoaderDelegate {
  908. [Abstract]
  909. [Export ("resourceLoader:shouldWaitForLoadingOfRequestedResource:")]
  910. bool ShouldWaitForLoadingOfRequestedResource (AVAssetResourceLoader resourceLoader, AVAssetResourceLoadingRequest loadingRequest);
  911. }
  912. [Since (6,0)]
  913. [BaseType (typeof (NSObject))]
  914. interface AVAssetResourceLoadingRequest {
  915. [Export ("request")]
  916. NSUrlRequest Request { get; }
  917. [Export ("finished")]
  918. bool Finished { get; }
  919. [Export ("finishLoadingWithResponse:data:redirect:")]
  920. void FinishLoading (NSUrlResponse usingResponse, [NullAllowed] NSData data, [NullAllowed] NSUrlRequest redirect);
  921. [Export ("finishLoadingWithError:")]
  922. void FinishLoadingWithError (NSError error);
  923. [Export ("streamingContentKeyRequestDataForApp:contentIdentifier:options:error:")]
  924. NSData GetStreamingContentKey (NSData appIdentifier, NSData contentIdentifier, [NullAllowed] NSDictionary options, out NSError error);
  925. }
  926. #endif
  927. [Since (4,1)]
  928. [BaseType (typeof (NSObject))]
  929. // Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** -[AVAssetWriter initWithURL:fileType:error:] invalid parameter not satisfying: outputURL != ((void*)0)
  930. [DisableDefaultCtor]
  931. interface AVAssetWriter {
  932. [Export ("outputURL", ArgumentSemantic.Copy)]
  933. NSUrl OutputURL { get; }
  934. [Export ("outputFileType")]
  935. string OutputFileType { get; }
  936. [Export ("status")]
  937. AVAssetWriterStatus Status { get; }
  938. [Export ("error")]
  939. NSError Error { get; }
  940. [Export ("movieFragmentInterval")]
  941. CMTime MovieFragmentInterval { get; set; }
  942. [Export ("shouldOptimizeForNetworkUse")]
  943. bool ShouldOptimizeForNetworkUse { get; set; }
  944. [Export ("inputs")]
  945. AVAssetWriterInput [] inputs { get; }
  946. [Export ("metadata")]
  947. AVMetadataItem [] Metadata { get; set; }
  948. [Static, Export ("assetWriterWithURL:fileType:error:")]
  949. AVAssetWriter FromUrl (NSUrl outputUrl, string outputFileType, out NSError error);
  950. [Export ("initWithURL:fileType:error:")]
  951. IntPtr Constructor (NSUrl outputUrl, string outputFileType, out NSError error);
  952. [Export ("canApplyOutputSettings:forMediaType:")]
  953. bool CanApplyOutputSettings (NSDictionary outputSettings, string mediaType);
  954. [Wrap ("CanApplyOutputSettings (outputSettings == null ? null : outputSettings.Dictionary, mediaType)")]
  955. bool CanApplyOutputSettings (AudioSettings outputSettings, string mediaType);
  956. [Wrap ("CanApplyOutputSettings (outputSettings == null ? null : outputSettings.Dictionary, mediaType)")]
  957. bool CanApplyOutputSettings (AVVideoSettingsCompressed outputSettings, string mediaType);
  958. [Export ("canAddInput:")]
  959. bool CanAddInput (AVAssetWriterInput input);
  960. [Export ("addInput:")]
  961. void AddInput (AVAssetWriterInput input);
  962. [Export ("startWriting")]
  963. bool StartWriting ();
  964. [Export ("startSessionAtSourceTime:")]
  965. void StartSessionAtSourceTime (CMTime startTime);
  966. [Export ("endSessionAtSourceTime:")]
  967. void EndSessionAtSourceTime (CMTime endTime);
  968. [Export ("cancelWriting")]
  969. void CancelWriting ();
  970. [Export ("finishWriting")]
  971. [Obsolete ("Deprecated in iOS 6.0. Use the asynchronous FinishWriting(NSAction completionHandler) instead")]
  972. bool FinishWriting ();
  973. #if !MONOMAC
  974. [Since (6,0)]
  975. [Export ("finishWritingWithCompletionHandler:")]
  976. [Async]
  977. void FinishWriting (NSAction completionHandler);
  978. #endif
  979. [Export ("movieTimeScale")]
  980. int MovieTimeScale { get; set; }
  981. }
  982. [Since (4,1)]
  983. [BaseType (typeof (NSObject))]
  984. // Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** -[AVAssetWriterInput initWithMediaType:outputSettings:] invalid parameter not satisfying: mediaType != ((void*)0)
  985. [DisableDefaultCtor]
  986. interface AVAssetWriterInput {
  987. #if !MONOMAC
  988. [Since (6,0)]
  989. [Protected]
  990. [Export ("initWithMediaType:outputSettings:sourceFormatHint:")]
  991. IntPtr Constructor (string mediaType, [NullAllowed] NSDictionary outputSettings, CMFormatDescription sourceFormatHint);
  992. [Since (6,0)]
  993. [Wrap ("this (mediaType, outputSettings == null ? null : outputSettings.Dictionary, sourceFormatHint)")]
  994. IntPtr Constructor (string mediaType, [NullAllowed] AudioSettings outputSettings, CMFormatDescription sourceFormatHint);
  995. [Since (6,0)]
  996. [Wrap ("this (mediaType, outputSettings == null ? null : outputSettings.Dictionary, sourceFormatHint)")]
  997. IntPtr Constructor (string mediaType, [NullAllowed] AVVideoSettingsCompressed outputSettings, CMFormatDescription sourceFormatHint);
  998. [Since (6,0)]
  999. [Static, Internal]
  1000. [Export ("assetWriterInputWithMediaType:outputSettings:sourceFormatHint:")]
  1001. AVAssetWriterInput Create (string mediaType, [NullAllowed] NSDictionary outputSettings, CMFormatDescription sourceFormatHint);
  1002. [Since (6,0)]
  1003. [Static]
  1004. [Wrap ("Create(mediaType, outputSettings == null ? null : outputSettings.Dictionary, sourceFormatHint)")]
  1005. AVAssetWriterInput Create (string mediaType, [NullAllowed] AudioSettings outputSettings, CMFormatDescription sourceFormatHint);
  1006. [Since (6,0)]
  1007. [Static]
  1008. [Wrap ("Create(mediaType, outputSettings == null ? null : outputSettings.Dictionary, sourceFormatHint)")]
  1009. AVAssetWriterInput Create (string mediaType, [NullAllowed] AVVideoSettingsCompressed outputSettings, CMFormatDescription sourceFormatHint);
  1010. #endif
  1011. [Export ("mediaType")]
  1012. string MediaType { get; }
  1013. [Export ("outputSettings")]
  1014. NSDictionary OutputSettings { get; }
  1015. [Export ("transform")]
  1016. CGAffineTransform Transform { get; set; }
  1017. [Export ("metadata")]
  1018. AVMetadataItem [] Metadata { get; set; }
  1019. [Export ("readyForMoreMediaData")]
  1020. bool ReadyForMoreMediaData { [Bind ("isReadyForMoreMediaData")] get; }
  1021. [Export ("expectsMediaDataInRealTime")]
  1022. bool ExpectsMediaDataInRealTime { get; set; }
  1023. [Advice ("Use constructor or Create method")]
  1024. [Static, Export ("assetWriterInputWithMediaType:outputSettings:")]
  1025. AVAssetWriterInput FromType (string mediaType, [NullAllowed] NSDictionary outputSettings);
  1026. [Static, Wrap ("FromType (mediaType, outputSettings == null ? null : outputSettings.Dictionary)")]
  1027. AVAssetWriterInput Create (string mediaType, [NullAllowed] AudioSettings outputSettings);
  1028. [Static, Wrap ("FromType (mediaType, outputSettings == null ? null : outputSettings.Dictionary)")]
  1029. AVAssetWriterInput Create (string mediaType, [NullAllowed] AVVideoSettingsCompressed outputSettings);
  1030. // Should be protected
  1031. [Export ("initWithMediaType:outputSettings:")]
  1032. IntPtr Constructor (string mediaType, [NullAllowed] NSDictionary outputSettings);
  1033. [Wrap ("this (mediaType, outputSettings == null ? null : outputSettings.Dictionary)")]
  1034. IntPtr Constructor (string mediaType, [NullAllowed] AudioSettings outputSettings);
  1035. [Wrap ("this (mediaType, outputSettings == null ? null : outputSettings.Dictionary)")]
  1036. IntPtr Constructor (string mediaType, [NullAllowed] AVVideoSettingsCompressed outputSettings);
  1037. [Export ("requestMediaDataWhenReadyOnQueue:usingBlock:")]
  1038. void RequestMediaData (DispatchQueue queue, NSAction action);
  1039. [Export ("appendSampleBuffer:")]
  1040. bool AppendSampleBuffer (CMSampleBuffer sampleBuffer);
  1041. [Export ("markAsFinished")]
  1042. void MarkAsFinished ();
  1043. [Export ("mediaTimeScale")]
  1044. int MediaTimeScale { get; set; }
  1045. #if !MONOMAC
  1046. [Since (6,0)]
  1047. [Export ("sourceFormatHint")]
  1048. CMFormatDescription SourceFormatHint { get; }
  1049. #endif
  1050. }
  1051. [Since (4,1)]
  1052. [BaseType (typeof (NSObject))]
  1053. // Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** -[AVAssetWriterInputPixelBufferAdaptor initWithAssetWriterInput:sourcePixelBufferAttributes:] invalid parameter not satisfying: input != ((void*)0)
  1054. [DisableDefaultCtor]
  1055. interface AVAssetWriterInputPixelBufferAdaptor {
  1056. [Export ("assetWriterInput")]
  1057. AVAssetWriterInput AssetWriterInput { get; }
  1058. [Export ("sourcePixelBufferAttributes")]
  1059. NSDictionary SourcePixelBufferAttributes { get; }
  1060. [Wrap ("SourcePixelBufferAttributes")]
  1061. CVPixelBufferAttributes Attributes { get; }
  1062. [Export ("pixelBufferPool")]
  1063. CVPixelBufferPool PixelBufferPool { get; }
  1064. [Advice ("Use Create method")]
  1065. [Static, Export ("assetWriterInputPixelBufferAdaptorWithAssetWriterInput:sourcePixelBufferAttributes:")]
  1066. AVAssetWriterInputPixelBufferAdaptor FromInput (AVAssetWriterInput input, [NullAllowed] NSDictionary sourcePixelBufferAttributes);
  1067. [Static, Wrap ("FromInput (input, attributes == null ? null : attributes.Dictionary)")]
  1068. AVAssetWriterInputPixelBufferAdaptor Create (AVAssetWriterInput input, [NullAllowed] CVPixelBufferAttributes attributes);
  1069. [Export ("initWithAssetWriterInput:sourcePixelBufferAttributes:")]
  1070. IntPtr Constructor (AVAssetWriterInput input, [NullAllowed] NSDictionary sourcePixelBufferAttributes);
  1071. [Wrap ("this (input, attributes == null ? null : attributes.Dictionary)")]
  1072. IntPtr Constructor (AVAssetWriterInput input, [NullAllowed] CVPixelBufferAttributes attributes);
  1073. [Export ("appendPixelBuffer:withPresentationTime:")]
  1074. bool AppendPixelBufferWithPresentationTime (CVPixelBuffer pixelBuffer, CMTime presentationTime);
  1075. }
  1076. [Since (4,0)]
  1077. [BaseType (typeof (AVAsset), Name="AVURLAsset")]
  1078. // 'init' returns NIL
  1079. [DisableDefaultCtor]
  1080. interface AVUrlAsset {
  1081. [Export ("URL", ArgumentSemantic.Copy)]
  1082. NSUrl Url { get; }
  1083. [Advice ("Use Create or constructor")]
  1084. [Static, Export ("URLAssetWithURL:options:")]
  1085. AVUrlAsset FromUrl (NSUrl URL, [NullAllowed] NSDictionary options);
  1086. [Static]
  1087. [Wrap ("FromUrl (url, options == null ? null : options.Dictionary)")]
  1088. AVUrlAsset Create (NSUrl url, [NullAllowed] AVUrlAssetOptions options);
  1089. [Export ("initWithURL:options:")]
  1090. IntPtr Constructor (NSUrl URL, [NullAllowed] NSDictionary options);
  1091. [Wrap ("this (url, options == null ? null : options.Dictionary)")]
  1092. IntPtr Constructor (NSUrl url, [NullAllowed] AVUrlAssetOptions options);
  1093. [Export ("compatibleTrackForCompositionTrack:")]
  1094. AVAssetTrack CompatibleTrack (AVCompositionTrack forCompositionTrack);
  1095. [Field ("AVURLAssetPreferPreciseDurationAndTimingKey")]
  1096. NSString PreferPreciseDurationAndTimingKey { get; }
  1097. [Field ("AVURLAssetReferenceRestrictionsKey")]
  1098. NSString ReferenceRestrictionsKey { get; }
  1099. [Since (5,0)]
  1100. [Static, Export ("audiovisualMIMETypes")]
  1101. string [] AudiovisualMimeTypes { get; }
  1102. [Since (5,0)]
  1103. [Static, Export ("audiovisualTypes")]
  1104. string [] AudiovisualTypes { get; }
  1105. [Since (5,0)]
  1106. [Static, Export ("isPlayableExtendedMIMEType:")]
  1107. bool IsPlayable (string extendedMimeType);
  1108. #if !MONOMAC
  1109. [Since (6,0)]
  1110. [Export ("resourceLoader")]
  1111. AVAssetResourceLoader ResourceLoader { get; }
  1112. #endif
  1113. }
  1114. [BaseType (typeof (NSObject))]
  1115. // 'init' returns NIL
  1116. [DisableDefaultCtor]
  1117. interface AVAssetTrack {
  1118. [Export ("trackID")]
  1119. int TrackID { get; }
  1120. [Export ("asset")]
  1121. AVAsset Asset { get; }
  1122. [Export ("mediaType")]
  1123. string MediaType { get; }
  1124. // Weak version
  1125. [Export ("formatDescriptions")]
  1126. NSObject [] FormatDescriptionsAsObjects { get; }
  1127. [Wrap ("Array.ConvertAll (FormatDescriptionsAsObjects, l => CMFormatDescription.Create (l.Handle, false))")]
  1128. CMFormatDescription[] FormatDescriptions { get; }
  1129. [Export ("enabled")]
  1130. bool Enabled { [Bind ("isEnabled")] get; }
  1131. [Export ("selfContained")]
  1132. bool SelfContained { [Bind ("isSelfContained")] get; }
  1133. [Export ("totalSampleDataLength")]
  1134. long TotalSampleDataLength { get; }
  1135. [Export ("hasMediaCharacteristic:")]
  1136. bool HasMediaCharacteristic (string mediaCharacteristic);
  1137. [Export ("timeRange")]
  1138. CMTimeRange TimeRange { get; }
  1139. [Export ("naturalTimeScale")]
  1140. int NaturalTimeScale { get; }
  1141. [Export ("estimatedDataRate")]
  1142. float EstimatedDataRate { get; }
  1143. [Export ("languageCode")]
  1144. string LanguageCode { get; }
  1145. [Export ("extendedLanguageTag")]
  1146. string ExtendedLanguageTag { get; }
  1147. [Export ("naturalSize")]
  1148. SizeF NaturalSize { get; }
  1149. [Export ("preferredVolume")]
  1150. float PreferredVolume { get; }
  1151. [Export ("preferredTransform")]
  1152. CGAffineTransform PreferredTransform { get; }
  1153. [Export ("nominalFrameRate")]
  1154. float NominalFrameRate { get; }
  1155. [Export ("segments", ArgumentSemantic.Copy)]
  1156. AVAssetTrackSegment [] Segments { get; }
  1157. [Export ("segmentForTrackTime:")]
  1158. AVAssetTrackSegment SegmentForTrackTime (CMTime trackTime);
  1159. [Export ("samplePresentationTimeForTrackTime:")]
  1160. CMTime SamplePresentationTimeForTrackTime (CMTime trackTime);
  1161. [Export ("availableMetadataFormats")]
  1162. string [] AvailableMetadataFormats { get; }
  1163. [Export ("commonMetadata")]
  1164. AVMetadataItem [] CommonMetadata { get; }
  1165. [Export ("metadataForFormat:")]
  1166. AVMetadataItem [] MetadataForFormat (string format);
  1167. [Export ("isPlayable")]
  1168. bool Playable { get; }
  1169. }
  1170. #if !MONOMAC
  1171. [BaseType (typeof (NSObject))]
  1172. interface AVMediaSelectionGroup {
  1173. [Export ("options")]
  1174. AVMediaSelectionOption [] Options { get; }
  1175. [Export ("allowsEmptySelection")]
  1176. bool AllowsEmptySelection { get; }
  1177. [Export ("mediaSelectionOptionWithPropertyList:")]
  1178. AVMediaSelectionOption GetMediaSelectionOptionForPropertyList (NSObject propertyList);
  1179. [Static]
  1180. [Export ("playableMediaSelectionOptionsFromArray:")]
  1181. AVMediaSelectionOption [] PlayableMediaSelectionOptions (AVMediaSelectionOption [] source);
  1182. [Static]
  1183. [Export ("mediaSelectionOptionsFromArray:withLocale:")]
  1184. AVMediaSelectionOption [] MediaSelectionOptions (AVMediaSelectionOption [] source, NSLocale locale);
  1185. [Static]
  1186. [Export ("mediaSelectionOptionsFromArray:withMediaCharacteristics:")]
  1187. AVMediaSelectionOption [] MediaSelectionOptions (AVMediaSelectionOption [] source, NSString [] avmediaCharacteristics);
  1188. [Static]
  1189. [Export ("mediaSelectionOptionsFromArray:withoutMediaCharacteristics:")]
  1190. AVMediaSelectionOption [] MediaSelectionOptionsExcludingCharacteristics (AVMediaSelectionOption [] source, NSString [] avmediaCharacteristics);
  1191. }
  1192. [BaseType (typeof (NSObject))]
  1193. interface AVMediaSelectionOption {
  1194. [Export ("mediaType")]
  1195. string MediaType { get; }
  1196. [Export ("mediaSubTypes")]
  1197. NSNumber [] MediaSubTypes { get; }
  1198. [Export ("playable")]
  1199. bool Playable { [Bind ("isPlayable")] get; }
  1200. [Export ("locale")]
  1201. NSLocale Locale { get; }
  1202. [Export ("commonMetadata")]
  1203. AVMetadataItem [] CommonMetadata { get; }
  1204. [Export ("availableMetadataFormats")]
  1205. string [] AvailableMetadataFormats { get; }
  1206. [Export ("hasMediaCharacteristic:")]
  1207. bool HasMediaCharacteristic (string mediaCharacteristic);
  1208. [Export ("metadataForFormat:")]
  1209. AVMetadataItem [] GetMetadataForFormat (string format);
  1210. [Export ("associatedMediaSelectionOptionInMediaSelectionGroup:")]
  1211. AVMediaSelectionOption AssociatedMediaSelectionOptionInMediaSelectionGroup (AVMediaSelectionGroup mediaSelectionGroup);
  1212. [Export ("propertyList")]
  1213. NSObject PropertyList { get; }
  1214. }
  1215. #endif
  1216. [Static]
  1217. interface AVMetadata {
  1218. [Field ("AVMetadataKeySpaceCommon")]
  1219. NSString KeySpaceCommon { get; }
  1220. [Field ("AVMetadataCommonKeyTitle")]
  1221. NSString CommonKeyTitle { get; }
  1222. [Field ("AVMetadataCommonKeyCreator")]
  1223. NSString CommonKeyCreator { get; }
  1224. [Field ("AVMetadataCommonKeySubject")]
  1225. NSString CommonKeySubject { get; }
  1226. [Field ("AVMetadataCommonKeyDescription")]
  1227. NSString CommonKeyDescription { get; }
  1228. [Field ("AVMetadataCommonKeyPublisher")]
  1229. NSString CommonKeyPublisher { get; }
  1230. [Field ("AVMetadataCommonKeyContributor")]
  1231. NSString CommonKeyContributor { get; }
  1232. [Field ("AVMetadataCommonKeyCreationDate")]
  1233. NSString CommonKeyCreationDate { get; }
  1234. [Field ("AVMetadataCommonKeyLastModifiedDate")]
  1235. NSString CommonKeyLastModifiedDate { get; }
  1236. [Field ("AVMetadataCommonKeyType")]
  1237. NSString CommonKeyType { get; }
  1238. [Field ("AVMetadataCommonKeyFormat")]
  1239. NSString CommonKeyFormat { get; }
  1240. [Field ("AVMetadataCommonKeyIdentifier")]
  1241. NSString CommonKeyIdentifier { get; }
  1242. [Field ("AVMetadataCommonKeySource")]
  1243. NSString CommonKeySource { get; }
  1244. [Field ("AVMetadataCommonKeyLanguage")]
  1245. NSString CommonKeyLanguage { get; }
  1246. [Field ("AVMetadataCommonKeyRelation")]
  1247. NSString CommonKeyRelation { get; }
  1248. [Field ("AVMetadataCommonKeyLocation")]
  1249. NSString CommonKeyLocation { get; }
  1250. [Field ("AVMetadataCommonKeyCopyrights")]
  1251. NSString CommonKeyCopyrights { get; }
  1252. [Field ("AVMetadataCommonKeyAlbumName")]
  1253. NSString CommonKeyAlbumName { get; }
  1254. [Field ("AVMetadataCommonKeyAuthor")]
  1255. NSString CommonKeyAuthor { get; }
  1256. [Field ("AVMetadataCommonKeyArtist")]
  1257. NSString CommonKeyArtist { get; }
  1258. [Field ("AVMetadataCommonKeyArtwork")]
  1259. NSString CommonKeyArtwork { get; }
  1260. [Field ("AVMetadataCommonKeyMake")]
  1261. NSString CommonKeyMake { get; }
  1262. [Field ("AVMetadataCommonKeyModel")]
  1263. NSString CommonKeyModel { get; }
  1264. [Field ("AVMetadataCommonKeySoftware")]
  1265. NSString CommonKeySoftware { get; }
  1266. [Field ("AVMetadataFormatQuickTimeUserData")]
  1267. NSString FormatQuickTimeUserData { get; }
  1268. [Field ("AVMetadataKeySpaceQuickTimeUserData")]
  1269. NSString KeySpaceQuickTimeUserData { get; }
  1270. [Field ("AVMetadataQuickTimeUserDataKeyAlbum")]
  1271. NSString QuickTimeUserDataKeyAlbum { get; }
  1272. [Field ("AVMetadataQuickTimeUserDataKeyArranger")]
  1273. NSString QuickTimeUserDataKeyArranger { get; }
  1274. [Field ("AVMetadataQuickTimeUserDataKeyArtist")]
  1275. NSString QuickTimeUserDataKeyArtist { get; }
  1276. [Field ("AVMetadataQuickTimeUserDataKeyAuthor")]
  1277. NSString QuickTimeUserDataKeyAuthor { get; }
  1278. [Field ("AVMetadataQuickTimeUserDataKeyChapter")]
  1279. NSString QuickTimeUserDataKeyChapter { get; }
  1280. [Field ("AVMetadataQuickTimeUserDataKeyComment")]
  1281. NSString QuickTimeUserDataKeyComment { get; }
  1282. [Field ("AVMetadataQuickTimeUserDataKeyComposer")]
  1283. NSString QuickTimeUserDataKeyComposer { get; }
  1284. [Field ("AVMetadataQuickTimeUserDataKeyCopyright")]
  1285. NSString QuickTimeUserDataKeyCopyright { get; }
  1286. [Field ("AVMetadataQuickTimeUserDataKeyCreationDate")]
  1287. NSString QuickTimeUserDataKeyCreationDate { get; }
  1288. [Field ("AVMetadataQuickTimeUserDataKeyDescription")]
  1289. NSString QuickTimeUserDataKeyDescription { get; }
  1290. [Field ("AVMetadataQuickTimeUserDataKeyDirector")]
  1291. NSString QuickTimeUserDataKeyDirector { get; }
  1292. [Field ("AVMetadataQuickTimeUserDataKeyDisclaimer")]
  1293. NSString QuickTimeUserDataKeyDisclaimer { get; }
  1294. [Field ("AVMetadataQuickTimeUserDataKeyEncodedBy")]
  1295. NSString QuickTimeUserDataKeyEncodedBy { get; }
  1296. [Field ("AVMetadataQuickTimeUserDataKeyFullName")]
  1297. NSString QuickTimeUserDataKeyFullName { get; }
  1298. [Field ("AVMetadataQuickTimeUserDataKeyGenre")]
  1299. NSString QuickTimeUserDataKeyGenre { get; }
  1300. [Field ("AVMetadataQuickTimeUserDataKeyHostComputer")]
  1301. NSString QuickTimeUserDataKeyHostComputer { get; }
  1302. [Field ("AVMetadataQuickTimeUserDataKeyInformation")]
  1303. NSString QuickTimeUserDataKeyInformation { get; }
  1304. [Field ("AVMetadataQuickTimeUserDataKeyKeywords")]
  1305. NSString QuickTimeUserDataKeyKeywords { get; }
  1306. [Field ("AVMetadataQuickTimeUserDataKeyMake")]
  1307. NSString QuickTimeUserDataKeyMake { get; }
  1308. [Field ("AVMetadataQuickTimeUserDataKeyModel")]
  1309. NSString QuickTimeUserDataKeyModel { get; }
  1310. [Field ("AVMetadataQuickTimeUserDataKeyOriginalArtist")]
  1311. NSString QuickTimeUserDataKeyOriginalArtist { get; }
  1312. [Field ("AVMetadataQuickTimeUserDataKeyOriginalFormat")]
  1313. NSString QuickTimeUserDataKeyOriginalFormat { get; }
  1314. [Field ("AVMetadataQuickTimeUserDataKeyOriginalSource")]
  1315. NSString QuickTimeUserDataKeyOriginalSource { get; }
  1316. [Field ("AVMetadataQuickTimeUserDataKeyPerformers")]
  1317. NSString QuickTimeUserDataKeyPerformers { get; }
  1318. [Field ("AVMetadataQuickTimeUserDataKeyProducer")]
  1319. NSString QuickTimeUserDataKeyProducer { get; }
  1320. [Field ("AVMetadataQuickTimeUserDataKeyPublisher")]
  1321. NSString QuickTimeUserDataKeyPublisher { get; }
  1322. [Field ("AVMetadataQuickTimeUserDataKeyProduct")]
  1323. NSString QuickTimeUserDataKeyProduct { get; }
  1324. [Field ("AVMetadataQuickTimeUserDataKeySoftware")]
  1325. NSString QuickTimeUserDataKeySoftware { get; }
  1326. [Field ("AVMetadataQuickTimeUserDataKeySpecialPlaybackRequirements")]
  1327. NSString QuickTimeUserDataKeySpecialPlaybackRequirements { get; }
  1328. [Field ("AVMetadataQuickTimeUserDataKeyTrack")]
  1329. NSString QuickTimeUserDataKeyTrack { get; }
  1330. [Field ("AVMetadataQuickTimeUserDataKeyWarning")]
  1331. NSString QuickTimeUserDataKeyWarning { get; }
  1332. [Field ("AVMetadataQuickTimeUserDataKeyWriter")]
  1333. NSString QuickTimeUserDataKeyWriter { get; }
  1334. [Field ("AVMetadataQuickTimeUserDataKeyURLLink")]
  1335. NSString QuickTimeUserDataKeyURLLink { get; }
  1336. [Field ("AVMetadataQuickTimeUserDataKeyLocationISO6709")]
  1337. NSString QuickTimeUserDataKeyLocationISO6709 { get; }
  1338. [Field ("AVMetadataQuickTimeUserDataKeyTrackName")]
  1339. NSString QuickTimeUserDataKeyTrackName { get; }
  1340. [Field ("AVMetadataQuickTimeUserDataKeyCredits")]
  1341. NSString QuickTimeUserDataKeyCredits { get; }
  1342. [Field ("AVMetadataQuickTimeUserDataKeyPhonogramRights")]
  1343. NSString QuickTimeUserDataKeyPhonogramRights { get; }
  1344. [MountainLion]
  1345. [Field ("AVMetadataQuickTimeUserDataKeyTaggedCharacteristic")]
  1346. NSString QuickTimeUserDataKeyTaggedCharacteristic { get; }
  1347. [Field ("AVMetadataISOUserDataKeyCopyright")]
  1348. NSString ISOUserDataKeyCopyright { get; }
  1349. [Field ("AVMetadata3GPUserDataKeyCopyright")]
  1350. NSString K3GPUserDataKeyCopyright { get; }
  1351. [Field ("AVMetadata3GPUserDataKeyAuthor")]
  1352. NSString K3GPUserDataKeyAuthor { get; }
  1353. [Field ("AVMetadata3GPUserDataKeyPerformer")]
  1354. NSString K3GPUserDataKeyPerformer { get; }
  1355. [Field ("AVMetadata3GPUserDataKeyGenre")]
  1356. NSString K3GPUserDataKeyGenre { get; }
  1357. [Field ("AVMetadata3GPUserDataKeyRecordingYear")]
  1358. NSString K3GPUserDataKeyRecordingYear { get; }
  1359. [Field ("AVMetadata3GPUserDataKeyLocation")]
  1360. NSString K3GPUserDataKeyLocation { get; }
  1361. [Field ("AVMetadata3GPUserDataKeyTitle")]
  1362. NSString K3GPUserDataKeyTitle { get; }
  1363. [Field ("AVMetadata3GPUserDataKeyDescription")]
  1364. NSString K3GPUserDataKeyDescription { get; }
  1365. [Field ("AVMetadataFormatQuickTimeMetadata")]
  1366. NSString FormatQuickTimeMetadata { get; }
  1367. [Field ("AVMetadataKeySpaceQuickTimeMetadata")]
  1368. NSString KeySpaceQuickTimeMetadata { get; }
  1369. [Field ("AVMetadataQuickTimeMetadataKeyAuthor")]
  1370. NSString QuickTimeMetadataKeyAuthor { get; }
  1371. [Field ("AVMetadataQuickTimeMetadataKeyComment")]
  1372. NSString QuickTimeMetadataKeyComment { get; }
  1373. [Field ("AVMetadataQuickTimeMetadataKeyCopyright")]
  1374. NSString QuickTimeMetadataKeyCopyright { get; }
  1375. [Field ("AVMetadataQuickTimeMetadataKeyCreationDate")]
  1376. NSString QuickTimeMetadataKeyCreationDate { get; }
  1377. [Field ("AVMetadataQuickTimeMetadataKeyDirector")]
  1378. NSString QuickTimeMetadataKeyDirector { get; }
  1379. [Field ("AVMetadataQuickTimeMetadataKeyDisplayName")]
  1380. NSString QuickTimeMetadataKeyDisplayName { get; }
  1381. [Field ("AVMetadataQuickTimeMetadataKeyInformation")]
  1382. NSString QuickTimeMetadataKeyInformation { get; }
  1383. [Field ("AVMetadataQuickTimeMetadataKeyKeywords")]
  1384. NSString QuickTimeMetadataKeyKeywords { get; }
  1385. [Field ("AVMetadataQuickTimeMetadataKeyProducer")]
  1386. NSString QuickTimeMetadataKeyProducer { get; }
  1387. [Field ("AVMetadataQuickTimeMetadataKeyPublisher")]
  1388. NSString QuickTimeMetadataKeyPublisher { get; }
  1389. [Field ("AVMetadataQuickTimeMetadataKeyAlbum")]
  1390. NSString QuickTimeMetadataKeyAlbum { get; }
  1391. [Field ("AVMetadataQuickTimeMetadataKeyArtist")]
  1392. NSString QuickTimeMetadataKeyArtist { get; }
  1393. [Field ("AVMetadataQuickTimeMetadataKeyArtwork")]
  1394. NSString QuickTimeMetadataKeyArtwork { get; }
  1395. [Field ("AVMetadataQuickTimeMetadataKeyDescription")]
  1396. NSString QuickTimeMetadataKeyDescription { get; }
  1397. [Field ("AVMetadataQuickTimeMetadataKeySoftware")]
  1398. NSString QuickTimeMetadataKeySoftware { get; }
  1399. [Field ("AVMetadataQuickTimeMetadataKeyYear")]
  1400. NSString QuickTimeMetadataKeyYear { get; }
  1401. [Field ("AVMetadataQuickTimeMetadataKeyGenre")]
  1402. NSString QuickTimeMetadataKeyGenre { get; }
  1403. [Field ("AVMetadataQuickTimeMetadataKeyiXML")]
  1404. NSString QuickTimeMetadataKeyiXML { get; }
  1405. [Field ("AVMetadataQuickTimeMetadataKeyLocationISO6709")]
  1406. NSString QuickTimeMetadataKeyLocationISO6709 { get; }
  1407. [Field ("AVMetadataQuickTimeMetadataKeyMake")]
  1408. NSString QuickTimeMetadataKeyMake { get; }
  1409. [Field ("AVMetadataQuickTimeMetadataKeyModel")]
  1410. NSString QuickTimeMetadataKeyModel { get; }
  1411. [Field ("AVMetadataQuickTimeMetadataKeyArranger")]
  1412. NSString QuickTimeMetadataKeyArranger { get; }
  1413. [Field ("AVMetadataQuickTimeMetadataKeyEncodedBy")]
  1414. NSString QuickTimeMetadataKeyEncodedBy { get; }
  1415. [Field ("AVMetadataQuickTimeMetadataKeyOriginalArtist")]
  1416. NSString QuickTimeMetadataKeyOriginalArtist { get; }
  1417. [Field ("AVMetadataQuickTimeMetadataKeyPerformer")]
  1418. NSString QuickTimeMetadataKeyPerformer { get; }
  1419. [Field ("AVMetadataQuickTimeMetadataKeyComposer")]
  1420. NSString QuickTimeMetadataKeyComposer { get; }
  1421. [Field ("AVMetadataQuickTimeMetadataKeyCredits")]
  1422. NSString QuickTimeMetadataKeyCredits { get; }
  1423. [Field ("AVMetadataQuickTimeMetadataKeyPhonogramRights")]
  1424. NSString QuickTimeMetadataKeyPhonogramRights { get; }
  1425. [Field ("AVMetadataQuickTimeMetadataKeyCameraIdentifier")]
  1426. NSString QuickTimeMetadataKeyCameraIdentifier { get; }
  1427. [Field ("AVMetadataQuickTimeMetadataKeyCameraFrameReadoutTime")]
  1428. NSString QuickTimeMetadataKeyCameraFrameReadoutTime { get; }
  1429. [Field ("AVMetadataQuickTimeMetadataKeyTitle")]
  1430. NSString QuickTimeMetadataKeyTitle { get; }
  1431. [Field ("AVMetadataQuickTimeMetadataKeyCollectionUser")]
  1432. NSString QuickTimeMetadataKeyCollectionUser { get; }
  1433. [Field ("AVMetadataQuickTimeMetadataKeyRatingUser")]
  1434. NSString QuickTimeMetadataKeyRatingUser { get; }
  1435. [Field ("AVMetadataQuickTimeMetadataKeyLocationName")]
  1436. NSString QuickTimeMetadataKeyLocationName { get; }
  1437. [Field ("AVMetadataQuickTimeMetadataKeyLocationBody")]
  1438. NSString QuickTimeMetadataKeyLocationBody { get; }
  1439. [Field ("AVMetadataQuickTimeMetadataKeyLocationNote")]
  1440. NSString QuickTimeMetadataKeyLocationNote { get; }
  1441. [Field ("AVMetadataQuickTimeMetadataKeyLocationRole")]
  1442. NSString QuickTimeMetadataKeyLocationRole { get; }
  1443. [Field ("AVMetadataQuickTimeMetadataKeyLocationDate")]
  1444. NSString QuickTimeMetadataKeyLocationDate { get; }
  1445. [Field ("AVMetadataQuickTimeMetadataKeyDirectionFacing")]
  1446. NSString QuickTimeMetadataKeyDirectionFacing { get; }
  1447. [Field ("AVMetadataQuickTimeMetadataKeyDirectionMotion")]
  1448. NSString QuickTimeMetadataKeyDirectionMotion { get; }
  1449. [Field ("AVMetadataFormatiTunesMetadata")]
  1450. NSString FormatiTunesMetadata { get; }
  1451. [Field ("AVMetadataKeySpaceiTunes")]
  1452. NSString KeySpaceiTunes { get; }
  1453. [Field ("AVMetadataiTunesMetadataKeyAlbum")]
  1454. NSString iTunesMetadataKeyAlbum { get; }
  1455. [Field ("AVMetadataiTunesMetadataKeyArtist")]
  1456. NSString iTunesMetadataKeyArtist { get; }
  1457. [Field ("AVMetadataiTunesMetadataKeyUserComment")]
  1458. NSString iTunesMetadataKeyUserComment { get; }
  1459. [Field ("AVMetadataiTunesMetadataKeyCoverArt")]
  1460. NSString iTunesMetadataKeyCoverArt { get; }
  1461. [Field ("AVMetadataiTunesMetadataKeyCopyright")]
  1462. NSString iTunesMetadataKeyCopyright { get; }
  1463. [Field ("AVMetadataiTunesMetadataKeyReleaseDate")]
  1464. NSString iTunesMetadataKeyReleaseDate { get; }
  1465. [Field ("AVMetadataiTunesMetadataKeyEncodedBy")]
  1466. NSString iTunesMetadataKeyEncodedBy { get; }
  1467. [Field ("AVMetadataiTunesMetadataKeyPredefinedGenre")]
  1468. NSString iTunesMetadataKeyPredefinedGenre { get; }
  1469. [Field ("AVMetadataiTunesMetadataKeyUserGenre")]
  1470. NSString iTunesMetadataKeyUserGenre { get; }
  1471. [Field ("AVMetadataiTunesMetadataKeySongName")]
  1472. NSString iTunesMetadataKeySongName { get; }
  1473. [Field ("AVMetadataiTunesMetadataKeyTrackSubTitle")]
  1474. NSString iTunesMetadataKeyTrackSubTitle { get; }
  1475. [Field ("AVMetadataiTunesMetadataKeyEncodingTool")]
  1476. NSString iTunesMetadataKeyEncodingTool { get; }
  1477. [Field ("AVMetadataiTunesMetadataKeyComposer")]
  1478. NSString iTunesMetadataKeyComposer { get; }
  1479. [Field ("AVMetadataiTunesMetadataKeyAlbumArtist")]
  1480. NSString iTunesMetadataKeyAlbumArtist { get; }
  1481. [Field ("AVMetadataiTunesMetadataKeyAccountKind")]
  1482. NSString iTunesMetadataKeyAccountKind { get; }
  1483. [Field ("AVMetadataiTunesMetadataKeyAppleID")]
  1484. NSString iTunesMetadataKeyAppleID { get; }
  1485. [Field ("AVMetadataiTunesMetadataKeyArtistID")]
  1486. NSString iTunesMetadataKeyArtistID { get; }
  1487. [Field ("AVMetadataiTunesMetadataKeySongID")]
  1488. NSString iTunesMetadataKeySongID { get; }
  1489. [Field ("AVMetadataiTunesMetadataKeyDiscCompilation")]
  1490. NSString iTunesMetadataKeyDiscCompilation { get; }
  1491. [Field ("AVMetadataiTunesMetadataKeyDiscNumber")]
  1492. NSString iTunesMetadataKeyDiscNumber { get; }
  1493. [Field ("AVMetadataiTunesMetadataKeyGenreID")]
  1494. NSString iTunesMetadataKeyGenreID { get; }
  1495. [Field ("AVMetadataiTunesMetadataKeyGrouping")]
  1496. NSString iTunesMetadataKeyGrouping { get; }
  1497. [Field ("AVMetadataiTunesMetadataKeyPlaylistID")]
  1498. NSString iTunesMetadataKeyPlaylistID { get; }
  1499. [Field ("AVMetadataiTunesMetadataKeyContentRating")]
  1500. NSString iTunesMetadataKeyContentRating { get; }
  1501. [Field ("AVMetadataiTunesMetadataKeyBeatsPerMin")]
  1502. NSString iTunesMetadataKeyBeatsPerMin { get; }
  1503. [Field ("AVMetadataiTunesMetadataKeyTrackNumber")]
  1504. NSString iTunesMetadataKeyTrackNumber { get; }
  1505. [Field ("AVMetadataiTunesMetadataKeyArtDirector")]
  1506. NSString iTunesMetadataKeyArtDirector { get; }
  1507. [Field ("AVMetadataiTunesMetadataKeyArranger")]
  1508. NSString iTunesMetadataKeyArranger { get; }
  1509. [Field ("AVMetadataiTunesMetadataKeyAuthor")]
  1510. NSString iTunesMetadataKeyAuthor { get; }
  1511. [Field ("AVMetadataiTunesMetadataKeyLyrics")]
  1512. NSString iTunesMetadataKeyLyrics { get; }
  1513. [Field ("AVMetadataiTunesMetadataKeyAcknowledgement")]
  1514. NSString iTunesMetadataKeyAcknowledgement { get; }
  1515. [Field ("AVMetadataiTunesMetadataKeyConductor")]
  1516. NSString iTunesMetadataKeyConductor { get; }
  1517. [Field ("AVMetadataiTunesMetadataKeyDescription")]
  1518. NSString iTunesMetadataKeyDescription { get; }
  1519. [Field ("AVMetadataiTunesMetadataKeyDirector")]
  1520. NSString iTunesMetadataKeyDirector { get; }
  1521. [Field ("AVMetadataiTunesMetadataKeyEQ")]
  1522. NSString iTunesMetadataKeyEQ { get; }
  1523. [Field ("AVMetadataiTunesMetadataKeyLinerNotes")]
  1524. NSString iTunesMetadataKeyLinerNotes { get; }
  1525. [Field ("AVMetadataiTunesMetadataKeyRecordCompany")]
  1526. NSString iTunesMetadataKeyRecordCompany { get; }
  1527. [Field ("AVMetadataiTunesMetadataKeyOriginalArtist")]
  1528. NSString iTunesMetadataKeyOriginalArtist { get; }
  1529. [Field ("AVMetadataiTunesMetadataKeyPhonogramRights")]
  1530. NSString iTunesMetadataKeyPhonogramRights { get; }
  1531. [Field ("AVMetadataiTunesMetadataKeyProducer")]
  1532. NSString iTunesMetadataKeyProducer { get; }
  1533. [Field ("AVMetadataiTunesMetadataKeyPerformer")]
  1534. NSString iTunesMetadataKeyPerformer { get; }
  1535. [Field ("AVMetadataiTunesMetadataKeyPublisher")]
  1536. NSString iTunesMetadataKeyPublisher { get; }
  1537. [Field ("AVMetadataiTunesMetadataKeySoundEngineer")]
  1538. NSString iTunesMetadataKeySoundEngineer { get; }
  1539. [Field ("AVMetadataiTunesMetadataKeySoloist")]
  1540. NSString iTunesMetadataKeySoloist { get; }
  1541. [Field ("AVMetadataiTunesMetadataKeyCredits")]
  1542. NSString iTunesMetadataKeyCredits { get; }
  1543. [Field ("AVMetadataiTunesMetadataKeyThanks")]
  1544. NSString iTunesMetadataKeyThanks { get; }
  1545. [Field ("AVMetadataiTunesMetadataKeyOnlineExtras")]
  1546. NSString iTunesMetadataKeyOnlineExtras { get; }
  1547. [Field ("AVMetadataiTunesMetadataKeyExecProducer")]
  1548. NSString iTunesMetadataKeyExecProducer { get; }
  1549. [Field ("AVMetadataFormatID3Metadata")]
  1550. NSString FormatID3Metadata { get; }
  1551. [Field ("AVMetadataKeySpaceID3")]
  1552. NSString KeySpaceID3 { get; }
  1553. [Field ("AVMetadataID3MetadataKeyAudioEncryption")]
  1554. NSString ID3MetadataKeyAudioEncryption { get; }
  1555. [Field ("AVMetadataID3MetadataKeyAttachedPicture")]
  1556. NSString ID3MetadataKeyAttachedPicture { get; }
  1557. [Field ("AVMetadataID3MetadataKeyAudioSeekPointIndex")]
  1558. NSString ID3MetadataKeyAudioSeekPointIndex { get; }
  1559. [Field ("AVMetadataID3MetadataKeyComments")]
  1560. NSString ID3MetadataKeyComments { get; }
  1561. [Field ("AVMetadataID3MetadataKeyCommerical")]
  1562. NSString ID3MetadataKeyCommerical { get; }
  1563. [Field ("AVMetadataID3MetadataKeyEncryption")]
  1564. NSString ID3MetadataKeyEncryption { get; }
  1565. [Field ("AVMetadataID3MetadataKeyEqualization")]
  1566. NSString ID3MetadataKeyEqualization { get; }
  1567. [Field ("AVMetadataID3MetadataKeyEqualization2")]
  1568. NSString ID3MetadataKeyEqualization2 { get; }
  1569. [Field ("AVMetadataID3MetadataKeyEventTimingCodes")]
  1570. NSString ID3MetadataKeyEventTimingCodes { get; }
  1571. [Field ("AVMetadataID3MetadataKeyGeneralEncapsulatedObject")]
  1572. NSString ID3MetadataKeyGeneralEncapsulatedObject { get; }
  1573. [Field ("AVMetadataID3MetadataKeyGroupIdentifier")]
  1574. NSString ID3MetadataKeyGroupIdentifier { get; }
  1575. [Field ("AVMetadataID3MetadataKeyInvolvedPeopleList_v23")]
  1576. NSString ID3MetadataKeyInvolvedPeopleList { get; }
  1577. [Field ("AVMetadataID3MetadataKeyLink")]
  1578. NSString ID3MetadataKeyLink { get; }
  1579. [Field ("AVMetadataID3MetadataKeyMusicCDIdentifier")]
  1580. NSString ID3MetadataKeyMusicCDIdentifier { get; }
  1581. [Field ("AVMetadataID3MetadataKeyMPEGLocationLookupTable")]
  1582. NSString ID3MetadataKeyMPEGLocationLookupTable { get; }
  1583. [Field ("AVMetadataID3MetadataKeyOwnership")]
  1584. NSString ID3MetadataKeyOwnership { get; }
  1585. [Field ("AVMetadataID3MetadataKeyPrivate")]
  1586. NSString ID3MetadataKeyPrivate { get; }
  1587. [Field ("AVMetadataID3MetadataKeyPlayCounter")]
  1588. NSString ID3MetadataKeyPlayCounter { get; }
  1589. [Field ("AVMetadataID3MetadataKeyPopularimeter")]
  1590. NSString ID3MetadataKeyPopularimeter { get; }
  1591. [Field ("AVMetadataID3MetadataKeyPositionSynchronization")]
  1592. NSString ID3MetadataKeyPositionSynchronization { get; }
  1593. [Field ("AVMetadataID3MetadataKeyRecommendedBufferSize")]
  1594. NSString ID3MetadataKeyRecommendedBufferSize { get; }
  1595. [Field ("AVMetadataID3MetadataKeyRelativeVolumeAdjustment")]
  1596. NSString ID3MetadataKeyRelativeVolumeAdjustment { get; }
  1597. [Field ("AVMetadataID3MetadataKeyRelativeVolumeAdjustment2")]
  1598. NSString ID3MetadataKeyRelativeVolumeAdjustment2 { get; }
  1599. [Field ("AVMetadataID3MetadataKeyReverb")]
  1600. NSString ID3MetadataKeyReverb { get; }
  1601. [Field ("AVMetadataID3MetadataKeySeek")]
  1602. NSString ID3MetadataKeySeek { get; }
  1603. [Field ("AVMetadataID3MetadataKeySignature")]
  1604. NSString ID3MetadataKeySignature { get; }
  1605. [Field ("AVMetadataID3MetadataKeySynchronizedLyric")]
  1606. NSString ID3MetadataKeySynchronizedLyric { get; }
  1607. [Field ("AVMetadataID3MetadataKeySynchronizedTempoCodes")]
  1608. NSString ID3MetadataKeySynchronizedTempoCodes { get; }
  1609. [Field ("AVMetadataID3MetadataKeyAlbumTitle")]
  1610. NSString ID3MetadataKeyAlbumTitle { get; }
  1611. [Field ("AVMetadataID3MetadataKeyBeatsPerMinute")]
  1612. NSString ID3MetadataKeyBeatsPerMinute { get; }
  1613. [Field ("AVMetadataID3MetadataKeyComposer")]
  1614. NSString ID3MetadataKeyComposer { get; }
  1615. [Field ("AVMetadataID3MetadataKeyContentType")]
  1616. NSString ID3MetadataKeyContentType { get; }
  1617. [Field ("AVMetadataID3MetadataKeyCopyright")]
  1618. NSString ID3MetadataKeyCopyright { get; }
  1619. [Field ("AVMetadataID3MetadataKeyDate")]
  1620. NSString ID3MetadataKeyDate { get; }
  1621. [Field ("AVMetadataID3MetadataKeyEncodingTime")]
  1622. NSString ID3MetadataKeyEncodingTime { get; }
  1623. [Field ("AVMetadataID3MetadataKeyPlaylistDelay")]
  1624. NSString ID3MetadataKeyPlaylistDelay { get; }
  1625. [Field ("AVMetadataID3MetadataKeyOriginalReleaseTime")]
  1626. NSString ID3MetadataKeyOriginalReleaseTime { get; }
  1627. [Field ("AVMetadataID3MetadataKeyRecordingTime")]
  1628. NSString ID3MetadataKeyRecordingTime { get; }
  1629. [Field ("AVMetadataID3MetadataKeyReleaseTime")]
  1630. NSString ID3MetadataKeyReleaseTime { get; }
  1631. [Field ("AVMetadataID3MetadataKeyTaggingTime")]
  1632. NSString ID3MetadataKeyTaggingTime { get; }
  1633. [Field ("AVMetadataID3MetadataKeyEncodedBy")]
  1634. NSString ID3MetadataKeyEncodedBy { get; }
  1635. [Field ("AVMetadataID3MetadataKeyLyricist")]
  1636. NSString ID3MetadataKeyLyricist { get; }
  1637. [Field ("AVMetadataID3MetadataKeyFileType")]
  1638. NSString ID3MetadataKeyFileType { get; }
  1639. [Field ("AVMetadataID3MetadataKeyTime")]
  1640. NSString ID3MetadataKeyTime { get; }
  1641. [Field ("AVMetadataID3MetadataKeyContentGroupDescription")]
  1642. NSString ID3MetadataKeyContentGroupDescription { get; }
  1643. [Field ("AVMetadataID3MetadataKeyTitleDescription")]
  1644. NSString ID3MetadataKeyTitleDescription { get; }
  1645. [Field ("AVMetadataID3MetadataKeySubTitle")]
  1646. NSString ID3MetadataKeySubTitle { get; }
  1647. [Field ("AVMetadataID3MetadataKeyInitialKey")]
  1648. NSString ID3MetadataKeyInitialKey { get; }
  1649. [Field ("AVMetadataID3MetadataKeyLanguage")]
  1650. NSString ID3MetadataKeyLanguage { get; }
  1651. [Field ("AVMetadataID3MetadataKeyLength")]
  1652. NSString ID3MetadataKeyLength { get; }
  1653. [Field ("AVMetadataID3MetadataKeyMusicianCreditsList")]
  1654. NSString ID3MetadataKeyMusicianCreditsList { get; }
  1655. [Field ("AVMetadataID3MetadataKeyMediaType")]
  1656. NSString ID3MetadataKeyMediaType { get; }
  1657. [Field ("AVMetadataID3MetadataKeyMood")]
  1658. NSString ID3MetadataKeyMood { get; }
  1659. [Field ("AVMetadataID3MetadataKeyOriginalAlbumTitle")]
  1660. NSString ID3MetadataKeyOriginalAlbumTitle { get; }
  1661. [Field ("AVMetadataID3MetadataKeyOriginalFilename")]
  1662. NSString ID3MetadataKeyOriginalFilename { get; }
  1663. [Field ("AVMetadataID3MetadataKeyOriginalLyricist")]
  1664. NSString ID3MetadataKeyOriginalLyricist { get; }
  1665. [Field ("AVMetadataID3MetadataKeyOriginalArtist")]
  1666. NSString ID3MetadataKeyOriginalArtist { get; }
  1667. [Field ("AVMetadataID3MetadataKeyOriginalReleaseYear")]
  1668. NSString ID3MetadataKeyOriginalReleaseYear { get; }
  1669. [Field ("AVMetadataID3MetadataKeyFileOwner")]
  1670. NSString ID3MetadataKeyFileOwner { get; }
  1671. [Field ("AVMetadataID3MetadataKeyLeadPerformer")]
  1672. NSString ID3MetadataKeyLeadPerformer { get; }
  1673. [Field ("AVMetadataID3MetadataKeyBand")]
  1674. NSString ID3MetadataKeyBand { get; }
  1675. [Field ("AVMetadataID3MetadataKeyConductor")]
  1676. NSString ID3MetadataKeyConductor { get; }
  1677. [Field ("AVMetadataID3MetadataKeyModifiedBy")]
  1678. NSString ID3MetadataKeyModifiedBy { get; }
  1679. [Field ("AVMetadataID3MetadataKeyPartOfASet")]
  1680. NSString ID3MetadataKeyPartOfASet { get; }
  1681. [Field ("AVMetadataID3MetadataKeyProducedNotice")]
  1682. NSString ID3MetadataKeyProducedNotice { get; }
  1683. [Field ("AVMetadataID3MetadataKeyPublisher")]
  1684. NSString ID3MetadataKeyPublisher { get; }
  1685. [Field ("AVMetadataID3MetadataKeyTrackNumber")]
  1686. NSString ID3MetadataKeyTrackNumber { get; }
  1687. [Field ("AVMetadataID3MetadataKeyRecordingDates")]
  1688. NSString ID3MetadataKeyRecordingDates { get; }
  1689. [Field ("AVMetadataID3MetadataKeyInternetRadioStationName")]
  1690. NSString ID3MetadataKeyInternetRadioStationName { get; }
  1691. [Field ("AVMetadataID3MetadataKeyInternetRadioStationOwner")]
  1692. NSString ID3MetadataKeyInternetRadioStationOwner { get; }
  1693. [Field ("AVMetadataID3MetadataKeySize")]
  1694. NSString ID3MetadataKeySize { get; }
  1695. [Field ("AVMetadataID3MetadataKeyAlbumSortOrder")]
  1696. NSString ID3MetadataKeyAlbumSortOrder { get; }
  1697. [Field ("AVMetadataID3MetadataKeyPerformerSortOrder")]
  1698. NSString ID3MetadataKeyPerformerSortOrder { get; }
  1699. [Field ("AVMetadataID3MetadataKeyTitleSortOrder")]
  1700. NSString ID3MetadataKeyTitleSortOrder { get; }
  1701. [Field ("AVMetadataID3MetadataKeyInternationalStandardRecordingCode")]
  1702. NSString ID3MetadataKeyInternationalStandardRecordingCode { get; }
  1703. [Field ("AVMetadataID3MetadataKeyEncodedWith")]
  1704. NSString ID3MetadataKeyEncodedWith { get; }
  1705. [Field ("AVMetadataID3MetadataKeySetSubtitle")]
  1706. NSString ID3MetadataKeySetSubtitle { get; }
  1707. [Field ("AVMetadataID3MetadataKeyYear")]
  1708. NSString ID3MetadataKeyYear { get; }
  1709. [Field ("AVMetadataID3MetadataKeyUserText")]
  1710. NSString ID3MetadataKeyUserText { get; }
  1711. [Field ("AVMetadataID3MetadataKeyUniqueFileIdentifier")]
  1712. NSString ID3MetadataKeyUniqueFileIdentifier { get; }
  1713. [Field ("AVMetadataID3MetadataKeyTermsOfUse")]
  1714. NSString ID3MetadataKeyTermsOfUse { get; }
  1715. [Field ("AVMetadataID3MetadataKeyUnsynchronizedLyric")]
  1716. NSString ID3MetadataKeyUnsynchronizedLyric { get; }
  1717. [Field ("AVMetadataID3MetadataKeyCommercialInformation")]
  1718. NSString ID3MetadataKeyCommercialInformation { get; }
  1719. [Field ("AVMetadataID3MetadataKeyCopyrightInformation")]
  1720. NSString ID3MetadataKeyCopyrightInformation { get; }
  1721. [Field ("AVMetadataID3MetadataKeyOfficialAudioFileWebpage")]
  1722. NSString ID3MetadataKeyOfficialAudioFileWebpage { get; }
  1723. [Field ("AVMetadataID3MetadataKeyOfficialArtistWebpage")]
  1724. NSString ID3MetadataKeyOfficialArtistWebpage { get; }
  1725. [Field ("AVMetadataID3MetadataKeyOfficialAudioSourceWebpage")]
  1726. NSString ID3MetadataKeyOfficialAudioSourceWebpage { get; }
  1727. [Field ("AVMetadataID3MetadataKeyOfficialInternetRadioStationHomepage")]
  1728. NSString ID3MetadataKeyOfficialInternetRadioStationHomepage { get; }
  1729. [Field ("AVMetadataID3MetadataKeyPayment")]
  1730. NSString ID3MetadataKeyPayment { get; }
  1731. [Field ("AVMetadataID3MetadataKeyOfficialPublisherWebpage")]
  1732. NSString ID3MetadataKeyOfficialPublisherWebpage { get; }
  1733. [Field ("AVMetadataID3MetadataKeyUserURL")]
  1734. NSString ID3MetadataKeyUserURL { get; }
  1735. }
  1736. [Since (4,0)]
  1737. [BaseType (typeof (NSObject))]
  1738. interface AVMetadataItem {
  1739. [Export ("commonKey", ArgumentSemantic.Copy)]
  1740. string CommonKey { get; }
  1741. [Export ("keySpace", ArgumentSemantic.Copy)]
  1742. string KeySpace { get; }
  1743. [Export ("locale", ArgumentSemantic.Copy)]
  1744. NSLocale Locale { get; }
  1745. [Export ("time")]
  1746. CMTime Time { get; }
  1747. [Export ("value", ArgumentSemantic.Copy)]
  1748. NSObject Value { get; }
  1749. [Export ("extraAttributes", ArgumentSemantic.Copy)]
  1750. NSDictionary ExtraAttributes { get; }
  1751. [Export ("key", ArgumentSemantic.Copy)]
  1752. NSObject Key { get; }
  1753. [Export ("stringValue")]
  1754. string StringValue { get; }
  1755. [Export ("numberValue")]
  1756. NSNumber NumberValue { get; }
  1757. [Export ("dateValue")]
  1758. NSDate DateValue { get; }
  1759. [Export ("dataValue")]
  1760. NSData DataValue { get; }
  1761. [Static]
  1762. [Export ("metadataItemsFromArray:withLocale:")]
  1763. AVMetadataItem [] FilterWithLocale (AVMetadataItem [] arrayToFilter, NSLocale locale);
  1764. [Static]
  1765. [Export ("metadataItemsFromArray:withKey:keySpace:")]
  1766. AVMetadataItem [] FilterWithKey (AVMetadataItem [] metadataItems, NSObject key, string keySpace);
  1767. [Since (4,2)]
  1768. [Export ("duration")]
  1769. CMTime Duration { get; }
  1770. [Export ("statusOfValueForKey:error:")]
  1771. AVKeyValueStatus StatusOfValueForKeyerror (string key, out NSError error);
  1772. [Export ("loadValuesAsynchronouslyForKeys:completionHandler:")]
  1773. [Async ("LoadValuesTaskAsync")]
  1774. void LoadValuesAsynchronously (string [] keys, NSAction handler);
  1775. [Since (6,0)]
  1776. [Static, Export ("metadataItemsFromArray:filteredAndSortedAccordingToPreferredLanguages:")]
  1777. AVMetadataItem [] FilterFromPreferredLanguages (AVMetadataItem [] metadataItems, string [] preferredLanguages);
  1778. }
  1779. #if !MONOMAC
  1780. [Since (6,0)]
  1781. [BaseType (typeof (NSObject))]
  1782. // Objective-C exception thrown. Name: NSGenericException Reason: Cannot instantiate AVMetadataObject because it is an abstract superclass.
  1783. [DisableDefaultCtor]
  1784. interface AVMetadataObject {
  1785. [Export ("duration")]
  1786. CMTime Duration { get; }
  1787. [Export ("bounds")]
  1788. RectangleF Bounds { get; }
  1789. [Export ("type")]
  1790. string Type { get; }
  1791. [Export ("time")]
  1792. CMTime Time{ get;}
  1793. [Field ("AVMetadataObjectTypeFace")]
  1794. NSString TypeFace { get; }
  1795. }
  1796. [Since (6,0)]
  1797. [BaseType (typeof (AVMetadataObject))]
  1798. interface AVMetadataFaceObject {
  1799. [Export ("hasRollAngle")]
  1800. bool HasRollAngle { get; }
  1801. [Export ("rollAngle")]
  1802. float RollAngle { get; }
  1803. [Export ("hasYawAngle")]
  1804. bool HasYawAngle { get; }
  1805. [Export ("yawAngle")]
  1806. float YawAngle { get; }
  1807. [Export ("faceID")]
  1808. int FaceID { get; }
  1809. }
  1810. #endif
  1811. [Since (4,0)]
  1812. [BaseType (typeof (AVMetadataItem))]
  1813. interface AVMutableMetadataItem {
  1814. [Export ("keySpace", ArgumentSemantic.Copy)]
  1815. string KeySpace { get; set; }
  1816. [Export ("metadataItem"), Static]
  1817. AVMutableMetadataItem Create ();
  1818. [Export ("locale", ArgumentSemantic.Copy)]
  1819. NSLocale Locale { get; set; }
  1820. [Export ("time")]
  1821. CMTime Time { get; set; }
  1822. [Export ("value", ArgumentSemantic.Copy)]
  1823. NSObject Value { get; set; }
  1824. [Export ("extraAttributes", ArgumentSemantic.Copy)]
  1825. NSDictionary ExtraAttributes { get; set; }
  1826. [Export ("key", ArgumentSemantic.Copy)]
  1827. NSObject Key { get; set; }
  1828. [Since (4,2)]
  1829. [Export ("duration")]
  1830. CMTime Duration { get; set; }
  1831. }
  1832. [Since (4,0)]
  1833. [BaseType (typeof (AVAssetTrack))]
  1834. // 'init' returns NIL
  1835. [DisableDefaultCtor]
  1836. interface AVCompositionTrack {
  1837. [Export ("segments", ArgumentSemantic.Copy)]
  1838. AVCompositionTrackSegment [] Segments { get; }
  1839. }
  1840. [Since (4,0)]
  1841. [BaseType (typeof (AVCompositionTrack))]
  1842. // 'init' returns NIL
  1843. [DisableDefaultCtor]
  1844. interface AVMutableCompositionTrack {
  1845. [Export ("segments", ArgumentSemantic.Copy)]
  1846. AVCompositionTrackSegment [] Segments { get; set; }
  1847. [Export ("insertTimeRange:ofTrack:atTime:error:")]
  1848. bool InsertTimeRange (CMTimeRange timeRange, AVAssetTrack ofTrack, CMTime atTime, out NSError error);
  1849. [Export ("insertEmptyTimeRange:")]
  1850. void InsertEmptyTimeRange (CMTimeRange timeRange);
  1851. [Export ("removeTimeRange:")]
  1852. void RemoveTimeRange (CMTimeRange timeRange);
  1853. [Export ("scaleTimeRange:toDuration:")]
  1854. void ScaleTimeRange (CMTimeRange timeRange, CMTime duration);
  1855. [Export ("validateTrackSegments:error:")]
  1856. bool ValidateTrackSegments (AVCompositionTrackSegment [] trackSegments, out NSError error);
  1857. [Export ("extendedLanguageTag")]
  1858. string ExtendedLanguageTag { get; set; }
  1859. [Export ("languageCode")]
  1860. string LanguageCode { get; set; }
  1861. [Export ("naturalTimeScale")]
  1862. int NaturalTimeScale { get; set; }
  1863. [Export ("preferredTransform")]
  1864. CGAffineTransform PreferredTransform { get; set; }
  1865. [Export ("preferredVolume")]
  1866. float PreferredVolume { get; set; }
  1867. // 5.0
  1868. [Since (5,0)]
  1869. [Export ("insertTimeRanges:ofTracks:atTime:error:")]
  1870. bool InsertTimeRanges (NSValue cmTimeRanges, AVAssetTrack [] tracks, CMTime startTime, out NSError error);
  1871. }
  1872. [Since (4,0)]
  1873. [BaseType (typeof (NSObject))]
  1874. interface AVAssetTrackSegment {
  1875. [Export ("empty")]
  1876. bool Empty { [Bind ("isEmpty")] get; }
  1877. [Export ("timeMapping")]
  1878. CMTimeMapping TimeMapping { get; }
  1879. }
  1880. [Since (4,0)]
  1881. [BaseType (typeof (AVAsset))]
  1882. interface AVComposition {
  1883. [Export ("tracks")]
  1884. AVCompositionTrack [] Tracks { get; }
  1885. [Obsolete ("Deprecated in iOS 5.0 and OSX 10.8")]
  1886. [Export ("naturalSize")]
  1887. SizeF NaturalSize { get; [NotImplemented] set; }
  1888. }
  1889. [Since (4,0)]
  1890. [BaseType (typeof (AVComposition))]
  1891. interface AVMutableComposition {
  1892. [Export ("composition"), Static]
  1893. AVMutableComposition Create ();
  1894. [Export ("insertTimeRange:ofAsset:atTime:error:")]
  1895. bool Insert (CMTimeRange insertTimeRange, AVAsset sourceAsset, CMTime atTime, out NSError error);
  1896. [Export ("insertEmptyTimeRange:")]
  1897. void InserEmptyTimeRange (CMTimeRange timeRange);
  1898. [Export ("removeTimeRange:")]
  1899. void RemoveTimeRange (CMTimeRange timeRange);
  1900. [Export ("scaleTimeRange:toDuration:")]
  1901. void ScaleTimeRange (CMTimeRange timeRange, CMTime duration);
  1902. [Export ("addMutableTrackWithMediaType:preferredTrackID:")]
  1903. AVMutableCompositionTrack AddMutableTrack (string mediaType, int preferredTrackId);
  1904. [Export ("removeTrack:")]
  1905. void RemoveTrack (AVCompositionTrack track);
  1906. [Export ("mutableTrackCompatibleWithTrack:")]
  1907. AVMutableCompositionTrack CreateMutableTrack (AVAssetTrack referenceTrack);
  1908. [Obsolete ("Deprecated in iOS 5.0 and OSX 10.8")]
  1909. [Export ("naturalSize")]
  1910. [Override]
  1911. SizeF NaturalSize { get; set; }
  1912. }
  1913. [Since (4,0)]
  1914. [BaseType (typeof (AVAssetTrackSegment))]
  1915. interface AVCompositionTrackSegment {
  1916. [Export ("sourceURL")]
  1917. NSUrl SourceUrl { get; }
  1918. [Export ("sourceTrackID")]
  1919. int SourceTrackID { get; }
  1920. [Static]
  1921. [Export ("compositionTrackSegmentWithURL:trackID:sourceTimeRange:targetTimeRange:")]
  1922. IntPtr FromUrl (NSUrl url, int trackID, CMTimeRange sourceTimeRange, CMTimeRange targetTimeRange);
  1923. [Static]
  1924. [Export ("compositionTrackSegmentWithTimeRange:")]
  1925. IntPtr FromTimeRange (CMTimeRange timeRange);
  1926. [Export ("initWithURL:trackID:sourceTimeRange:targetTimeRange:")]
  1927. IntPtr Constructor (NSUrl URL, int trackID, CMTimeRange sourceTimeRange, CMTimeRange targetTimeRange);
  1928. [Export ("initWithTimeRange:")]
  1929. IntPtr Constructor (CMTimeRange timeRange);
  1930. }
  1931. [Since (4,0)]
  1932. [BaseType (typeof (NSObject))]
  1933. // 'init' returns NIL
  1934. [DisableDefaultCtor]
  1935. interface AVAssetExportSession {
  1936. [Export ("presetName")]
  1937. string PresetName { get; }
  1938. [Export ("supportedFileTypes")]
  1939. NSObject [] SupportedFileTypes { get; }
  1940. [Export ("outputFileType", ArgumentSemantic.Copy)]
  1941. string OutputFileType { get; set; }
  1942. [Export ("outputURL", ArgumentSemantic.Copy)]
  1943. NSUrl OutputUrl { get; set; }
  1944. [Static, Export ("exportSessionWithAsset:presetName:")]
  1945. AVAssetExportSession FromAsset (AVAsset asset, string presetName);
  1946. [Export ("status")]
  1947. AVAssetExportSessionStatus Status { get; }
  1948. [Export ("progress")]
  1949. float Progress { get; }
  1950. [Export ("maxDuration")]
  1951. CMTime MaxDuration { get; }
  1952. [Export ("timeRange")]
  1953. CMTimeRange TimeRange { get; set; }
  1954. [Export ("metadata", ArgumentSemantic.Copy)]
  1955. AVMetadataItem [] Metadata { get; set; }
  1956. [Export ("fileLengthLimit")]
  1957. long FileLengthLimit { get; set; }
  1958. [Export ("audioMix", ArgumentSemantic.Copy)]
  1959. AVAudioMix AudioMix { get; set; }
  1960. [Export ("videoComposition", ArgumentSemantic.Copy)]
  1961. AVVideoComposition VideoComposition { get; set; }
  1962. [Export ("shouldOptimizeForNetworkUse")]
  1963. bool ShouldOptimizeForNetworkUse { get; set; }
  1964. [Static, Export ("allExportPresets")]
  1965. string [] AllExportPresets { get; }
  1966. [Static]
  1967. [Export ("exportPresetsCompatibleWithAsset:")]
  1968. string [] ExportPresetsCompatibleWithAsset (AVAsset asset);
  1969. [Export ("initWithAsset:presetName:")]
  1970. IntPtr Constructor (AVAsset asset, string presetName);
  1971. [Export ("exportAsynchronouslyWithCompletionHandler:")]
  1972. [Async ("ExportTaskAsync")]
  1973. void ExportAsynchronously (AVCompletionHandler handler);
  1974. [Export ("cancelExport")]
  1975. void CancelExport ();
  1976. [Export ("error")]
  1977. NSError Error { get; }
  1978. #if !MONOMAC
  1979. [Field ("AVAssetExportPresetLowQuality")]
  1980. NSString PresetLowQuality { get; }
  1981. [Field ("AVAssetExportPresetMediumQuality")]
  1982. NSString PresetMediumQuality { get; }
  1983. [Field ("AVAssetExportPresetHighestQuality")]
  1984. NSString PresetHighestQuality { get; }
  1985. #endif
  1986. [Field ("AVAssetExportPreset640x480")]
  1987. NSString Preset640x480 { get; }
  1988. [Field ("AVAssetExportPreset960x540")]
  1989. NSString Preset960x540 { get; }
  1990. [Field ("AVAssetExportPreset1280x720")]
  1991. NSString Preset1280x720 { get; }
  1992. [Field ("AVAssetExportPresetAppleM4A")]
  1993. NSString PresetAppleM4A { get; }
  1994. [Field ("AVAssetExportPresetPassthrough")]
  1995. NSString PresetPassthrough { get; }
  1996. // 5.0 APIs
  1997. [Export ("asset")]
  1998. AVAsset Asset { get; }
  1999. [Export ("estimatedOutputFileLength")]
  2000. long EstimatedOutputFileLength { get; }
  2001. #if !MONOMAC
  2002. [Since (6,0)]
  2003. [Static, Export ("determineCompatibilityOfExportPreset:withAsset:outputFileType:completionHandler:")]
  2004. [Async]
  2005. void DetermineCompatibilityOfExportPreset (string presetName, AVAsset asset, string outputFileType, Action<bool> isCompatibleResult);
  2006. [Since (6,0)]
  2007. [Export ("determineCompatibleFileTypesWithCompletionHandler:")]
  2008. [Async]
  2009. void DetermineCompatibleFileTypes (Action<string []> compatibleFileTypesHandler);
  2010. #endif
  2011. }
  2012. [BaseType (typeof (NSObject))]
  2013. [Since (4,0)]
  2014. interface AVAudioMix {
  2015. [Export ("inputParameters", ArgumentSemantic.Copy)]
  2016. AVAudioMixInputParameters [] InputParameters { get; }
  2017. }
  2018. [Since (4,0)]
  2019. [BaseType (typeof (AVAudioMix))]
  2020. interface AVMutableAudioMix {
  2021. [Export ("inputParameters", ArgumentSemantic.Copy)]
  2022. AVAudioMixInputParameters [] InputParameters { get; set; }
  2023. [Static, Export ("audioMix")]
  2024. AVMutableAudioMix Create ();
  2025. }
  2026. [Since (4,0)]
  2027. [BaseType (typeof (NSObject))]
  2028. interface AVAudioMixInputParameters {
  2029. [Export ("trackID")]
  2030. int TrackID { get; }
  2031. [Export ("getVolumeRampForTime:startVolume:endVolume:timeRange:")]
  2032. bool GetVolumeRamp (CMTime forTime, ref float startVolume, ref float endVolume, ref CMTimeRange timeRange);
  2033. #if !MONOMAC
  2034. [Since (6,0)]
  2035. [Export ("audioTapProcessor", ArgumentSemantic.Retain)]
  2036. MTAudioProcessingTap AudioTapProcessor { get; }
  2037. #endif
  2038. }
  2039. [BaseType (typeof (AVAudioMixInputParameters))]
  2040. interface AVMutableAudioMixInputParameters {
  2041. [Export ("trackID")]
  2042. int TrackID { get; set; }
  2043. [Static]
  2044. [Export ("audioMixInputParametersWithTrack:")]
  2045. AVMutableAudioMixInputParameters FromTrack (AVAssetTrack track);
  2046. [Static]
  2047. [Export ("audioMixInputParameters")]
  2048. AVMutableAudioMixInputParameters Create ();
  2049. [Export ("setVolumeRampFromStartVolume:toEndVolume:timeRange:")]
  2050. void SetVolumeRamp (float startVolume, float endVolume, CMTimeRange timeRange);
  2051. [Export ("setVolume:atTime:")]
  2052. void SetVolume (float volume, CMTime atTime);
  2053. #if !MONOMAC
  2054. [Since (6,0)]
  2055. [Export ("audioTapProcessor", ArgumentSemantic.Retain)]
  2056. MTAudioProcessingTap AudioTapProcessor { get; set; }
  2057. #endif
  2058. }
  2059. [Since (4,0)]
  2060. [BaseType (typeof (NSObject))]
  2061. interface AVVideoComposition {
  2062. [Export ("frameDuration")]
  2063. CMTime FrameDuration { get; }
  2064. [Export ("renderSize")]
  2065. SizeF RenderSize { get; }
  2066. [Export ("instructions", ArgumentSemantic.Copy)]
  2067. AVVideoCompositionInstruction [] Instructions { get; }
  2068. [Export ("animationTool", ArgumentSemantic.Retain)]
  2069. AVVideoCompositionCoreAnimationTool AnimationTool { get; }
  2070. #if !MONOMAC
  2071. [Export ("renderScale")]
  2072. float RenderScale { get; set; }
  2073. #endif
  2074. [Since (5,0)]
  2075. [Export ("isValidForAsset:timeRange:validationDelegate:")]
  2076. bool IsValidForAsset (AVAsset asset, CMTimeRange timeRange, AVVideoCompositionValidationHandling validationDelegate);
  2077. #if !MONOMAC
  2078. [Since (6,0)]
  2079. [Static, Export ("videoCompositionWithPropertiesOfAsset:")]
  2080. AVVideoComposition FromAssetProperties (AVAsset asset);
  2081. #endif
  2082. }
  2083. [Since (5,0)]
  2084. [BaseType (typeof (NSObject))]
  2085. [Model]
  2086. [Protocol]
  2087. [DisableDefaultCtor]
  2088. interface AVVideoCompositionValidationHandling {
  2089. [Export ("videoComposition:shouldContinueValidatingAfterFindingInvalidValueForKey:")]
  2090. bool ShouldContinueValidatingAfterFindingInvalidValueForKey (AVVideoComposition videoComposition, string key);
  2091. [Export ("videoComposition:shouldContinueValidatingAfterFindingEmptyTimeRange:")]
  2092. bool ShouldContinueValidatingAfterFindingEmptyTimeRange (AVVideoComposition videoComposition, CMTimeRange timeRange);
  2093. [Export ("videoComposition:shouldContinueValidatingAfterFindingInvalidTimeRangeInInstruction:")]
  2094. bool ShouldContinueValidatingAfterFindingInvalidTimeRangeInInstruction (AVVideoComposition videoComposition, AVVideoCompositionInstruction videoCompositionInstruction);
  2095. [Export ("videoComposition:shouldContinueValidatingAfterFindingInvalidTrackIDInInstruction:layerInstruction:asset:")]
  2096. bool ShouldContinueValidatingAfterFindingInvalidTrackIDInInstruction (AVVideoComposition videoComposition, AVVideoCompositionInstruction videoCompositionInstruction, AVVideoCompositionLayerInstruction layerInstruction, AVAsset asset);
  2097. }
  2098. [Since (4,0)]
  2099. [BaseType (typeof (AVVideoComposition))]
  2100. interface AVMutableVideoComposition {
  2101. [Export ("frameDuration")]
  2102. CMTime FrameDuration { get; set; }
  2103. [Export ("renderSize")]
  2104. SizeF RenderSize { get; set; }
  2105. [Export ("instructions", ArgumentSemantic.Copy)]
  2106. AVVideoCompositionInstruction [] Instructions { get; set; }
  2107. [Export ("animationTool")]
  2108. AVVideoCompositionCoreAnimationTool AnimationTool { get; set; }
  2109. #if !MONOMAC
  2110. [Export ("renderScale")]
  2111. float RenderScale { get; set; }
  2112. #endif
  2113. [Static, Export ("videoComposition")]
  2114. AVMutableVideoComposition Create ();
  2115. }
  2116. [Since (4,0)]
  2117. [BaseType (typeof (NSObject))]
  2118. interface AVVideoCompositionInstruction {
  2119. [Export ("timeRange")]
  2120. CMTimeRange TimeRange { get; }
  2121. [Export ("backgroundColor")]
  2122. CGColor BackgroundColor { get; set; }
  2123. [Export ("layerInstructions", ArgumentSemantic.Copy)]
  2124. AVVideoCompositionLayerInstruction [] LayerInstructions { get; }
  2125. [Export ("enablePostProcessing")]
  2126. bool EnablePostProcessing { get; }
  2127. }
  2128. [Since (4,0)]
  2129. [BaseType (typeof (AVVideoCompositionInstruction))]
  2130. interface AVMutableVideoCompositionInstruction {
  2131. [Export ("timeRange")]
  2132. CMTimeRange TimeRange { get; set; }
  2133. [Export ("backgroundColor")]
  2134. CGColor BackgroundColor { get; set; }
  2135. [Export ("enablePostProcessing")]
  2136. bool EnablePostProcessing { get; set; }
  2137. [Export ("layerInstructions", ArgumentSemantic.Copy)]
  2138. AVVideoCompositionLayerInstruction [] LayerInstructions { get; set; }
  2139. [Static, Export ("videoCompositionInstruction")]
  2140. AVVideoCompositionInstruction Create ();
  2141. }
  2142. [Since (4,0)]
  2143. [BaseType (typeof (NSObject))]
  2144. interface AVVideoCompositionLayerInstruction {
  2145. [Export ("trackID")]
  2146. int TrackID { get; }
  2147. [Export ("getTransformRampForTime:startTransform:endTransform:timeRange:")]
  2148. bool GetTransformRamp (CMTime time, ref CGAffineTransform startTransform, ref CGAffineTransform endTransform, ref CMTimeRange timeRange);
  2149. [Export ("getOpacityRampForTime:startOpacity:endOpacity:timeRange:")]
  2150. bool GetOpacityRamp (CMTime time, ref float startOpacity, ref float endOpacity, ref CMTimeRange timeRange);
  2151. }
  2152. [Since (4,0)]
  2153. [BaseType (typeof (AVVideoCompositionLayerInstruction))]
  2154. interface AVMutableVideoCompositionLayerInstruction {
  2155. [Export ("trackID")]
  2156. int TrackID { get; set; }
  2157. [Static]
  2158. [Export ("videoCompositionLayerInstructionWithAssetTrack:")]
  2159. AVMutableVideoCompositionLayerInstruction FromAssetTrack (AVAssetTrack track);
  2160. [Static]
  2161. [Export ("videoCompositionLayerInstruction")]
  2162. AVMutableVideoCompositionLayerInstruction Create ();
  2163. [Export ("setTransformRampFromStartTransform:toEndTransform:timeRange:")]
  2164. void SetTransformRamp (CGAffineTransform startTransform, CGAffineTransform endTransform, CMTimeRange timeRange);
  2165. [Export ("setTransform:atTime:")]
  2166. void SetTransform (CGAffineTransform transform, CMTime atTime);
  2167. [Export ("setOpacityRampFromStartOpacity:toEndOpacity:timeRange:")]
  2168. void SetOpacityRamp (float startOpacity, float endOpacity, CMTimeRange timeRange);
  2169. [Export ("setOpacity:atTime:")]
  2170. void SetOpacity (float opacity, CMTime time);
  2171. }
  2172. [Since (4,0)]
  2173. [BaseType (typeof (NSObject))]
  2174. interface AVVideoCompositionCoreAnimationTool {
  2175. [Static]
  2176. [Export ("videoCompositionCoreAnimationToolWithAdditionalLayer:asTrackID:")]
  2177. AVVideoCompositionCoreAnimationTool FromLayer (CALayer layer, int trackID);
  2178. [Static]
  2179. [Export ("videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:inLayer:")]
  2180. AVVideoCompositionCoreAnimationTool FromLayer (CALayer videoLayer, CALayer animationLayer);
  2181. }
  2182. interface AVCaptureSessionRuntimeErrorEventArgs {
  2183. [Export ("AVCaptureSessionErrorKey")]
  2184. NSError Error { get; }
  2185. }
  2186. [Since (4,0)]
  2187. [BaseType (typeof (NSObject))]
  2188. interface AVCaptureSession {
  2189. [Export ("sessionPreset")]
  2190. NSString SessionPreset { get; set; }
  2191. [Export ("inputs")]
  2192. AVCaptureInput [] Inputs { get; }
  2193. [Export ("outputs")]
  2194. AVCaptureOutput [] Outputs { get; }
  2195. [Export ("running")]
  2196. bool Running { [Bind ("isRunning")] get; }
  2197. #if !MONOMAC
  2198. [Export ("interrupted")]
  2199. bool Interrupted { [Bind ("isInterrupted")] get; }
  2200. #endif
  2201. [Export ("canSetSessionPreset:")]
  2202. bool CanSetSessionPreset (NSString preset);
  2203. [Export ("canAddInput:")]
  2204. bool CanAddInput (AVCaptureInput input);
  2205. [Export ("addInput:")]
  2206. void AddInput (AVCaptureInput input);
  2207. [Export ("removeInput:")]
  2208. void RemoveInput (AVCaptureInput input);
  2209. [Export ("canAddOutput:")]
  2210. bool CanAddOutput (AVCaptureOutput output);
  2211. [Export ("addOutput:")]
  2212. void AddOutput (AVCaptureOutput output);
  2213. [Export ("removeOutput:")]
  2214. void RemoveOutput (AVCaptureOutput output);
  2215. [Export ("beginConfiguration")]
  2216. void BeginConfiguration ();
  2217. [Export ("commitConfiguration")]
  2218. void CommitConfiguration ();
  2219. [Export ("startRunning")]
  2220. void StartRunning ();
  2221. [Export ("stopRunning")]
  2222. void StopRunning ();
  2223. [Field ("AVCaptureSessionPresetPhoto")]
  2224. NSString PresetPhoto { get; }
  2225. [Field ("AVCaptureSessionPresetHigh")]
  2226. NSString PresetHigh { get; }
  2227. [Field ("AVCaptureSessionPresetMedium")]
  2228. NSString PresetMedium { get; }
  2229. [Field ("AVCaptureSessionPresetLow")]
  2230. NSString PresetLow { get; }
  2231. [Field ("AVCaptureSessionPreset640x480")]
  2232. NSString Preset640x480 { get; }
  2233. [Field ("AVCaptureSessionPreset1280x720")]
  2234. NSString Preset1280x720 { get; }
  2235. [Field ("AVCaptureSessionPresetiFrame960x540")]
  2236. NSString PresetiFrame960x540 { get; }
  2237. [Field ("AVCaptureSessionPresetiFrame1280x720")]
  2238. NSString PresetiFrame1280x720 { get; }
  2239. [Field ("AVCaptureSessionPreset352x288")]
  2240. NSString Preset352x288 { get; }
  2241. [Field ("AVCaptureSessionRuntimeErrorNotification")]
  2242. [Notification (typeof (AVCaptureSessionRuntimeErrorEventArgs))]
  2243. NSString RuntimeErrorNotification { get; }
  2244. [Field ("AVCaptureSessionErrorKey")]
  2245. NSString ErrorKey { get; }
  2246. [Field ("AVCaptureSessionDidStartRunningNotification")]
  2247. [Notification]
  2248. NSString DidStartRunningNotification { get; }
  2249. [Field ("AVCaptureSessionDidStopRunningNotification")]
  2250. [Notification]
  2251. NSString DidStopRunningNotification { get; }
  2252. #if !MONOMAC
  2253. [Field ("AVCaptureSessionWasInterruptedNotification")]
  2254. [Notification]
  2255. NSString WasInterruptedNotification { get; }
  2256. [Field ("AVCaptureSessionInterruptionEndedNotification")]
  2257. [Notification]
  2258. NSString InterruptionEndedNotification { get; }
  2259. #endif
  2260. }
  2261. [BaseType (typeof (NSObject))]
  2262. [Since (4,0)]
  2263. interface AVCaptureConnection {
  2264. [Export ("output")]
  2265. AVCaptureOutput Output { get; }
  2266. [Export ("enabled")]
  2267. bool Enabled { [Bind ("isEnabled")] get; set; }
  2268. [Export ("audioChannels")]
  2269. AVCaptureAudioChannel AudioChannels { get; }
  2270. [Export ("videoMirrored")]
  2271. bool VideoMirrored { [Bind ("isVideoMirrored")] get; set; }
  2272. [Export ("videoOrientation")]
  2273. AVCaptureVideoOrientation VideoOrientation { get; set; }
  2274. [Export ("inputPorts")]
  2275. AVCaptureInputPort [] InputPorts { get; }
  2276. [Export ("isActive")]
  2277. bool Active { get; }
  2278. [Export ("isVideoMirroringSupported")]
  2279. bool SupportsVideoMirroring { get; }
  2280. [Export ("isVideoOrientationSupported")]
  2281. bool SupportsVideoOrientation { get; }
  2282. [Export ("supportsVideoMinFrameDuration"), Internal]
  2283. bool _SupportsVideoMinFrameDuration { [Bind ("isVideoMinFrameDurationSupported")] get; }
  2284. [Export ("videoMinFrameDuration")]
  2285. CMTime VideoMinFrameDuration { get; set; }
  2286. #if !MONOMAC
  2287. [Export ("supportsVideoMaxFrameDuration"), Internal]
  2288. bool _SupportsVideoMaxFrameDuration { [Bind ("isVideoMaxFrameDurationSupported")] get; }
  2289. [Export ("videoMaxFrameDuration")]
  2290. CMTime VideoMaxFrameDuration { get; set; }
  2291. [Export ("videoMaxScaleAndCropFactor")]
  2292. float VideoMaxScaleAndCropFactor { get; }
  2293. [Export ("videoScaleAndCropFactor")]
  2294. float VideoScaleAndCropFactor { get; set; }
  2295. #endif
  2296. [Since (6,0)]
  2297. [Export ("videoPreviewLayer")]
  2298. AVCaptureVideoPreviewLayer VideoPreviewLayer { get; }
  2299. [Since (6,0)]
  2300. [Export ("automaticallyAdjustsVideoMirroring")]
  2301. bool AutomaticallyAdjustsVideoMirroring { get; set; }
  2302. #if !MONOMAC
  2303. [Since (6,0)]
  2304. [Export ("supportsVideoStabilization")]
  2305. bool SupportsVideoStabilization { [Bind ("isVideoStabilizationSupported")] get; }
  2306. [Since (6,0)]
  2307. [Export ("videoStabilizationEnabled")]
  2308. bool VideoStabilizationEnabled { [Bind ("isVideoStabilizationEnabled")] get; }
  2309. [Since (6,0)]
  2310. [Export ("enablesVideoStabilizationWhenAvailable")]
  2311. bool EnablesVideoStabilizationWhenAvailable { get; set; }
  2312. #endif
  2313. }
  2314. [BaseType (typeof (NSObject))]
  2315. [Since (4,0)]
  2316. interface AVCaptureAudioChannel {
  2317. [Export ("peakHoldLevel")]
  2318. float PeakHoldLevel { get; }
  2319. [Export ("averagePowerLevel")]
  2320. float AveragePowerLevel { get; }
  2321. }
  2322. [BaseType (typeof (NSObject))]
  2323. [Since (4,0)]
  2324. // Objective-C exception thrown. Name: NSGenericException Reason: Cannot instantiate AVCaptureInput because it is an abstract superclass.
  2325. [DisableDefaultCtor]
  2326. interface AVCaptureInput {
  2327. [Export ("ports")]
  2328. AVCaptureInputPort [] Ports { get; }
  2329. [Field ("AVCaptureInputPortFormatDescriptionDidChangeNotification")]
  2330. [Notification]
  2331. NSString PortFormatDescriptionDidChangeNotification { get; }
  2332. }
  2333. [Since (4,0)]
  2334. [BaseType (typeof (NSObject))]
  2335. interface AVCaptureInputPort {
  2336. [Export ("mediaType")]
  2337. string MediaType { get; }
  2338. [Export ("formatDescription")]
  2339. CMFormatDescription FormatDescription { get; }
  2340. [Export ("enabled")]
  2341. bool Enabled { [Bind ("isEnabled")] get; set; }
  2342. [Export ("input")]
  2343. AVCaptureInput Input { get; }
  2344. }
  2345. [Since (4,0)]
  2346. [BaseType (typeof (AVCaptureInput))]
  2347. // crash application if 'init' is called
  2348. [DisableDefaultCtor]
  2349. interface AVCaptureDeviceInput {
  2350. [Export ("device")]
  2351. AVCaptureDevice Device { get; }
  2352. [Static, Export ("deviceInputWithDevice:error:")]
  2353. AVCaptureDeviceInput FromDevice (AVCaptureDevice device, out NSError error);
  2354. [Export ("initWithDevice:error:")]
  2355. IntPtr Constructor (AVCaptureDevice device, out NSError error);
  2356. }
  2357. [Since (4,0)]
  2358. [BaseType (typeof (NSObject))]
  2359. // Objective-C exception thrown. Name: NSGenericException Reason: Cannot instantiate AVCaptureOutput because it is an abstract superclass.
  2360. [DisableDefaultCtor]
  2361. interface AVCaptureOutput {
  2362. [Export ("connections")]
  2363. AVCaptureConnection [] Connections { get; }
  2364. [Export ("connectionWithMediaType:")]
  2365. AVCaptureConnection ConnectionFromMediaType (NSString avMediaType);
  2366. #if !MONOMAC
  2367. [Export ("transformedMetadataObjectForMetadataObject:connection:")]
  2368. AVMetadataObject GetTransformedMetadataObject (AVMetadataObject metadataObject, AVCaptureConnection connection);
  2369. #endif
  2370. }
  2371. [Since (4,0)]
  2372. [BaseType (typeof (CALayer))]
  2373. interface AVCaptureVideoPreviewLayer {
  2374. [Export ("session")]
  2375. AVCaptureSession Session { get; set; }
  2376. #if MONOMAC
  2377. [Lion]
  2378. [Export ("setSessionWithNoConnection:")]
  2379. void SetSessionWithNoConnection (AVCaptureSession session);
  2380. #else
  2381. [Export ("orientation")]
  2382. [Obsolete ("Deprecated in iOS 6.0")]
  2383. AVCaptureVideoOrientation Orientation { get; set; }
  2384. [Export ("automaticallyAdjustsMirroring")]
  2385. [Obsolete ("Deprecated in iOS 6.0")]
  2386. bool AutomaticallyAdjustsMirroring { get; set; }
  2387. [Export ("mirrored")]
  2388. [Obsolete ("Deprecated in iOS 6.0")]
  2389. bool Mirrored { [Bind ("isMirrored")] get; set; }
  2390. [Export ("isMirroringSupported")]
  2391. [Obsolete ("Deprecated in iOS 6.0")]
  2392. bool MirroringSupported { get; }
  2393. [Export ("isOrientationSupported")]
  2394. [Obsolete ("Deprecated in iOS 6.0")]
  2395. bool OrientationSupported { get; }
  2396. [Advice ("Use LayerVideoGravity")]
  2397. [Export ("videoGravity")][Sealed]
  2398. string VideoGravity { get; set; }
  2399. [Export ("videoGravity")][Protected]
  2400. NSString WeakVideoGravity { get; set; }
  2401. #endif
  2402. [Static, Export ("layerWithSession:")]
  2403. AVCaptureVideoPreviewLayer FromSession (AVCaptureSession session);
  2404. [Export ("initWithSession:")]
  2405. IntPtr Constructor (AVCaptureSession session);
  2406. [Since (6,0)]
  2407. [Export ("connection")]
  2408. AVCaptureConnection Connection { get; }
  2409. #if !MONOMAC
  2410. [Since (6,0)]
  2411. [Export ("captureDevicePointOfInterestForPoint:")]
  2412. PointF CaptureDevicePointOfInterestForPoint (PointF pointInLayer);
  2413. [Since (6,0)]
  2414. [Export ("pointForCaptureDevicePointOfInterest:")]
  2415. PointF PointForCaptureDevicePointOfInterest (PointF captureDevicePointOfInterest);
  2416. [Since (6,0)]
  2417. [Export ("transformedMetadataObjectForMetadataObject:")]
  2418. AVMetadataObject GetTransformedMetadataObject (AVMetadataObject metadataObject);
  2419. #endif
  2420. }
  2421. [Since (4,0)]
  2422. [BaseType (typeof (AVCaptureOutput))]
  2423. interface AVCaptureVideoDataOutput {
  2424. [Export ("sampleBufferDelegate")]
  2425. AVCaptureVideoDataOutputSampleBufferDelegate SampleBufferDelegate { get; }
  2426. [Export ("sampleBufferCallbackQueue")]
  2427. DispatchQueue SampleBufferCallbackQueue { get; }
  2428. [Export ("videoSettings", ArgumentSemantic.Copy), NullAllowed]
  2429. NSDictionary WeakVideoSettings { get; set; }
  2430. [Wrap ("WeakVideoSettings")]
  2431. AVVideoSettingsUncompressed UncompressedVideoSetting { get; set; }
  2432. [Wrap ("WeakVideoSettings")]
  2433. AVVideoSettingsCompressed CompressedVideoSetting { get; set; }
  2434. [Export ("minFrameDuration")]
  2435. [Obsolete ("Deprecated in iOS 5.0. Use AVCaptureConnection's MinVideoFrameDuration")]
  2436. CMTime MinFrameDuration { get; set; }
  2437. [Export ("alwaysDiscardsLateVideoFrames")]
  2438. bool AlwaysDiscardsLateVideoFrames { get; set; }
  2439. [Export ("setSampleBufferDelegate:queue:")]
  2440. [PostGet ("SampleBufferDelegate")]
  2441. [PostGet ("SampleBufferCallbackQueue")]
  2442. void SetSampleBufferDelegate ([NullAllowed] AVCaptureVideoDataOutputSampleBufferDelegate sampleBufferDelegate, [NullAllowed] DispatchQueue sampleBufferCallbackQueue);
  2443. // 5.0 APIs
  2444. [Export ("availableVideoCVPixelFormatTypes")]
  2445. NSNumber [] AvailableVideoCVPixelFormatTypes { get; }
  2446. // This is an NSString, because these are are codec types that can be used as keys in
  2447. // the WeakVideoSettings properties.
  2448. [Export ("availableVideoCodecTypes")]
  2449. NSString [] AvailableVideoCodecTypes { get; }
  2450. }
  2451. [BaseType (typeof (NSObject))]
  2452. [Since (4,0)]
  2453. [Model]
  2454. [Protocol]
  2455. interface AVCaptureVideoDataOutputSampleBufferDelegate {
  2456. [Export ("captureOutput:didOutputSampleBuffer:fromConnection:")]
  2457. // CMSampleBufferRef
  2458. void DidOutputSampleBuffer (AVCaptureOutput captureOutput, CMSampleBuffer sampleBuffer, AVCaptureConnection connection);
  2459. }
  2460. [Since (4,0)]
  2461. [BaseType (typeof (AVCaptureOutput))]
  2462. interface AVCaptureAudioDataOutput {
  2463. [Export ("sampleBufferDelegate")]
  2464. AVCaptureAudioDataOutputSampleBufferDelegate SampleBufferDelegate { get; }
  2465. [Export ("sampleBufferCallbackQueue")]
  2466. DispatchQueue SampleBufferCallbackQueue { get; }
  2467. [Export ("setSampleBufferDelegate:queue:")]
  2468. void SetSampleBufferDelegatequeue (AVCaptureAudioDataOutputSampleBufferDelegate sampleBufferDelegate, DispatchQueue sampleBufferCallbackDispatchQueue);
  2469. }
  2470. [Since (4,0)]
  2471. [BaseType (typeof (NSObject))]
  2472. [Model]
  2473. [Protocol]
  2474. interface AVCaptureAudioDataOutputSampleBufferDelegate {
  2475. [Export ("captureOutput:didOutputSampleBuffer:fromConnection:")]
  2476. void DidOutputSampleBuffer (AVCaptureOutput captureOutput, CMSampleBuffer sampleBuffer, AVCaptureConnection connection);
  2477. [Export ("captureOutput:didDropSampleBuffer:fromConnection:")]
  2478. void DidDropSampleBuffer (AVCaptureOutput captureOutput, CMSampleBuffer sampleBuffer, AVCaptureConnection connection);
  2479. }
  2480. [BaseType (typeof (AVCaptureOutput))]
  2481. [Since (4,0)]
  2482. // Objective-C exception thrown. Name: NSGenericException Reason: Cannot instantiate AVCaptureFileOutput because it is an abstract superclass.
  2483. [DisableDefaultCtor]
  2484. interface AVCaptureFileOutput {
  2485. [Export ("recordedDuration")]
  2486. CMTime RecordedDuration { get; }
  2487. [Export ("recordedFileSize")]
  2488. long RecordedFileSize { get; }
  2489. [Export ("isRecording")]
  2490. bool Recording { get; }
  2491. [Export ("maxRecordedDuration")]
  2492. CMTime MaxRecordedDuration { get; set; }
  2493. [Export ("maxRecordedFileSize")]
  2494. long MaxRecordedFileSize { get; set; }
  2495. [Export ("minFreeDiskSpaceLimit")]
  2496. long MinFreeDiskSpaceLimit { get; set; }
  2497. [Export ("outputFileURL")]
  2498. NSUrl OutputFileURL { get; }
  2499. [Export ("startRecordingToOutputFileURL:recordingDelegate:")]
  2500. void StartRecordingToOutputFile (NSUrl outputFileUrl, AVCaptureFileOutputRecordingDelegate recordingDelegate);
  2501. [Export ("stopRecording")]
  2502. void StopRecording ();
  2503. }
  2504. [BaseType (typeof (NSObject))]
  2505. [Model]
  2506. [Since (4,0)]
  2507. [Protocol]
  2508. interface AVCaptureFileOutputRecordingDelegate {
  2509. [Export ("captureOutput:didStartRecordingToOutputFileAtURL:fromConnections:")]
  2510. void DidStartRecording (AVCaptureFileOutput captureOutput, NSUrl outputFileUrl, NSObject [] connections);
  2511. [Export ("captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:"), CheckDisposed]
  2512. void FinishedRecording (AVCaptureFileOutput captureOutput, NSUrl outputFileUrl, NSObject [] connections, NSError error);
  2513. }
  2514. #if !MONOMAC
  2515. [Since (6,0)]
  2516. [BaseType (typeof (AVCaptureOutput))]
  2517. interface AVCaptureMetadataOutput {
  2518. [Export ("metadataObjectsDelegate")]
  2519. AVCaptureMetadataOutputObjectsDelegate Delegate { get; }
  2520. [Export ("metadataObjectsCallbackQueue")]
  2521. DispatchQueue CallbackQueue { get; }
  2522. [Export ("availableMetadataObjectTypes")]
  2523. NSString [] AvailableMetadataObjectTypes { get; }
  2524. [Export ("metadataObjectTypes")]
  2525. NSArray MetadataObjectTypes { get; set; }
  2526. [Export ("setMetadataObjectsDelegate:queue:")]
  2527. void SetDelegate (AVCaptureMetadataOutputObjectsDelegate objectsDelegate, DispatchQueue objectsCallbackQueue);
  2528. }
  2529. [Since (6,0)]
  2530. [BaseType (typeof (NSObject))]
  2531. [Model]
  2532. [Protocol]
  2533. interface AVCaptureMetadataOutputObjectsDelegate {
  2534. [Export ("captureOutput:didOutputMetadataObjects:fromConnection:")]
  2535. void DidOutputMetadataObjects (AVCaptureMetadataOutput captureOutput, AVMetadataObject [] metadataObjects, AVCaptureConnection connection);
  2536. }
  2537. #endif
  2538. [Since (4,0)]
  2539. [BaseType (typeof (AVCaptureFileOutput))]
  2540. interface AVCaptureMovieFileOutput {
  2541. [Export ("metadata")]
  2542. AVMetadataItem [] Metadata { get; set; }
  2543. [Export ("movieFragmentInterval")]
  2544. CMTime MovieFragmentInterval { get; set; }
  2545. }
  2546. [Since (4,0)]
  2547. [BaseType (typeof (AVCaptureOutput))]
  2548. interface AVCaptureStillImageOutput {
  2549. [Export ("availableImageDataCVPixelFormatTypes")]
  2550. NSNumber [] AvailableImageDataCVPixelFormatTypes { get; }
  2551. [Export ("availableImageDataCodecTypes")]
  2552. string [] AvailableImageDataCodecTypes { get; }
  2553. [Export ("outputSettings", ArgumentSemantic.Copy)]
  2554. NSDictionary OutputSettings { get; set; }
  2555. [Wrap ("OutputSettings")]
  2556. AVVideoSettingsUncompressed UncompressedVideoSetting { get; set; }
  2557. [Wrap ("OutputSettings")]
  2558. AVVideoSettingsCompressed CompressedVideoSetting { get; set; }
  2559. [Export ("captureStillImageAsynchronouslyFromConnection:completionHandler:")]
  2560. [Async ("CaptureStillImageTaskAsync")]
  2561. void CaptureStillImageAsynchronously (AVCaptureConnection connection, AVCaptureCompletionHandler completionHandler);
  2562. [Static, Export ("jpegStillImageNSDataRepresentation:")]
  2563. NSData JpegStillToNSData (MonoMac.CoreMedia.CMSampleBuffer buffer);
  2564. // 5.0
  2565. [Export ("capturingStillImage")]
  2566. bool CapturingStillImage { [Bind ("isCapturingStillImage")] get; }
  2567. }
  2568. [BaseType (typeof (NSObject))]
  2569. [Since (4,0)]
  2570. // Objective-C exception thrown. Name: NSInvalidArgumentException Reason: Cannot instantiate a AVCaptureDevice directly.
  2571. [DisableDefaultCtor]
  2572. interface AVCaptureDevice {
  2573. [Export ("uniqueID")]
  2574. string UniqueID { get; }
  2575. [Export ("modelID")]
  2576. string ModelID { get; }
  2577. [Export ("localizedName")]
  2578. string LocalizedName { get; }
  2579. [Export ("connected")]
  2580. bool Connected { [Bind ("isConnected")] get; }
  2581. [Static, Export ("devices")]
  2582. AVCaptureDevice [] Devices { get; }
  2583. [Static]
  2584. [Export ("devicesWithMediaType:")]
  2585. AVCaptureDevice [] DevicesWithMediaType (string mediaType);
  2586. [Static]
  2587. [Export ("defaultDeviceWithMediaType:")]
  2588. AVCaptureDevice DefaultDeviceWithMediaType (string mediaType);
  2589. [Static]
  2590. [Export ("deviceWithUniqueID:")]
  2591. AVCaptureDevice DeviceWithUniqueID (string deviceUniqueID);
  2592. [Export ("hasMediaType:")]
  2593. bool HasMediaType (string mediaType);
  2594. [Export ("lockForConfiguration:")]
  2595. bool LockForConfiguration (out NSError error);
  2596. [Export ("unlockForConfiguration")]
  2597. void UnlockForConfiguration ();
  2598. [Export ("supportsAVCaptureSessionPreset:")]
  2599. bool SupportsAVCaptureSessionPreset (string preset);
  2600. [Export ("flashMode")]
  2601. AVCaptureFlashMode FlashMode { get; set; }
  2602. [Export ("isFlashModeSupported:")]
  2603. bool IsFlashModeSupported (AVCaptureFlashMode flashMode);
  2604. [Export ("torchMode")]
  2605. AVCaptureTorchMode TorchMode { get; set; }
  2606. [Export ("isTorchModeSupported:")]
  2607. bool IsTorchModeSupported (AVCaptureTorchMode torchMode);
  2608. [Export ("isFocusModeSupported:")]
  2609. bool IsFocusModeSupported (AVCaptureFocusMode focusMode);
  2610. [Export ("focusMode")]
  2611. AVCaptureFocusMode FocusMode { get; set; }
  2612. [Export ("focusPointOfInterestSupported")]
  2613. bool FocusPointOfInterestSupported { [Bind ("isFocusPointOfInterestSupported")] get; }
  2614. [Export ("focusPointOfInterest")]
  2615. PointF FocusPointOfInterest { get; set; }
  2616. [Export ("adjustingFocus")]
  2617. bool AdjustingFocus { [Bind ("isAdjustingFocus")] get; }
  2618. [Export ("exposureMode")]
  2619. AVCaptureExposureMode ExposureMode { get; set; }
  2620. [Export ("isExposureModeSupported:")]
  2621. bool IsExposureModeSupported (AVCaptureExposureMode exposureMode);
  2622. [Export ("exposurePointOfInterestSupported")]
  2623. bool ExposurePointOfInterestSupported { [Bind ("isExposurePointOfInterestSupported")] get; }
  2624. [Export ("exposurePointOfInterest")]
  2625. PointF ExposurePointOfInterest { get; set; }
  2626. [Export ("adjustingExposure")]
  2627. bool AdjustingExposure { [Bind ("isAdjustingExposure")] get; }
  2628. [Export ("isWhiteBalanceModeSupported:")]
  2629. bool IsWhiteBalanceModeSupported (AVCaptureWhiteBalanceMode whiteBalanceMode);
  2630. [Export ("whiteBalanceMode")]
  2631. AVCaptureWhiteBalanceMode WhiteBalanceMode { get; set; }
  2632. [Export ("adjustingWhiteBalance")]
  2633. bool AdjustingWhiteBalance { [Bind ("isAdjustingWhiteBalance")] get; }
  2634. [Export ("position")]
  2635. AVCaptureDevicePosition Position { get; }
  2636. [Field ("AVCaptureDeviceWasConnectedNotification")]
  2637. [Notification]
  2638. NSString WasConnectedNotification { get; }
  2639. [Field ("AVCaptureDeviceWasDisconnectedNotification")]
  2640. [Notification]
  2641. NSString WasDisconnectedNotification { get; }
  2642. #if !MONOMAC
  2643. [Field ("AVCaptureDeviceSubjectAreaDidChangeNotification")]
  2644. [Notification]
  2645. NSString SubjectAreaDidChangeNotification { get; }
  2646. // 5.0
  2647. [Since(5,0)]
  2648. [Export ("isFlashAvailable")]
  2649. bool FlashAvailable { get; }
  2650. [Since(5,0)]
  2651. [Export ("isFlashActive")]
  2652. bool FlashActive { get; }
  2653. [Since(5,0)]
  2654. [Export ("isTorchAvailable")]
  2655. bool TorchAvailable { get; }
  2656. [Since(5,0)]
  2657. [Export ("torchLevel")]
  2658. float TorchLevel { get; }
  2659. // 6.0
  2660. [Since (6,0)]
  2661. [Export ("torchActive")]
  2662. bool TorchActive { [Bind ("isTorchActive")] get; }
  2663. [Since (6,0)]
  2664. [Export ("setTorchModeOnWithLevel:error:")]
  2665. bool SetTorchModeLevel (float torchLevel, out NSError outError);
  2666. [Since (6,0)]
  2667. [Field ("AVCaptureMaxAvailableTorchLevel")]
  2668. float MaxAvailableTorchLevel { get; }
  2669. [Since (6,0)]
  2670. [Export ("lowLightBoostSupported")]
  2671. bool LowLightBoostSupported { [Bind ("isLowLightBoostSupported")] get; }
  2672. [Since (6,0)]
  2673. [Export ("lowLightBoostEnabled")]
  2674. bool LowLightBoostEnabled { [Bind ("isLowLightBoostEnabled")] get; }
  2675. [Since (6,0)]
  2676. [Export ("automaticallyEnablesLowLightBoostWhenAvailable")]
  2677. bool AutomaticallyEnablesLowLightBoostWhenAvailable { get; set; }
  2678. #endif
  2679. }
  2680. public delegate void AVCompletionHandler ();
  2681. public delegate void AVCaptureCompletionHandler (MonoMac.CoreMedia.CMSampleBuffer imageDataSampleBuffer, NSError error);
  2682. [Since (4,0)]
  2683. [BaseType (typeof (NSObject))]
  2684. interface AVPlayer {
  2685. [Export ("currentItem")]
  2686. AVPlayerItem CurrentItem { get; }
  2687. [Export ("rate")]
  2688. float Rate { get; set; }
  2689. // note: not a property in ObjC
  2690. [Export ("currentTime")]
  2691. CMTime CurrentTime { get; }
  2692. [Export ("actionAtItemEnd")]
  2693. AVPlayerActionAtItemEnd ActionAtItemEnd { get; set; }
  2694. [Export ("closedCaptionDisplayEnabled")]
  2695. bool ClosedCaptionDisplayEnabled { [Bind ("isClosedCaptionDisplayEnabled")] get; set; }
  2696. [Static, Export ("playerWithURL:")]
  2697. AVPlayer FromUrl (NSUrl URL);
  2698. [Static]
  2699. [Export ("playerWithPlayerItem:")]
  2700. AVPlayer FromPlayerItem (AVPlayerItem item);
  2701. [Export ("initWithURL:")]
  2702. IntPtr Constructor (NSUrl URL);
  2703. [Export ("initWithPlayerItem:")]
  2704. IntPtr Constructor (AVPlayerItem item);
  2705. [Export ("play")]
  2706. void Play ();
  2707. [Export ("pause")]
  2708. void Pause ();
  2709. [Export ("replaceCurrentItemWithPlayerItem:")]
  2710. void ReplaceCurrentItemWithPlayerItem (AVPlayerItem item);
  2711. [Export ("addPeriodicTimeObserverForInterval:queue:usingBlock:")]
  2712. NSObject AddPeriodicTimeObserver (CMTime interval, DispatchQueue queue, AVTimeHandler handler);
  2713. [Export ("addBoundaryTimeObserverForTimes:queue:usingBlock:")]
  2714. NSObject AddBoundaryTimeObserver (NSValue []times, DispatchQueue queue, NSAction handler);
  2715. [Export ("removeTimeObserver:")]
  2716. void RemoveTimeObserver (NSObject observer);
  2717. [Export ("seekToTime:")]
  2718. void Seek (CMTime toTime);
  2719. [Export ("seekToTime:toleranceBefore:toleranceAfter:")]
  2720. void Seek (CMTime toTime, CMTime toleranceBefore, CMTime toleranceAfter);
  2721. [Export ("error")]
  2722. NSError Error { get; }
  2723. [Export ("status")]
  2724. AVPlayerStatus Status { get; }
  2725. #if !MONOMAC
  2726. // 5.0
  2727. [Since (5,0)]
  2728. [Obsolete ("Deprecated in iOS 6.0. Use AllowsExternalPlayback instead")]
  2729. [Export ("allowsAirPlayVideo")]
  2730. bool AllowsAirPlayVideo { get; set; }
  2731. [Since (5,0)]
  2732. [Obsolete ("Deprecated in iOS 6.0. Use ExternalPlaybackActive instead")]
  2733. [Export ("airPlayVideoActive")]
  2734. bool AirPlayVideoActive { [Bind ("isAirPlayVideoActive")] get; }
  2735. [Since (5,0)]
  2736. [Obsolete ("Deprecated in iOS 6.0. Use UsesExternalPlaybackWhileExternalScreenIsActive instead")]
  2737. [Export ("usesAirPlayVideoWhileAirPlayScreenIsActive")]
  2738. bool UsesAirPlayVideoWhileAirPlayScreenIsActive { get; set; }
  2739. #endif
  2740. [Since (5,0)]
  2741. [Export ("seekToTime:completionHandler:")]
  2742. [Async]
  2743. void Seek (CMTime time, AVCompletion completion);
  2744. [Since (5,0)]
  2745. [Export ("seekToTime:toleranceBefore:toleranceAfter:completionHandler:")]
  2746. [Async]
  2747. void Seek (CMTime time, CMTime toleranceBefore, CMTime toleranceAfter, AVCompletion completion);
  2748. #if !MONOMAC
  2749. [Since (6,0)]
  2750. [Export ("seekToDate:")]
  2751. void Seek (NSDate date);
  2752. [Since (6,0)]
  2753. [Export ("seekToDate:completionHandler:")]
  2754. [Async]
  2755. void Seek (NSDate date, AVCompletion onComplete);
  2756. #endif
  2757. [Since (6,0)]
  2758. [Export ("setRate:time:atHostTime:")]
  2759. void SetRate (float rate, CMTime itemTime, CMTime hostClockTime);
  2760. [Since (6,0)]
  2761. [Export ("prerollAtRate:completionHandler:")]
  2762. [Async]
  2763. void Preroll (float rate, AVCompletion onComplete);
  2764. [Since (6,0)]
  2765. [Export ("cancelPendingPrerolls")]
  2766. void CancelPendingPrerolls ();
  2767. #if !MONOMAC
  2768. [Since (6,0)]
  2769. [Export ("outputObscuredDueToInsufficientExternalProtection")]
  2770. bool OutputObscuredDueToInsufficientExternalProtection { get; }
  2771. #endif
  2772. [Since (6,0)]
  2773. [Export ("masterClock")]
  2774. CMClock MasterClock { get; set; }
  2775. #if !MONOMAC
  2776. [Since (6,0)]
  2777. [Export ("allowsExternalPlayback")]
  2778. bool AllowsExternalPlayback { get; set; }
  2779. [Since (6,0)]
  2780. [Export ("externalPlaybackActive")]
  2781. bool ExternalPlaybackActive { [Bind ("isExternalPlaybackActive")] get; }
  2782. [Since (6,0)]
  2783. [Export ("usesExternalPlaybackWhileExternalScreenIsActive")]
  2784. bool UsesExternalPlaybackWhileExternalScreenIsActive { get; set; }
  2785. [Since (6,0)][Protected]
  2786. [Export ("externalPlaybackVideoGravity")]
  2787. NSString WeakExternalPlaybackVideoGravity { get; set; }
  2788. #endif
  2789. }
  2790. #if !MONOMAC
  2791. [Since (6,0)]
  2792. [BaseType (typeof (NSObject))]
  2793. interface AVTextStyleRule {
  2794. [Export ("textMarkupAttributes")][Protected]
  2795. NSDictionary WeakTextMarkupAttributes { get; }
  2796. [Wrap ("WeakTextMarkupAttributes")]
  2797. CMTextMarkupAttributes TextMarkupAttributes { get; }
  2798. [Export ("textSelector")]
  2799. string TextSelector { get; }
  2800. [Static]
  2801. [Export ("propertyListForTextStyleRules:")]
  2802. NSObject ToPropertyList (AVTextStyleRule [] textStyleRules);
  2803. [Static]
  2804. [Export ("textStyleRulesFromPropertyList:")]
  2805. AVTextStyleRule [] FromPropertyList (NSObject plist);
  2806. [Static][Internal]
  2807. [Export ("textStyleRuleWithTextMarkupAttributes:")]
  2808. AVTextStyleRule FromTextMarkupAttributes (NSDictionary textMarkupAttributes);
  2809. [Static]
  2810. [Wrap ("FromTextMarkupAttributes (textMarkupAttributes == null ? null : textMarkupAttributes.Dictionary)")]
  2811. AVTextStyleRule FromTextMarkupAttributes (CMTextMarkupAttributes textMarkupAttributes);
  2812. [Static][Internal]
  2813. [Export ("textStyleRuleWithTextMarkupAttributes:textSelector:")]
  2814. AVTextStyleRule FromTextMarkupAttributes (NSDictionary textMarkupAttributes, [NullAllowed] string textSelector);
  2815. [Static]
  2816. [Wrap ("FromTextMarkupAttributes (textMarkupAttributes == null ? null : textMarkupAttributes.Dictionary, textSelector)")]
  2817. AVTextStyleRule FromTextMarkupAttributes (CMTextMarkupAttributes textMarkupAttributes, [NullAllowed] string textSelector);
  2818. [Export ("initWithTextMarkupAttributes:")]
  2819. [Protected]
  2820. IntPtr Constructor (NSDictionary textMarkupAttributes);
  2821. [Wrap ("this (attributes == null ? null : attributes.Dictionary)")]
  2822. IntPtr Constructor (CMTextMarkupAttributes attributes);
  2823. [Export ("initWithTextMarkupAttributes:textSelector:")]
  2824. [Protected]
  2825. IntPtr Constructor (NSDictionary textMarkupAttributes, [NullAllowed] string textSelector);
  2826. [Wrap ("this (attributes == null ? null : attributes.Dictionary, textSelector)")]
  2827. IntPtr Constructor (CMTextMarkupAttributes attributes, string textSelector);
  2828. }
  2829. #endif
  2830. [BaseType (typeof (NSObject))]
  2831. [Since (4,3)]
  2832. interface AVTimedMetadataGroup {
  2833. [Export ("timeRange")]
  2834. CMTimeRange TimeRange { get; [NotImplemented] set; }
  2835. [Export ("items")]
  2836. AVMetadataItem [] Items { get; [NotImplemented] set; }
  2837. [Export ("initWithItems:timeRange:")]
  2838. IntPtr Constructor (AVMetadataItem [] items, CMTimeRange timeRange);
  2839. }
  2840. [BaseType (typeof (AVTimedMetadataGroup))]
  2841. interface AVMutableTimedMetadataGroup {
  2842. [Export ("items")]
  2843. [Override]
  2844. AVMetadataItem [] Items { get; set; }
  2845. [Export ("timeRange")]
  2846. [Override]
  2847. CMTimeRange TimeRange { get; set; }
  2848. }
  2849. delegate void AVTimeHandler (CMTime time);
  2850. interface AVPlayerItemErrorEventArgs {
  2851. [Export ("AVPlayerItemFailedToPlayToEndTimeErrorKey")]
  2852. NSError Error { get; }
  2853. }
  2854. [Since (4,0)]
  2855. [BaseType (typeof (NSObject))]
  2856. // 'init' returns NIL
  2857. [DisableDefaultCtor]
  2858. interface AVPlayerItem {
  2859. [Export ("status")]
  2860. AVPlayerItemStatus Status { get; }
  2861. [Export ("asset")]
  2862. AVAsset Asset { get; }
  2863. [Export ("tracks")]
  2864. AVPlayerItemTrack [] Tracks { get; }
  2865. [Export ("presentationSize")]
  2866. SizeF PresentationSize { get; }
  2867. [Export ("forwardPlaybackEndTime")]
  2868. CMTime ForwardPlaybackEndTime { get; set; }
  2869. [Export ("reversePlaybackEndTime")]
  2870. CMTime ReversePlaybackEndTime { get; set; }
  2871. [Export ("audioMix", ArgumentSemantic.Copy)]
  2872. AVAudioMix AudioMix { get; set; }
  2873. [Export ("videoComposition", ArgumentSemantic.Copy)]
  2874. AVVideoComposition VideoComposition { get; set; }
  2875. [Export ("currentTime")]
  2876. CMTime CurrentTime { get; }
  2877. [Export ("playbackLikelyToKeepUp")]
  2878. bool PlaybackLikelyToKeepUp { [Bind ("isPlaybackLikelyToKeepUp")] get; }
  2879. [Export ("playbackBufferFull")]
  2880. bool PlaybackBufferFull { [Bind ("isPlaybackBufferFull")] get; }
  2881. [Export ("playbackBufferEmpty")]
  2882. bool PlaybackBufferEmpty { [Bind ("isPlaybackBufferEmpty")] get; }
  2883. [Export ("seekableTimeRanges")]
  2884. NSValue [] SeekableTimeRanges { get; }
  2885. [Export ("loadedTimeRanges")]
  2886. NSValue [] LoadedTimeRanges { get; }
  2887. [Export ("timedMetadata")]
  2888. NSObject [] TimedMetadata { get; }
  2889. [Static, Export ("playerItemWithURL:")]
  2890. AVPlayerItem FromUrl (NSUrl URL);
  2891. [Static]
  2892. [Export ("playerItemWithAsset:")]
  2893. AVPlayerItem FromAsset (AVAsset asset);
  2894. [Export ("initWithURL:")]
  2895. IntPtr Constructor (NSUrl URL);
  2896. [Export ("initWithAsset:")]
  2897. IntPtr Constructor (AVAsset asset);
  2898. [Export ("stepByCount:")]
  2899. void StepByCount (int stepCount);
  2900. [Export ("seekToDate:")]
  2901. bool Seek (NSDate date);
  2902. [Export ("seekToTime:")]
  2903. void Seek (CMTime time);
  2904. [Export ("seekToTime:toleranceBefore:toleranceAfter:")]
  2905. void Seek (CMTime time, CMTime toleranceBefore, CMTime toleranceAfter);
  2906. [Export ("error")]
  2907. NSError Error { get; }
  2908. [Field ("AVPlayerItemDidPlayToEndTimeNotification")]
  2909. [Notification]
  2910. NSString DidPlayToEndTimeNotification { get; }
  2911. [Since (4,3)]
  2912. [Field ("AVPlayerItemFailedToPlayToEndTimeNotification")]
  2913. [Notification (typeof (AVPlayerItemErrorEventArgs))]
  2914. NSString ItemFailedToPlayToEndTimeNotification { get; }
  2915. [Since (4,3)]
  2916. [Field ("AVPlayerItemFailedToPlayToEndTimeErrorKey")]
  2917. NSString ItemFailedToPlayToEndTimeErrorKey { get; }
  2918. [Since (4,3)]
  2919. [Export ("accessLog")]
  2920. AVPlayerItemAccessLog AccessLog { get; }
  2921. [Since (4,3)]
  2922. [Export ("errorLog")]
  2923. AVPlayerItemErrorLog ErrorLog { get; }
  2924. [Since (4,3)]
  2925. [Export ("currentDate")]
  2926. NSDate CurrentDate { get; }
  2927. [Since (4,3)]
  2928. [Export ("duration")]
  2929. CMTime Duration { get; }
  2930. [Since (5,0)]
  2931. [Export ("canPlayFastReverse")]
  2932. bool CanPlayFastReverse { get; }
  2933. [Since (5,0)]
  2934. [Export ("canPlayFastForward")]
  2935. bool CanPlayFastForward { get; }
  2936. [Since (5,0)]
  2937. [Field ("AVPlayerItemTimeJumpedNotification")]
  2938. [Notification]
  2939. NSString TimeJumpedNotification { get; }
  2940. [Since (5,0)]
  2941. [Export ("seekToTime:completionHandler:")]
  2942. [Async]
  2943. void Seek (CMTime time, AVCompletion completion);
  2944. [Since (5,0)]
  2945. [Export ("cancelPendingSeeks")]
  2946. void CancelPendingSeeks ();
  2947. [Since (5,0)]
  2948. [Export ("seekToTime:toleranceBefore:toleranceAfter:completionHandler:")]
  2949. [Async]
  2950. void Seek (CMTime time, CMTime toleranceBefore, CMTime toleranceAfter, AVCompletion completion);
  2951. #if !MONOMAC
  2952. [Since (5,0)]
  2953. [Export ("selectMediaOption:inMediaSelectionGroup:")]
  2954. void SelectMediaOption (AVMediaSelectionOption mediaSelectionOption, AVMediaSelectionGroup mediaSelectionGroup);
  2955. [Export ("selectedMediaOptionInMediaSelectionGroup:")]
  2956. AVMediaSelectionOption SelectedMediaOption (AVMediaSelectionGroup inMediaSelectionGroup);
  2957. #endif
  2958. [Since (6,0)]
  2959. [Export ("canPlaySlowForward")]
  2960. bool CanPlaySlowForward { get; }
  2961. [Since (6,0)]
  2962. [Export ("canPlayReverse")]
  2963. bool CanPlayReverse { get; }
  2964. [Since (6,0)]
  2965. [Export ("canPlaySlowReverse")]
  2966. bool CanPlaySlowReverse { get; }
  2967. [Since (6,0)]
  2968. [Export ("canStepForward")]
  2969. bool CanStepForward { get; }
  2970. [Since (6,0)]
  2971. [Export ("canStepBackward")]
  2972. bool CanStepBackward { get; }
  2973. [Since (6,0)]
  2974. [Export ("outputs")]
  2975. AVPlayerItemOutput [] Outputs { get; }
  2976. [Since (6,0)]
  2977. [Export ("addOutput:")]
  2978. [PostGet ("Outputs")]
  2979. void AddOutput (AVPlayerItemOutput output);
  2980. [Since (6,0)]
  2981. [Export ("removeOutput:")]
  2982. [PostGet ("Outputs")]
  2983. void RemoveOutput (AVPlayerItemOutput output);
  2984. [Since (6,0)]
  2985. [Export ("timebase")]
  2986. CMTimebase Timebase { get; }
  2987. #if !MONOMAC
  2988. [Since (6,0)]
  2989. [Export ("seekToDate:completionHandler:")]
  2990. [Async]
  2991. bool Seek (NSDate date, AVCompletion completion);
  2992. [Since (6,0)]
  2993. [Export ("seekingWaitsForVideoCompositionRendering")]
  2994. bool SeekingWaitsForVideoCompositionRendering { get; set; }
  2995. [Since (6,0)]
  2996. [Export ("textStyleRules")]
  2997. AVTextStyleRule [] TextStyleRules { get; set; }
  2998. [Field ("AVPlayerItemPlaybackStalledNotification")]
  2999. [Notification]
  3000. NSString PlaybackStalledNotification { get; }
  3001. [Field ("AVPlayerItemNewAccessLogEntryNotification")]
  3002. [Notification]
  3003. NSString NewAccessLogEntryNotification { get; }
  3004. [Field ("AVPlayerItemNewErrorLogEntryNotification")]
  3005. [Notification]
  3006. NSString NewErrorLogEntryNotification { get; }
  3007. #endif
  3008. }
  3009. [Since (6,0)]
  3010. [BaseType (typeof (NSObject))]
  3011. // Objective-C exception thrown. Name: NSInvalidArgumentException Reason: *** initialization method -init cannot be sent to an abstract object of class AVPlayerItemOutput: Create a concrete instance!
  3012. [DisableDefaultCtor]
  3013. interface AVPlayerItemOutput {
  3014. [Export ("itemTimeForHostTime:")]
  3015. CMTime GetItemTime (double hostTimeInSeconds);
  3016. [Export ("itemTimeForMachAbsoluteTime:")]
  3017. CMTime GetItemTime (long machAbsoluteTime);
  3018. [Export ("suppressesPlayerRendering")]
  3019. bool SuppressesPlayerRendering { get; set; }
  3020. }
  3021. [Since (6,0)]
  3022. [BaseType (typeof (AVPlayerItemOutput))]
  3023. interface AVPlayerItemVideoOutput {
  3024. [Export ("delegate")]
  3025. NSObject WeakDelegate { get; }
  3026. [Wrap ("WeakDelegate")]
  3027. AVPlayerItemOutputPullDelegate Delegate { get; }
  3028. [Export ("delegateQueue")]
  3029. DispatchQueue DelegateQueue { get; }
  3030. [Export ("initWithPixelBufferAttributes:")]
  3031. [Protected]
  3032. IntPtr Constructor (NSDictionary pixelBufferAttributes);
  3033. [Wrap ("this (attributes == null ? null : attributes.Dictionary)")]
  3034. IntPtr Constructor (CVPixelBufferAttributes attributes);
  3035. [Export ("hasNewPixelBufferForItemTime:")]
  3036. bool HasNewPixelBufferForItemTime (CMTime itemTime);
  3037. [Protected]
  3038. [Export ("copyPixelBufferForItemTime:itemTimeForDisplay:")]
  3039. IntPtr WeakCopyPixelBuffer (CMTime itemTime, ref CMTime outItemTimeForDisplay);
  3040. [Export ("setDelegate:queue:")]
  3041. void SetDelegate (AVPlayerItemOutputPullDelegate delegateClass, DispatchQueue delegateQueue);
  3042. [Export ("requestNotificationOfMediaDataChangeWithAdvanceInterval:")]
  3043. void RequestNotificationOfMediaDataChange (double advanceInterval);
  3044. }
  3045. [Since (6,0)]
  3046. [BaseType (typeof (NSObject))]
  3047. [Model]
  3048. [Protocol]
  3049. interface AVPlayerItemOutputPullDelegate {
  3050. [Export ("outputMediaDataWillChange:")]
  3051. void OutputMediaDataWillChange (AVPlayerItemOutput sender);
  3052. [Export ("outputSequenceWasFlushed:")]
  3053. void OutputSequenceWasFlushed (AVPlayerItemOutput output);
  3054. }
  3055. [BaseType (typeof (NSObject))]
  3056. [Since (4,3)]
  3057. public interface AVPlayerItemAccessLog {
  3058. [Export ("events")]
  3059. AVPlayerItemAccessLogEvent [] Events { get; }
  3060. [Export ("extendedLogDataStringEncoding")]
  3061. NSStringEncoding ExtendedLogDataStringEncoding { get; }
  3062. [Export ("extendedLogData")]
  3063. NSData ExtendedLogData { get; }
  3064. }
  3065. [BaseType (typeof (NSObject))]
  3066. [Since (4,3)]
  3067. public interface AVPlayerItemErrorLog {
  3068. [Export ("events")]
  3069. AVPlayerItemErrorLogEvent [] Events { get; }
  3070. [Export ("extendedLogDataStringEncoding")]
  3071. NSStringEncoding ExtendedLogDataStringEncoding { get; }
  3072. [Export ("extendedLogData")]
  3073. NSData ExtendedLogData { get; }
  3074. }
  3075. [BaseType (typeof (NSObject))]
  3076. [Since (4,3)]
  3077. public interface AVPlayerItemAccessLogEvent {
  3078. [Export ("numberOfSegmentsDownloaded")]
  3079. int SegmentedDownloadedCount { get; }
  3080. [Export ("playbackStartDate")]
  3081. NSData PlaybackStartDate { get; }
  3082. [Export ("URI")]
  3083. string Uri { get; }
  3084. [Export ("serverAddress")]
  3085. string ServerAddress { get; }
  3086. [Export ("numberOfServerAddressChanges")]
  3087. int ServerAddressChangeCount { get; }
  3088. [Export ("playbackSessionID")]
  3089. string PlaybackSessionID { get; }
  3090. [Export ("playbackStartOffset")]
  3091. double PlaybackStartOffset { get; }
  3092. [Export ("segmentsDownloadedDuration")]
  3093. double SegmentsDownloadedDuration { get; }
  3094. [Export ("durationWatched")]
  3095. double DurationWatched { get; }
  3096. [Export ("numberOfStalls")]
  3097. int StallCount { get; }
  3098. [Export ("numberOfBytesTransferred")]
  3099. long BytesTransferred { get; }
  3100. [Export ("observedBitrate")]
  3101. double ObservedBitrate { get; }
  3102. [Export ("indicatedBitrate")]
  3103. double IndicatedBitrate { get; }
  3104. [Export ("numberOfDroppedVideoFrames")]
  3105. int DroppedVideoFrameCount { get; }
  3106. #if !MONOMAC
  3107. [Since (6,0)]
  3108. [Export ("numberOfMediaRequests")]
  3109. int NumberOfMediaRequests { get; }
  3110. #endif
  3111. }
  3112. [BaseType (typeof (NSObject))]
  3113. [Since (4,3)]
  3114. public interface AVPlayerItemErrorLogEvent {
  3115. [Export ("date")]
  3116. NSDate Date { get; }
  3117. [Export ("URI")]
  3118. string Uri { get; }
  3119. [Export ("serverAddress")]
  3120. string ServerAddress { get; }
  3121. [Export ("playbackSessionID")]
  3122. string PlaybackSessionID { get; }
  3123. [Export ("errorStatusCode")]
  3124. int ErrorStatusCode { get; }
  3125. [Export ("errorDomain")]
  3126. string ErrorDomain { get; }
  3127. [Export ("errorComment")]
  3128. string ErrorComment { get; }
  3129. }
  3130. [Since (4,0)]
  3131. [BaseType (typeof (CALayer))]
  3132. interface AVPlayerLayer {
  3133. [Export ("player")]
  3134. AVPlayer Player { get; set; }
  3135. [Static, Export ("playerLayerWithPlayer:")]
  3136. AVPlayerLayer FromPlayer (AVPlayer player);
  3137. [Advice ("Use LayerVideoGravity")]
  3138. [Export ("videoGravity")][Sealed]
  3139. string VideoGravity { get; set; }
  3140. [Export ("videoGravity")][Protected]
  3141. NSString WeakVideoGravity { get; set; }
  3142. [Field ("AVLayerVideoGravityResizeAspect")]
  3143. NSString GravityResizeAspect { get; }
  3144. [Field ("AVLayerVideoGravityResizeAspectFill")]
  3145. NSString GravityResizeAspectFill { get; }
  3146. [Field ("AVLayerVideoGravityResize")]
  3147. NSString GravityResize { get; }
  3148. [Export ("isReadyForDisplay")]
  3149. bool ReadyForDisplay { get; }
  3150. }
  3151. [Since (4,0)]
  3152. [BaseType (typeof (NSObject))]
  3153. interface AVPlayerItemTrack {
  3154. [Export ("enabled")]
  3155. bool Enabled { [Bind ("isEnabled")] get; set; }
  3156. [Export ("assetTrack")]
  3157. AVAssetTrack AssetTrack { get; }
  3158. }
  3159. [BaseType (typeof (NSObject))]
  3160. [Model]
  3161. [Since (4,0)]
  3162. [Protocol]
  3163. interface AVAsynchronousKeyValueLoading {
  3164. [Abstract]
  3165. [Export ("statusOfValueForKey:error:")]
  3166. AVKeyValueStatus StatusOfValueForKeyerror (string key, IntPtr outError);
  3167. [Abstract]
  3168. [Export ("loadValuesAsynchronouslyForKeys:completionHandler:")]
  3169. void LoadValuesAsynchronously (string [] keys, NSAction handler);
  3170. }
  3171. [Since (4,1)]
  3172. [BaseType (typeof (AVPlayer))]
  3173. interface AVQueuePlayer {
  3174. [Static, Export ("queuePlayerWithItems:")]
  3175. AVQueuePlayer FromItems (AVPlayerItem [] items);
  3176. [Export ("initWithItems:")]
  3177. IntPtr Constructor (AVPlayerItem [] items);
  3178. [Export ("items")]
  3179. AVPlayerItem [] Items { get; }
  3180. [Export ("advanceToNextItem")]
  3181. void AdvanceToNextItem ();
  3182. [Export ("canInsertItem:afterItem:")]
  3183. bool CanInsert (AVPlayerItem item, AVPlayerItem afterItem);
  3184. [Export ("insertItem:afterItem:")]
  3185. void InsertItem (AVPlayerItem item, AVPlayerItem afterItem);
  3186. [Export ("removeItem:")]
  3187. void RemoveItem (AVPlayerItem item);
  3188. [Export ("removeAllItems")]
  3189. void RemoveAllItems ();
  3190. }
  3191. [Static]
  3192. public interface AVAudioSettings {
  3193. [Field ("AVFormatIDKey")]
  3194. NSString AVFormatIDKey { get; }
  3195. [Field ("AVSampleRateKey")]
  3196. NSString AVSampleRateKey { get; }
  3197. [Field ("AVNumberOfChannelsKey")]
  3198. NSString AVNumberOfChannelsKey { get; }
  3199. [Field ("AVLinearPCMBitDepthKey")]
  3200. NSString AVLinearPCMBitDepthKey { get; }
  3201. [Field ("AVLinearPCMIsBigEndianKey")]
  3202. NSString AVLinearPCMIsBigEndianKey { get; }
  3203. [Field ("AVLinearPCMIsFloatKey")]
  3204. NSString AVLinearPCMIsFloatKey { get; }
  3205. [Field ("AVLinearPCMIsNonInterleaved")]
  3206. NSString AVLinearPCMIsNonInterleaved { get; }
  3207. [Field ("AVEncoderAudioQualityKey")]
  3208. NSString AVEncoderAudioQualityKey { get; }
  3209. [Field ("AVEncoderBitRateKey")]
  3210. NSString AVEncoderBitRateKey { get; }
  3211. [Field ("AVEncoderBitRatePerChannelKey")]
  3212. NSString AVEncoderBitRatePerChannelKey { get; }
  3213. [Field ("AVEncoderBitDepthHintKey")]
  3214. NSString AVEncoderBitDepthHintKey { get; }
  3215. [Field ("AVSampleRateConverterAudioQualityKey")]
  3216. NSString AVSampleRateConverterAudioQualityKey { get; }
  3217. [Field ("AVChannelLayoutKey")]
  3218. NSString AVChannelLayoutKey { get; }
  3219. }
  3220. }