如何让QWebView直接渲染到GStreamer缓冲区?

时间:2013-11-04 19:11:07

标签: c++ qt gstreamer custom-backend

我希望编写一个简单的基于QT的Web浏览器,其中包含gstreamer后端作为更复杂程序的概念验证。我们的想法是让QWebView渲染到gstreamer缓冲区,gstreamer将根据提供的参数显示或流式传输。

但是,我对QT很新,我不清楚如何让QWebView渲染到我选择的后端。任何提示都将不胜感激。

1 个答案:

答案 0 :(得分:1)

原来并不难。给出buf中的GstBuffer *来填写:

QApplication app;
QWebView web;
web.load(QUrl("www.google.ca"));
web.resize(1024,768);
GstMapInfo inf;
if( !gst_buffer_map(buf,&inf,GST_MAP_WRITE) )
  GST_ERROR("Couldn't map output buffer for writing!");
else
  { QImage img
      ( inf.data
      , 1024, 768
      , 1024*sizeof(uint32)
      , QImage::Format_xRGB
      );

    web.render(&img);   // render our webpage to our image buffer;
    app.processEvents();
    gst_buffer_unmap(buf,&inf);
    return buf;
  }