Files
rpi-buildroot/package/qt6/qt6multimedia/Config.in
Thomas Petazzoni fe783b16b3 package/qt6/qt6multimedia: ffmpeg support needs headers >= 5.2
The V4L2 code in the ffmpeg plugin uses V4L2_PIX_FMT_BGRA32 which was
only introduced in kernel headers 5.2, in upstream kernel commit
e25ec9141114c7124eeba09385e272dd76fbe617.

Fixes:

/home/thomas/buildroot/buildroot/outputs/qt/build/qt6multimedia-6.8.1/src/plugins/multimedia/ffmpeg/qv4l2camera.cpp:36:43: error: ‘V4L2_PIX_FMT_BGRA
32’ was not declared in this scope; did you mean ‘V4L2_PIX_FMT_BGR32’?
   36 |     { QVideoFrameFormat::Format_BGRA8888, V4L2_PIX_FMT_BGRA32  },
      |                                           ^~~~~~~~~~~~~~~~~~~
      |                                           V4L2_PIX_FMT_BGR32

when building:

 BR2_arm=y
 BR2_cortex_a9=y
 BR2_ARM_ENABLE_VFP=y
 BR2_TOOLCHAIN_EXTERNAL=y
 BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
 BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV7_EABIHF_MUSL_STABLE=y
 BR2_PACKAGE_QT6=y
 BR2_PACKAGE_QT6BASE_XCB=y
 BR2_PACKAGE_QT6MULTIMEDIA=y
 BR2_PACKAGE_QT6MULTIMEDIA_FFMPEG=y
 BR2_PACKAGE_XORG7=y

at a time when the Bootlin stable toolchain was using Linux 4.19
headers.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
2025-05-17 11:38:17 +02:00

124 lines
3.8 KiB
Plaintext

config BR2_PACKAGE_QT6MULTIMEDIA
bool "qt6multimedia"
select BR2_PACKAGE_QT6BASE_GUI
select BR2_PACKAGE_QT6BASE_NETWORK
select BR2_PACKAGE_QT6SHADERTOOLS
help
This package provides Qt6 Multimedia:
https://doc.qt.io/qt-6/qtmultimedia-index.html
https://code.qt.io/cgit/qt/qtmultimedia.git
if BR2_PACKAGE_QT6MULTIMEDIA
comment "alsa support requires disabling pulseaudio"
depends on BR2_PACKAGE_QT6MULTIMEDIA_PULSEAUDIO
config BR2_PACKAGE_QT6MULTIMEDIA_ALSA
bool "alsa support"
# qt6-multimedia audio backend requires selection
# of either PulseAudio or ALSA.
depends on !BR2_PACKAGE_QT6MULTIMEDIA_PULSEAUDIO
select BR2_PACKAGE_ALSA_LIB
help
This option selects Alsa as audio backend.
config BR2_PACKAGE_QT6MULTIMEDIA_EXAMPLES
bool "examples"
help
This option enables the Qt6 Multimedia examples.
comment "ffmpeg plugin needs kernel headers >= 5.2"
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2
config BR2_PACKAGE_QT6MULTIMEDIA_FFMPEG
bool "ffmpeg plugin"
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
# V4L2_PIX_FMT_BGRA32
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_2
# qt6-multimedia ffmpeg plugin needs
# qt6base-concurrent, PulseAudio and ffmpeg-swcale.
select BR2_PACKAGE_FFMPEG
select BR2_PACKAGE_FFMPEG_SWSCALE
select BR2_PACKAGE_QT6BASE_CONCURRENT
select BR2_PACKAGE_QT6MULTIMEDIA_PULSEAUDIO
# libxext/libxrandr are needed for ffmpeg plugin to build with
# X11 support:
# https://code.qt.io/cgit/qt/qtmultimedia.git/tree/src/plugins/multimedia/ffmpeg/CMakeLists.txt?h=6.8.1#n198
select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
select BR2_PACKAGE_XLIB_LIBXRANDR if BR2_PACKAGE_XORG7
help
This option enables ffmpeg media backend.
if BR2_PACKAGE_QT6MULTIMEDIA_FFMPEG
comment "VAAPI support needs OpenGL, EGL, libgbm with dma-buf"
depends on !BR2_PACKAGE_QT6_GL_SUPPORTS || \
!BR2_PACKAGE_HAS_LIBEGL || \
!BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF
config BR2_PACKAGE_QT6MULTIMEDIA_VAAPI
bool "vaapi support"
depends on BR2_PACKAGE_QT6_GL_SUPPORTS
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF
select BR2_PACKAGE_LIBVA
# ffmpeg-vaapi support needs qt6base-opengl
select BR2_PACKAGE_QT6BASE_OPENGL
select BR2_PACKAGE_QT6MULTIMEDIA_LINUX_DMA_BUF
help
This option enables the vaapi support.
endif
config BR2_PACKAGE_QT6MULTIMEDIA_GSTREAMER
bool "gstreamer plugin"
# gstreamer 1.x and gst-plugins-base-app are required
# for gstreamer support in qt6-multimedia
select BR2_PACKAGE_GST1_PLUGINS_BASE
select BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_APP
select BR2_PACKAGE_GSTREAMER1
help
This option enables gstreamer media backend.
if BR2_PACKAGE_QT6MULTIMEDIA_GSTREAMER
config BR2_PACKAGE_QT6MULTIMEDIA_GST1_PLUGINS_PHOTOGRAPHY
bool "photography support"
select BR2_PACKAGE_GST1_PLUGINS_BAD
help
This option enables gstreamer-photography support.
endif
comment "dma-buf support needs EGM, libgbm with dma-buf"
depends on !BR2_PACKAGE_HAS_LIBEGL || \
!BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF
config BR2_PACKAGE_QT6MULTIMEDIA_LINUX_DMA_BUF
bool "linux dma buffer support"
# qt6 configure script needs EGL to check for linux dma buffer
# support
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF
help
This option enables the linux dma buffer support.
config BR2_PACKAGE_QT6MULTIMEDIA_PULSEAUDIO
bool "pulseaudio support"
depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
select BR2_PACKAGE_PULSEAUDIO
help
This option selects PulseAudio as audio backend.
config BR2_PACKAGE_QT6MULTIMEDIA_SPATIALAUDIO
bool "spatial audio module"
help
This option enables the Qt6 Spatial Audio module.
https://doc.qt.io/qt-6/qtspatialaudio-index.html
endif