package/ffmpeg: add optional dependency to libxcb
authorBernd Kuhls <bernd.kuhls@t-online.de>
Sun, 5 Apr 2020 14:52:07 +0000 (16:52 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 11 Apr 2020 08:57:12 +0000 (10:57 +0200)
ffmpeg 3.3 added optional support for libxcb:
https://git.ffmpeg.org/gitweb/ffmpeg.git/blob/HEAD:/Changelog#l282

This patch ensures a reproducible build of libavdevice.so:

$ readelf -a output/target/usr/lib/libavdevice.so | grep NEEDED
 0x0000000000000001 (NEEDED)             Shared library: [libavfilter.so.7]
 0x0000000000000001 (NEEDED)             Shared library: [libavformat.so.58]
 0x0000000000000001 (NEEDED)             Shared library: [libavcodec.so.58]
 0x0000000000000001 (NEEDED)             Shared library: [libavutil.so.56]
 0x0000000000000001 (NEEDED)             Shared library: [libxcb.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libxcb-shm.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libxcb-shape.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libxcb-xfixes.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.0]

compared to

$ readelf -a output/target/usr/lib/libavdevice.so | grep NEEDED
 0x0000000000000001 (NEEDED)             Shared library: [libavfilter.so.7]
 0x0000000000000001 (NEEDED)             Shared library: [libavformat.so.58]
 0x0000000000000001 (NEEDED)             Shared library: [libavcodec.so.58]
 0x0000000000000001 (NEEDED)             Shared library: [libavutil.so.56]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.0]

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/ffmpeg/Config.in
package/ffmpeg/ffmpeg.mk

index 33baff262e50562052363f3affea51eb0499b8eb..2efef7dd86e687538594db78ebde4e8644efb133 100644 (file)
@@ -67,6 +67,13 @@ config BR2_PACKAGE_FFMPEG_FFPROBE
          FFprobe is a utility to determine the audio and video
          characteristics of a container file.
 
+config BR2_PACKAGE_FFMPEG_XCBGRAB
+       bool "Build X11 screen grabbing"
+       depends on BR2_PACKAGE_XORG7
+       select BR2_PACKAGE_LIBXCB
+       help
+         X11 screen grabbing using libxcb.
+
 config BR2_PACKAGE_FFMPEG_AVRESAMPLE
        bool "Build libavresample"
        help
index b7148bbba2dcb31c78a109ac5e9c6bf7fdcf243c..96455cb97891d049af46223121568d095d451169 100644 (file)
@@ -96,6 +96,17 @@ else
 FFMPEG_CONF_OPTS += --disable-ffprobe
 endif
 
+ifeq ($(BR2_PACKAGE_FFMPEG_XCBGRAB),y)
+FFMPEG_CONF_OPTS += \
+       --enable-libxcb \
+       --enable-libxcb-shape \
+       --enable-libxcb-shm \
+       --enable-libxcb-xfixes
+FFMPEG_DEPENDENCIES += libxcb
+else
+FFMPEG_CONF_OPTS += --disable-libxcb
+endif
+
 ifeq ($(BR2_PACKAGE_FFMPEG_POSTPROC),y)
 FFMPEG_CONF_OPTS += --enable-postproc
 else