如何获取由 DirectFB 创建的 X 窗口的 ID

How do I get the ID of the X Window created by DirectFB?

本文关键字:创建 窗口 ID DirectFB 何获取 获取      更新时间:2023-10-16

我正在为一个使用 DirectFB 和 GStreamer-0.10 的程序开发。我正在使用 GStreamer gstxoverlay库中的gst_x_overlay_set_xwindow_id()来告诉 GStreamer 渲染到 DirectFB 创建的窗口。 gst_x_overlay_set_xwindow_id()要求我给它我想要渲染的 X 窗口的 ID,但我似乎找不到从 DirectFB 获取它的方法。

有没有办法获取DirectFB创建的窗口的X Window ID?如果没有任何简单的方法,有没有办法对 DirectFB 的源文件进行一些黑客攻击来实现这一点?

在你的代码directfb某处必须有类似Window window;行。 尝试将其公开给 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()