Для проверки можете ввести формулу (sin(x)/x) на сайте https://www.integral-calculator.ru/
и указать пределы от 0 до интересующего значения.
Для Х=5 интеграл равен 1.549931244944674
Да, согласен с Вами. Создаю предложенным Вами способом кадр. Ниже код.
QVideoFrame vframe(m_height*m_width*4,QSize(frame->width, frame->height),frame->width, QVideoFrame::Format_YUV420P);
vframe.map(QAbstractVideoBuffer::MapMode::ReadOnly);
for (int plane=0; plane<3; plane++){
uchar* b=vframe.bits(plane);
AVBufferRef* s=frame->buf[plane];
qDebug()<<"avplane:"<linesize[plane]<<"bufsize:"<size;
memcpy(b, s->data, s->size);
}
vframe.unmap();
_surface->present(vframe);
Т.е. копирую 3 матрицы (plane). Изображение есть, но есть проблемы с цветностью.
Настораживают размеры матриц и lenesize. Т.е. копировать надо как-то по другому.
avplane: 0 linesize: 1920 bufsize: 2092879
avplane: 1 linesize: 960 bufsize: 523279
avplane: 2 linesize: 960 bufsize: 523279
Евгений, спасибо за отклик. Не приведет ли создание memory buffer к лишнему копированию данных? Можно ли передать данные из AVFrame непосредственно в буфер QVideoFrame, копированием данных с помощью memcpy?
SET PATH=%PATH%;C:\Qt\6.5.1\mingw_64\bin
windeployqt.exe ZKI....exe
Только пути ваши укажите правильно.