В чем разница между CVPixelBufferGetWidth (pixelbuffer) и CVPixelBufferGetWidthOfPlane (pixelbuffer, 0)? - PullRequest
0 голосов
/ 29 апреля 2019

Есть ли разница между CVPixelBufferGetWidth(pixelbuffer) и CVPixelBufferGetWidthOfPlane(pixelbuffer, 0), CVPixelBufferGetHeight(pixelbuffer) и CVPixelBufferGetHeightOfPlane(pixelbuffer, 0).

Я ищу вики, там написано:

As with most Y′UV formats, there are as many Y′ values as there are pixels.

Не говоритЗначение y равно ширине изображения для всех форматов.

Так что если

CVPixelBufferGetWidth(pixelbuffer) == CVPixelBufferGetWidthOfPlane(pixelbuffer, 0)

и

CVPixelBufferGetHeight(pixelbuffer) == CVPixelBufferGetHeightOfPlane(pixelbuffer, 0)

1 Ответ

0 голосов
/ 30 апреля 2019

Не все пиксельные буферы являются плоскими (то есть содержат несколько плоскостей данных, как в случае буферов YUV).Проверьте CVPixelBufferIsPlanar, чтобы увидеть, если ваша, прежде чем решить, с какой функцией запрашивать ширину / высоту.(Конечно, вы можете спокойно пропустить эту проверку, если вы получаете буферы от источника, который всегда плоский.)

Документы для CVPixelBufferGetWidthOfPlane обратите внимание, что он всегда возвращает ноль при прохождениинеплоский буфер.В этом случае возвращаемое значение (для плоскости 0) не ожидается равным CVPixelBufferGetWidth.

...