video-loop
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
diff --git a/Config.in b/Config.in
index e69de29..e0cbfb1 100644
--- a/Config.in
+++ b/Config.in
@@ -0,0 +1 @@
+source "$BR2_EXTERNAL_TPMDD_PATH/package/video-loop-test/Config.in"
diff --git a/board/pc_x86_64/post-build.sh b/board/pc_x86_64/post-build.sh
index d2e158f..978bb1a 100755
--- a/board/pc_x86_64/post-build.sh
+++ b/board/pc_x86_64/post-build.sh
@@ -9,3 +9,12 @@
ssh-keygen -C 'root@tpmdd' -t rsa -f "$SSH_DIR/id-rsa" -N ''
cp -f $SSH_DIR/{id-rsa.pub,authorized_keys}
+
+BOARD_DIR="$(dirname "$0")"
+
+function install_script {
+ cp -v "${BOARD_DIR}/$1.in" "${TARGET_DIR}/usr/bin/$1"
+ chmod +x "${TARGET_DIR}/usr/bin/$1"
+}
+
+install_script test-video.sh
diff --git a/board/pc_x86_64/run-qemu.sh.in b/board/pc_x86_64/run-qemu.sh.in
index fd9c22d..001fae1 100644
--- a/board/pc_x86_64/run-qemu.sh.in
+++ b/board/pc_x86_64/run-qemu.sh.in
@@ -52,4 +52,5 @@
-tpmdev emulator,id=tpm0,chardev=chrtpm \
-device ${QEMU_TPM_DEVICE},tpmdev=tpm0 \
-bios "$ovmf" \
+ -vga qxl \
$extra_args
diff --git a/board/pc_x86_64/test-video.sh.in b/board/pc_x86_64/test-video.sh.in
new file mode 100755
index 0000000..d2f892b
--- /dev/null
+++ b/board/pc_x86_64/test-video.sh.in
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+
+set -e
+
+echo Starting ffmpeg
+ffmpeg -i /dev/video0 -s "640x480" -vf format=bgra -f fbdev /dev/fb0
+sleep 1
+killall -15 video-loop-test
diff --git a/configs/pc_x86_64_defconfig b/configs/pc_x86_64_defconfig
index dfc6777..241a26e 100644
--- a/configs/pc_x86_64_defconfig
+++ b/configs/pc_x86_64_defconfig
@@ -22,6 +22,8 @@
BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE=y
BR2_PACKAGE_LINUX_TOOLS_SELFTESTS=y
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y
+BR2_PACKAGE_FFMPEG=y
+BR2_PACKAGE_FFMPEG_SWSCALE=y
BR2_PACKAGE_STRACE=y
BR2_PACKAGE_TRACE_CMD=y
BR2_PACKAGE_CA_CERTIFICATES=y
@@ -42,3 +44,4 @@
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y
+BR2_PACKAGE_VIDEO_LOOP_TEST=y
diff --git a/linux/pc_x86_64_defconfig b/linux/pc_x86_64_defconfig
index 1bdd6d1..87ee488 100644
--- a/linux/pc_x86_64_defconfig
+++ b/linux/pc_x86_64_defconfig
@@ -90,7 +90,6 @@
CONFIG_MEDIA_SUPPORT=y
# CONFIG_MEDIA_SUPPORT_FILTER is not set
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-CONFIG_V4L2_LOOPBACK=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_V4L_TEST_DRIVERS=y
CONFIG_DRM=y
diff --git a/package/video-loop-test/Config.in b/package/video-loop-test/Config.in
new file mode 100644
index 0000000..b0a70ee
--- /dev/null
+++ b/package/video-loop-test/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_VIDEO_LOOP_TEST
+ bool "video-loop-test"
+ help
+ video-loop-test is a test application for V4L2 loopback devices.
+
+config BR2_PACKAGE_VIDEO_LOOP_TEST_MINIFB
+ bool "video-loop-test-minifb"
+ depends on BR2_PACKAGE_VIDEO_LOOP_TEST
+ help
+ Enable support for the minifb library, providing display output for
+ debugging.
diff --git a/package/video-loop-test/video-loop-test.mk b/package/video-loop-test/video-loop-test.mk
new file mode 100644
index 0000000..e69b395
--- /dev/null
+++ b/package/video-loop-test/video-loop-test.mk
@@ -0,0 +1,18 @@
+################################################################################
+#
+# video-loop-test
+#
+################################################################################
+
+VIDEO_LOOP_TEST_VERSION = 51415f6
+VIDEO_LOOP_TEST_SITE = https://codeberg.org/jarkko/video-loop-test.git
+VIDEO_LOOP_TEST_SITE_METHOD = git
+VIDEO_LOOP_TEST_SITE_SUBMODULES = YES
+VIDEO_LOOP_TEST_LICENSE = GPL-3.0+
+VIDEO_LOOP_TEST_LICENSE_FILES = LICENSE
+
+ifeq ($(BR2_PACKAGE_VIDEO_LOOP_TEST_MINIFB),y)
+VIDEO_LOOP_TEST_CONF_OPTS += -DMINIFB=1
+endif
+
+$(eval $(cmake-package))