Запросите оптимальный формат пикселей при захвате видео на iOS? - PullRequest
0 голосов
/ 25 августа 2011

В руководстве по программированию AVFoundation указано, что предпочтительные форматы пикселей при захвате видео:

  • для iPhone 4: kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange или kCVPixelFormatType_32BGRA
  • для iPhone 3G: kCVPixelFormatType_422YpCbCr8 или kCVPixelFormatType_32BGRA

(Пока нет рекомендаций для iPhone 5 или для устройств iPad с камерами.)

Однако нетпредоставлена ​​справка о том, как мне поступить и определить, на каком устройстве в данный момент работает приложение.А что, если предпочтительный формат пикселя станет другим в будущем и, следовательно, для моего приложения неизвестным устройством?

Каков правильный и надежный способ определения предпочтительного формата пикселей YpCbCr для любого устройства?

1 Ответ

0 голосов
/ 04 сентября 2011

Я полагаю, что вы можете просто установить настройки видео на ноль, и AVFoundation будет использовать наиболее эффективный формат. Например, вместо того, чтобы делать

NSDictionary *videoSettings = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange] forKey:(id)kCVPixelBufferPixelFormatTypeKey];
videoOutput.videoSettings = videoSettings;

Сделайте это вместо

videoOutput.videoSettings = nil;

Вы также можете попробовать вообще не устанавливать его. Я знаю, что в прошлом я просто устанавливал бы это на ноль, если бы мне не нужно было захватывать изображения в определенном формате.

редактировать

Чтобы получить формат, который AVFoundation выбрал для использования.

CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(source);
CGColorSpaceRef cref = CVImageBufferGetColorSpace(imageBuffer);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...