из буфера и попробуйте отрендерить его позже (вне обратного вызова). Я не вижу никаких артефактов в предоставленных мне видеоданных.

даюMTLTexture отCVImageBuffers (от камеры и игроков) с помощьюCVMetalTextureCacheCreateTextureFromImage чтобы получитьCVMetalTexture а потомCVMetalTextureGetTexture чтобы получитьMTLTexture.

Проблема, с которой я сталкиваюсь, заключается в том, что, когда я позже визуализирую текстуру с использованием Metal, я иногда вижу видеокадры, отрисованные не по порядку (визуально он заикается назад и вперед во времени), предположительно, потому что CoreVideo модифицирует базовыйCVImageBuffer хранение иMTLTexture просто указывает туда.

Есть ли способ заставить CoreVideo не трогать этот буфер и использовать другой из его пула, пока я не выпущуMTLTexture объект?

Мой текущий способ обойти текстуру, используяMTLBlitCommandEncoder но так как мне просто нужно держаться за текстуру в течение ~ 30 миллисекунд, это кажется ненужным.

Ответы на вопрос(4)

Ваш ответ на вопрос