CMVideoFormatDescriptionGetCleanAperture () Быстрая ошибка

Я не могу заставить CMVideoFormatDescriptionGetCleanAperture() работать. С помощью

 var videoDescriptionRef = port.formatDescription as CMVideoFormatDescriptionRef var cleanAperture = CMVideoFormatDescriptionGetCleanAperture(videoDescriptionRef, true) 

или

 var cleanAperture = CMVideoFormatDescriptionGetCleanAperture(port.formatDescription, true) 

дает следующие ошибки:

 Cannot convert expression's type 'CMVideoFormatDescriptionRef' to type 'CMVideoFormatDescriptionRef' 

И второе

 Could not find an overlad for '__conversion' that accepts the supplied arguments 

Кто-нибудь знает, как исправить это, или может кто-нибудь указать какие-либо ошибки в получении описания формата для получения чистой апертуры?

Сама CMFormatDescription не имеет члена takeUnretainedValue . Он является членом Unmanaged<T> . Сначала вам нужно определить неуправляемую переменную, получить значение в ней, а затем сохранить ее.

Поскольку я не знаю, как вы создали port.formatDescription , вот пример, где formatDescription создается из PPS / SPS из видео AVC.

 // create the receiving unmanaged variable var formatDescription: Unmanaged<CMVideoFormatDescription>? // call the not annotated method, this method will fill in formatDescription which is Unmanaged<T> let result = CMVideoFormatDescriptionCreateFromH264ParameterSets(nil, UInt(parameterSets.count), parameterSets, parameterSetSizes, 4, &formatDescription) // check result, yada yada yada before continuing // now we can actually retain the value let formatDescriptionRef = formatDescription!.takeUnretainedValue() as CMVideoFormatDescriptionRef // and we can do what ever we want with it in Swift without caring anymore. var cleanAperture = CMVideoFormatDescriptionGetCleanAperture(formatDescriptionRef, 1) 
  1. Создать неуправляемый тип
  2. Используйте этот неуправляемый тип в не аннотированном методе
  3. Сохранить значение
  4. Работайте с ним, не задумываясь о том, как вы его создали.

Так что скорректируйте свой код, где вы создаете port.formatDescription как неуправляемый, и вы должны быть хорошими.

Попробуйте использовать .takeUnretainedValue () следующим образом:

 var videoDescription : CMVideoFormatDescription = port.formatDescription.takeUnretainedValue() var cleanAperture = CMVideoFormatDescriptionGetCleanAperture(videoDescription, true) 
  • AutoLayout Высота UITableViewCell, кратная таблице TableView / Screen
  • Удаление пользователя в iOS с помощью Parse login
  • Правильный анализ вложенных JSON с использованием модели данных для многократного повторного использования. стриж
  • Ошибка SerializationFailure при отправке данных с помощью Alamofire
  • Установите таймер на UIPageViewController
  • Как использовать NMSSH в быстрой
  • Диаграммы классов UML для Xcode (быстрое программирование)
  • как отменить pileular UILocalNotification в быстрой?
  • Поток аудио с микрофона через Bluetooth на другой iPhone
  • Как проверить данные у ребенка, у ребенка в Firebase
  • Swift 2.0 Core Data - TableView не читает NSManagedObject
  • Interesting Posts
    Давайте будем гением компьютера.