这段代码只是检查视频帧的大小是否与显示窗口的大小相同,如果不相同就返回错误码。它并没有实际地绘制视频帧。
要在显示窗口上绘制视频帧,可以使用Qt提供的QPainter类。以下是一个基本的示例:
int MainWid::DrawVideo(const Frame *video_frame) {
QSize display_size = ui->ShowWid->size();
QSize video_size(video_frame->width, video_frame->height);
if (display_size != video_size) {
qDebug() << "Video frame size does not match display window size";
return -1;
}
// 创建QImage对象
QImage image(video_frame->data, video_frame->width, video_frame->height, QImage::Format_RGB888);
// 获取QPainter对象
QPainter painter(ui->ShowWid);
// 在显示窗口上绘制图像
painter.drawImage(0, 0, image);
// 更新界面
ui->ShowWid->update();
return 0;
}
这个函数首先创建一个QImage对象,将视频帧数据复制到其中,并指定图像格式为RGB888。然后获取QPainter对象,用它在显示窗口上绘制图像。最后调用ui->ShowWid->update()方法更新界面,显示绘制出来的图像。