FFMPEG D3D11 Декодированное изображение в OpenCV UMATC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 FFMPEG D3D11 Декодированное изображение в OpenCV UMAT

Сообщение Anonymous »

Я хотел бы скопировать Decode Data Ffmpeg изображения в UMAT, не копируя их в ОЗУ процессора.
Есть ли способ сделать это? Что, если на ПК есть две или более карты GPU? контекст-> hwframe он не работает. < /p>

Код: Выделить всё

int copy_frame_to_buffer(void* handle, void* buffer, int bufferSize)
{
int ret = 0;
int calculatedBufferSize;

VideoDecoderContext* context = static_cast(handle);

calculatedBufferSize = av_image_get_buffer_size(static_cast(context->frame->format), context->frame->width, context->frame->height, 1);
if (calculatedBufferSize != bufferSize)
{
fprintf(stderr, "Calculated buffer (%d) is not equal to bufferSize (%d).\n", calculatedBufferSize, bufferSize);
return -1;
}

uint8_t* byte_buffer = static_cast(buffer);

ret = av_image_copy_to_buffer(byte_buffer, calculatedBufferSize,
(const uint8_t* const*)context->frame->data,
(const int*)context->frame->linesize, static_cast(context->frame->format),
context->frame->width, context->frame->height, 1);
if (ret < 0) {
fprintf(stderr, "Can not copy image to buffer\n");
return ret;
}

return ret;
}
заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/794 ... pencv-umat
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»