«Не удалось загрузить ядро» при запуске сеанса камеры и попытке выполнить фильтрацию в реальном времени

Я пытаюсь выполнить фильтрацию изображения в реальном времени, как то, что делает Instagram и Path. Я в значительной степени реализовал этот метод:

-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection { 

Я использовал сеанс камеры и структуру CoreImage (я не использовал OpenGL напрямую). В большинстве случаев мое приложение будет работать довольно успешно без сбоев или икоты.

Однако, когда я пытаюсь запустить сеанс живой фильтрации, когда мое приложение проходит анимацию UIView на экране. Я бы увидел черный экран в области фильтрации в реальном времени. Кроме того, консоль будет печатать несколько раз, как это:

Недопустимая шейдерная программа, возможно, из-за превышения аппаратных ресурсов

А также:

Не удалось загрузить ядро!

Когда такая ошибка возникает, я заметил, что могу исправить ее, просто перезапустив и заново запустив сеанс моей камеры. Поэтому, пока мой код будет уведомлен во время выполнения, я мог бы легко исправить ситуацию, просто позволив коду выполнить проверку во время выполнения, и если такая ситуация произойдет, заново запустите сеанс камеры.

Но есть одна большая проблема, когда такие ошибки возникают, мой код не будет уведомлен. Там нет перезвона, нет никакого сбоя, нет никакого исключения, нет странного указателя nil.

Кто-нибудь может помочь?

One Solution collect form web for “«Не удалось загрузить ядро» при запуске сеанса камеры и попытке выполнить фильтрацию в реальном времени”

«Ядро», о котором идет речь, не ядро ​​iOS, а ядро ​​OpenCL. Он встречается в OpenCL.framework (общедоступный в OS X, но закрытый в iOS, доступный с iOS 5). Поскольку он является частным, вы, скорее всего, застряли здесь. Инициализация OpenCL занимает значительную часть системных ресурсов. Хорошим подходом является взаимное исключение (mutex) доступа к экрану, удерживая его, когда вы находитесь в анимации UIView.

Надеюсь это поможет,

TG

  • Могу ли я поделиться шейдерами между контекстами с EAGLSharegroup?
  • Руководство для начинающих по 3D-программированию в SDK IPhone
  • Снимок экрана WKWebview с аппаратным ускоренным контентом
  • Преобразование RGBA в ARGB (glReadPixels -> AVAssetWriter)
  • Где я могу найти iPhone OpenGL ES Пример, который реагирует на касание?
  • Искажение изображения, чтобы сделать эффект дождя на экране
  • Swift OpenGL неразрешенный идентификатор kCGImageAlphaPremultipliedLast
  • вырожденные вершины и GL_LINE_STRIP
  • Применение эффекта Сепия, RGB, GrayScale для UIImage
  • GLSL Shader Error "Конструкторские вызовы могут не иметь точности"
  • Как создать 1536x2048 фреймбуфер для iPad Retina sample (GLGravity)
  • Interesting Posts

    Изменение / масштабирование UIImageView – SWIFT

    Перечисление групп ALAssets: как проверить завершение?

    NSLog выводит символы Unicode как мусор при отладке на iPhone

    Нужно, чтобы поведение FullScreenLayout с N-полупрозрачными барами на iOS 7

    Измените язык приложения iOS без перезагрузки устройства

    AutoLayout устанавливает одинаковое высоту и верхнее пространство для нескольких видов, не распределяя их по вертикали

    Объединение CGBitmapInfo и CGImageAlphaInfo в Swift

    Как настроить UIScrollView, когда контент загружается асинхронно

    NSCache для хранения изображений для UITableView

    как управлять 2 версиями одного приложения для разных регионов и языков?

    Различные пользовательские изображения для каждого вывода

    Как правильно отобразить значок элемента панели вкладок

    UIWebView не сразу останавливается

    Многострочный / динамический UILabel Truncating в iOS8

    Преобразование кода Objective C в Swift не может корректно обрабатывать байты в Swift

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.