CVPixelBufferGetAddress возвращает ноль - PullRequest
0 голосов
/ 24 мая 2018

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

let baseAddress = CVPixelBufferGetBaseAddressOfPlane(cvPixelBuffer, 0) // -> nil =(

1 Ответ

0 голосов
/ 24 мая 2018

Я обнаружил, что причина в том, что я пытался получить доступ к pixelBuffer из ЦП и поэтому требует, чтобы адрес CVPixelBuffer был заблокирован по определенному адресу в памяти.

CVPixelBufferLockBaseAddress(cvPixelBuffer, CVPixelBufferLockFlags.readOnly)
let baseAddress = CVPixelBufferGetBaseAddressOfPlane(cvPixelBuffer, 0)
CVPixelBufferUnlockBaseAddress(cvPixelBuffer, CVPixelBufferLockFlags.readOnly)

Это работает!

...