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

标签 c++ qt gstreamer custom-backend

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

但是,我对 QT 还很陌生,我不清楚如何让 QWebView 呈现到我选择的后端。任何提示将不胜感激。

最佳答案

事实证明这并不难。给定一个 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;
  }

关于c++ - 如何让 QWebView 直接渲染到 GStreamer 缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19775217/

相关文章:

c - Gstreamer C 代码因流停止而失败,原因未协商 (-4)

GSTREAMER 在事件前访问视频

qt - 在qml中动态添加选项卡

qt - 如何使用来自 Qt Creator 的 GDB 进行远程调试?

qt - 在Qt中,如何使用具有多重继承的Q_OBJECT插槽和信号?

python - 将opencv帧写入HLS段文件时出错

c++ - 垒球 C++ 问题 : How to compare two arrays for equality?

c++ - 与 std::inserter 相比,std::back_inserter 有什么好处?

c++ - 如何从模板结构创建二维数组

c++ - 对各种缓冲区的线程访问