gstreamer fbdevsink 可以输出到 Xvfb 虚拟帧缓冲区吗?使用哪个设备?

gstreamer fbdevsink 可以输出到 Xvfb 虚拟帧缓冲区吗?使用哪个设备?

我最近学习了如何使用Xvfb虚拟Linux帧缓冲区:
https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=261264

我希望 gstreamer fbdevsink 输出到虚拟帧缓冲区,但这需要指定设备。但虚拟帧缓冲区没有 /dev/fbX 链接。

那么 fbdevsink 可以输出到虚拟帧缓冲区吗?如果是这样,怎么办?

Xvfb 选项“-fbdir /var/tmp”选项允许对 xwd-header 前缀的虚拟帧缓冲区进行读取访问:

tail --bytes $((1360*768*4)) /var/tmp/Xvfb_screen0 > /dev/fb0

xwd-prefix 的长度为 3232 字节,将单个字节写入 /var/tmp/Xvfb_screen0 会导致总线错误:

$ Xvfb :1 -screen 0 1360x768x24 -fbdir /var/tmp &
[1] 2117
$ DISPLAY=:1 xclock -update 1 &
[2] 2124
$ Warning: Missing charsets in String to FontSet conversion

$ echo -n "x" > /var/tmp/Xvfb_screen0 
$ (EE) 
(EE) Backtrace:
(EE) 
(EE) Bus error at address 0x75f22c04
(EE) 
Fatal server error:
(EE) Caught signal 7 (Bus error). Server aborting
(EE) 
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":1"
      after 692 requests (94 known processed) with 0 events remaining.

[1]-  Aborted                 Xvfb :1 -screen 0 1360x768x24 -fbdir /var/tmp
[2]+  Exit 1                  DISPLAY=:1 xclock -update 1
$

我找不到 Xvfb 的源代码,在哪里可以找到它?

答案1

Xvfb 是 xorg-server 的一部分

git clone https://salsa.debian.org/xorg-team/xserver/xorg-server.git

相关内容