Мне нужно создать копию CVPixelBufferRef
, чтобы иметь возможность манипулировать исходным буфером пикселей по-разному, используя значения из копии. Кажется, я не могу это сделать с CVPixelBufferCreate
или с CVPixelBufferCreateWithBytes
.Duplicate/Copy CVPixelBufferRef с CVPixelBufferCreate
Согласно this question, это также возможно сделать с помощью memcpy(). Однако нет никаких объяснений относительно того, как это будет достигнуто, и какие вызовы библиотеки Core Video будут необходимы независимо.
Не можете вы просто 'memcpy' данные где-то еще? – jtbandes
Это на самом деле то, что я имел в виду с «более простым способом», однако я не нашел примеров того, как это сделать, и я достаточно программирую на программирование C. Я бы просто определил новый пиксельный буфер 'CVPixelBufferRef newPixelBuffer = NULL', а затем использовал memcpy()? –
Нет, вы просто хотите скопировать данные пикселя, а не копировать любую внутреннюю структуру, которую имеет CVPixelBufferRef. См. Документацию для CVPixelBufferGetBaseAddress. – jtbandes