Firefly开源社区

打印 上一主题 下一主题

[应用开发] gstreamer采用waylandsink并绑定到QWidget

78

积分

0

威望

0

贡献

技术小白

积分
78

gstreamer采用waylandsink并绑定到QWidget

发表于 2022-2-17 16:27:23      浏览:2552 | 回复:2        打印      只看该作者   [复制链接] 楼主
我现在在RK3568平台下想基于QT+Gstreamer开发媒体播放器,
gstreamer部分我采用了waylandsink,想将Gstreamer的播放绑定到QT的一个QWidget窗口,现在测试一直绑定失败,请问什么原因啊,我的绑定代码如下:
  1. void QPlayer::setVideoOutput(QWidget *widget, GstElement *pVSink)
  2. {
  3.     guintptr window_handle = 0;
  4.     window_handle = (guintptr)(this->m_pVideoWidgetWnd->winId());
  5.     qDebug()<<"---- setVideoOutput-------:"<<window_handle;
  6.     gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(pVSink), window_handle);
  7. }
复制代码

另外,我也按照https://github.com/xleng/qt-wayl ... /main/qtoverlay.cpp方式进行测试,但是这种方式虽然在我设置界面透明之后能够播放,但是不符合我的需求,请问需要如何去进行绑定我的视频界面到我的QWidget窗口啊,谢谢
回复

使用道具 举报

78

积分

0

威望

0

贡献

技术小白

积分
78
发表于 2022-3-28 09:52:35        只看该作者  沙发
已经解决了,但是采用绑定的方式由于QT的线程刷新机制,多路显示的时候界面会一卡一卡的,最后我是采用了overlay的方式进行实现的,目前3568平台上8路显示效果还可以
回复

使用道具 举报

13

积分

0

威望

0

贡献

技术小白

积分
13
发表于 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又可以恢复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表