• 7103阅读
  • 3回复

请教各位,QT环境显示视频。setPixmap Crashed [复制链接]

上一主题 下一主题
离线dxzk7
 

只看楼主 倒序阅读 楼主  发表于: 2008-09-25
— 本帖被 XChinux 执行加亮操作(2008-09-25) —
我在QT下显示视频,定义了一个Qlabel,QLabel *Video;
Video = new QLabel(this);
将视频转换成GRBA32的数据,data中。
定义一个QImage img(frameRGB->data[0], w, h, 32, 0, 0, QImage::IgnoreEndian);
然后Video->setPixmap(QPixmap(img));显示两帧数据就挂了。提示

APP:xcb_lock.c: 77 _XGetXCBBuffer:assert((int)((xcb_req)->=0) failed.

这是何故,如果有其他显示视频好的办法也希望能提示一下小弟。不胜感激。。。

离线water_wf

只看该作者 1楼 发表于: 2008-09-25
主要在winId();(用于xcb初始化)
窗口设置:
    setAttribute(Qt::WA_PaintOnScreen,true);
    setAttribute(Qt::WA_PaintUnclipped);
离线dxzk7

只看该作者 2楼 发表于: 2008-09-25
thanks a lot。
明天试一下。我又把SDL加到控件里面了。但是在初始化SDL的时候必须先创建一个其他的控件,不如xlib还是要报错。搞不明白。而且。如果我解码后不显示的话,CPU占用7%~%9,我缩放后在用SDL显示YUV的话CPU就直接上20%了。SDL的YUV overlay那么占资源???
离线dxzk7

只看该作者 3楼 发表于: 2008-09-26
QT3下,没有
setAttribute(Qt::WA_PaintOnScreen,true);
setAttribute(Qt::WA_PaintUnclipped);
成员呢。
快速回复
限100 字节
 
上一个 下一个