我正在开发一个使用DirectFB和GStreamer-0.10的程序。我正在使用GStreamer库中的gst_x_overlay_set_xwindow_id()命令GStreamer渲染到DirectFB创建的窗口。gstxoverlay要求我给它一个我想渲染到的X窗口的ID,但是我似乎找不到从DirectFB获得这个ID的方法。
是否有任何方法可以获取由DirectFB创建的窗口的X窗口ID?如果没有任何简单的方法,有没有办法对DirectFB的源文件进行黑客攻击来实现这一点?

最佳答案

在你的Window window;代码中一定有类似于directfb的行。尝试将其公开到gstreamer代码。
从那里取下窗把手,然后可以使用下面的函数

gst_x_overlay_set_window_handle(GST_X_OVERLAY(yoursinkvariable), (guintptr) windowhandle);

不完全按照你的要求,但这也可能解决问题。
此外,gst_x_overlay_set_xwindow_id()已弃用。
从文件上看,
警告
gst_x_overlay_set_xwindow_id已弃用,不应在新编写的代码中使用。改为使用gst_x_overlay_set_window_handle()

10-07 20:20