Qt GStreamer d3dvideosink覆盖重绘闪烁

Qt GStreamer d3dvideosink覆盖重绘闪烁,qt,gstreamer,direct3d,flicker,Qt,Gstreamer,Direct3d,Flicker,关于d3dvideosink,我一直存在一个问题 我的GStreamer管道是使用Qt/C++中的GStreamer SDK 1.14.2编写的,如下所示: videotestsrc->d3dvideosink 我使用gst\u video\u overlay\u set\u window\u handle将接收器输出放置在相应的QWidget上(使用WId QWidget::winId()const) 流按预期工作,但在小部件(或任何父小部件)重新绘制时(例如,调整大小时)将产生闪烁 如何配

关于d3dvideosink,我一直存在一个问题

我的GStreamer管道是使用Qt/C++中的GStreamer SDK 1.14.2编写的,如下所示: videotestsrc->d3dvideosink

我使用
gst\u video\u overlay\u set\u window\u handle
将接收器输出放置在相应的QWidget上(使用
WId QWidget::winId()const

流按预期工作,但在小部件(或任何父小部件)重新绘制时(例如,调整大小时)将产生闪烁

如何配置widget/pipeline/d3dvideosink/。。。消除闪烁


另外,使用glimagesink而不是d3dvideosink是可行的,但性能较差。

禁用窗口上的Qt重绘。为此:

  • setAttribute(Qt::WA_画屏)
  • 重载paintEngine()以返回null ptr

  • 等我回去工作后,我会继续这样做的。谢谢