То, как вы передаете baseAddress, предполагает, что данные изображения имеют вид
ACCC
(где C - некоторый компонент цвета, R || G || B).
Если вы настроили AVCaptureSession для захвата видеокадров в собственном формате, скорее всего, вы вернете видеоданные обратно в плоский формат YUV420. (см .: текст ссылки ). Чтобы сделать то, что вы пытаетесь сделать здесь, вероятно, проще всего было бы указать, что вы хотите, чтобы видеокадры были захвачены в kCVPixelFormatType_32RGBA. Apple рекомендует захватывать видеокадры в kCVPixelFormatType_32BGRA, если вы вообще захватываете его в непланарном формате, причина которого не указана, но я могу предположить, что это связано с соображениями производительности.
Предостережение: я этого не делал, и я предполагаю , что такой доступ к содержимому CVPixelBufferRef является разумным способом построения образа. Я не могу ручаться за то, что это действительно работает, но я / могу / сказать вам, что то, как вы делаете вещи сейчас, надежно не будет работать из-за формата пикселей, который вы (вероятно) захватывает видеокадры как.