Как сделать так, чтобы QWebView отображался непосредственно в буфер GStreamer?

Я пытаюсь написать простой веб-браузер на основе QT с бэкэндом gstreamer в качестве подтверждения концепции для гораздо более сложной программы. Идея состоит в том, чтобы QWebView визуализировал в буферы gstreamer, которые будут отображаться или передаваться потоком gstreamer в зависимости от предоставленных параметров.

Тем не менее, я очень плохо знаком с QT, и мне не ясно, как заставить QWebView рендериться в бэкэнд по моему выбору. Любые советы будут оценены.

1

Решение

Оказывается, это не так сложно. Имеется GstBuffer * в buf для заполнения:

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;
}
1

Другие решения

Других решений пока нет …