wf908164152 发表于 2022-2-17 16:27:23

gstreamer采用waylandsink并绑定到QWidget

我现在在RK3568平台下想基于QT+Gstreamer开发媒体播放器,
gstreamer部分我采用了waylandsink,想将Gstreamer的播放绑定到QT的一个QWidget窗口,现在测试一直绑定失败,请问什么原因啊,我的绑定代码如下:
void QPlayer::setVideoOutput(QWidget *widget, GstElement *pVSink)
{
    guintptr window_handle = 0;
    window_handle = (guintptr)(this->m_pVideoWidgetWnd->winId());
    qDebug()<<"---- setVideoOutput-------:"<<window_handle;
    gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(pVSink), window_handle);
}
另外,我也按照https://github.com/xleng/qt-waylandsink-sample/blob/main/qtoverlay.cpp方式进行测试,但是这种方式虽然在我设置界面透明之后能够播放,但是不符合我的需求,请问需要如何去进行绑定我的视频界面到我的QWidget窗口啊,谢谢

wf908164152 发表于 2022-3-28 09:52:35

已经解决了,但是采用绑定的方式由于QT的线程刷新机制,多路显示的时候界面会一卡一卡的,最后我是采用了overlay的方式进行实现的,目前3568平台上8路显示效果还可以

tmccmt 发表于 2023-4-28 11:08:43

wf908164152 发表于 2022-3-28 09:52
已经解决了,但是采用绑定的方式由于QT的线程刷新机制,多路显示的时候界面会一卡一卡的,最后我是采用了ov ...

可以贴一下具体的代码吗?我这边使用gst_video_overlay_set_window_handle和gst_video_overlay_set_render_rectangle接口可以绑定waylandsink到widget上,但是偶尔会出现widget黑掉的现象,点击一下widget又可以恢复

853728579 发表于 2024-11-11 16:28:07

你好,能不能把实现方法写得具体一点,谢谢了
页: [1]
查看完整版本: gstreamer采用waylandsink并绑定到QWidget