mirror of
https://github.com/X11Libre/xf86-video-v4l.git
synced 2026-03-24 09:35:42 +00:00
Compare commits
4 Commits
wip/ci
...
XPRINT_BAS
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0ab6d7eb5e | ||
|
|
11fe587203 | ||
|
|
be350fa186 | ||
|
|
f6186e5b91 |
78
.gitignore
vendored
78
.gitignore
vendored
@@ -1,78 +0,0 @@
|
||||
#
|
||||
# X.Org module default exclusion patterns
|
||||
# The next section if for module specific patterns
|
||||
#
|
||||
# Do not edit the following section
|
||||
# GNU Build System (Autotools)
|
||||
aclocal.m4
|
||||
autom4te.cache/
|
||||
autoscan.log
|
||||
ChangeLog
|
||||
compile
|
||||
config.guess
|
||||
config.h
|
||||
config.h.in
|
||||
config.log
|
||||
config-ml.in
|
||||
config.py
|
||||
config.status
|
||||
config.status.lineno
|
||||
config.sub
|
||||
configure
|
||||
configure.scan
|
||||
depcomp
|
||||
.deps/
|
||||
INSTALL
|
||||
install-sh
|
||||
.libs/
|
||||
libtool
|
||||
libtool.m4
|
||||
ltmain.sh
|
||||
lt~obsolete.m4
|
||||
ltoptions.m4
|
||||
ltsugar.m4
|
||||
ltversion.m4
|
||||
Makefile
|
||||
Makefile.in
|
||||
mdate-sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
*.pc
|
||||
py-compile
|
||||
stamp-h?
|
||||
symlink-tree
|
||||
texinfo.tex
|
||||
ylwrap
|
||||
|
||||
# Do not edit the following section
|
||||
# Edit Compile Debug Document Distribute
|
||||
*~
|
||||
*.[0-9]
|
||||
*.[0-9]x
|
||||
*.bak
|
||||
*.bin
|
||||
core
|
||||
*.dll
|
||||
*.exe
|
||||
*-ISO*.bdf
|
||||
*-JIS*.bdf
|
||||
*-KOI8*.bdf
|
||||
*.kld
|
||||
*.ko
|
||||
*.ko.cmd
|
||||
*.lai
|
||||
*.l[oa]
|
||||
*.[oa]
|
||||
*.obj
|
||||
*.patch
|
||||
*.so
|
||||
*.pcf.gz
|
||||
*.pdb
|
||||
*.tar.bz2
|
||||
*.tar.gz
|
||||
#
|
||||
# Add & Override patterns for xf86-video-v4l
|
||||
#
|
||||
# Edit the following section as needed
|
||||
# For example, !report.pc overrides *.pc. See 'man gitignore'
|
||||
#
|
||||
@@ -1,6 +0,0 @@
|
||||
variables:
|
||||
FDO_UPSTREAM_REPO: 'xorg/driver/xf86-video-v4l'
|
||||
FREEBSD_SKIP: 'true' # only works on Linux
|
||||
|
||||
include:
|
||||
- local: '.gitlab-ci/common/xorg-driver.yml'
|
||||
@@ -1,20 +0,0 @@
|
||||
common CI stuff - supposed to be synced across all drivers
|
||||
|
||||
moving this to a dedicated CI component is left for a later exercise.
|
||||
|
||||
Some scripts can also be used locally, eg. in a VM:
|
||||
|
||||
Prepare the image:
|
||||
|
||||
.gitlab-ci/common/debian/image-install.sh
|
||||
.gitlab-ci/common/freebsd/image-install.sh
|
||||
|
||||
Build the xserver + driver:
|
||||
|
||||
.gitlab-ci/common/build-driver.sh debian <xserver git ref>
|
||||
.gitlab-ci/common/build-driver.sh freebsd <xserver git ref>
|
||||
|
||||
Build just the xserver:
|
||||
|
||||
.gitlab-ci/common/build-xserver.sh debian <xserver git ref>
|
||||
.gitlab-ci/common/build-xserver.sh freebsd <xserver git ref>
|
||||
@@ -1,61 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
PLATFORM="$1"
|
||||
XSERVER_REF="$2"
|
||||
|
||||
if [ ! "$PLATFORM" ]; then
|
||||
echo "missing PLATFORM" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! "$XSERVER_REF" ]; then
|
||||
echo "missing XSERVER_REF" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
.gitlab-ci/common/build-xserver.sh "$PLATFORM" "$XSERVER_REF"
|
||||
|
||||
MACH=`gcc -dumpmachine`
|
||||
echo "Building on machine $MACH"
|
||||
|
||||
case "$PLATFORM" in
|
||||
freebsd)
|
||||
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/libdata/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/libdata/pkgconfig"
|
||||
export ACLOCAL_PATH="/usr/share/aclocal:/usr/local/share/aclocal"
|
||||
export CFLAGS="$CFLAGS -I/usr/local/include"
|
||||
export UDEV_CFLAGS=" "
|
||||
export UDEV_LIBS=" "
|
||||
;;
|
||||
debian)
|
||||
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig"
|
||||
;;
|
||||
*)
|
||||
echo "unknown platform $PLATFORM" >&2
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -f autogen.sh ]; then
|
||||
(
|
||||
echo "building driver via autotools"
|
||||
rm -Rf _builddir
|
||||
mkdir -p _builddir
|
||||
cd _builddir
|
||||
../autogen.sh --disable-silent-rules
|
||||
make
|
||||
make check
|
||||
make distcheck
|
||||
)
|
||||
elif [ -f meson.build ]; then
|
||||
(
|
||||
echo "building driver via meson"
|
||||
meson setup _build
|
||||
cd _build
|
||||
meson compile
|
||||
meson install
|
||||
)
|
||||
else
|
||||
echo "failed detecting build system"
|
||||
exit 1
|
||||
fi
|
||||
@@ -1,71 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
set -x
|
||||
|
||||
PLATFORM="$1"
|
||||
XSERVER_REF="$2"
|
||||
|
||||
if [ ! "$XSERVER_REF" ]; then
|
||||
echo "missing XSERVER_REF variable" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
XSERVER_CLONE=/tmp/xserver
|
||||
XSERVER_BUILD=$XSERVER_CLONE/_builddir
|
||||
XSERVER_REPO=https://gitlab.freedesktop.org/xorg/xserver.git
|
||||
|
||||
MACH=`gcc -dumpmachine`
|
||||
|
||||
export PKG_CONFIG_PATH="/usr/lib/$MACH/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH"
|
||||
export PKG_CONFIG_PATH="/usr/local/lib/$MACH/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:$PKG_CONFIG_PATH"
|
||||
|
||||
echo "cloning xserver"
|
||||
rm -Rf $XSERVER_CLONE
|
||||
git clone --depth=1 -b $XSERVER_REF $XSERVER_REPO $XSERVER_CLONE
|
||||
|
||||
echo "checking platform: $PLATFORM"
|
||||
case "$PLATFORM" in
|
||||
freebsd)
|
||||
echo "Building on FreeBSD"
|
||||
XSERVER_OS_AUTOCONF_FLAGS="--without-dtrace"
|
||||
XSERVER_MESON_DISABLE="glx udev udev_kms"
|
||||
;;
|
||||
debian)
|
||||
echo "Building on Debian"
|
||||
;;
|
||||
*)
|
||||
echo "unknown platform $PLATFORM" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -f $XSERVER_CLONE/meson.build ]; then
|
||||
(
|
||||
echo "Building Xserver via meson"
|
||||
for opt in $XSERVER_MESON_DISABLE ; do
|
||||
if grep "'$opt'" $XSERVER_CLONE/meson_options.txt ; then
|
||||
echo "disable $opt"
|
||||
XSERVER_MESON_FLAGS="$XSERVER_MESON_FLAGS -D$opt=false"
|
||||
else
|
||||
echo "no option $opt"
|
||||
fi
|
||||
done
|
||||
mkdir -p $XSERVER_BUILD
|
||||
cd $XSERVER_BUILD
|
||||
meson setup --prefix=/usr $XSERVER_MESON_FLAGS
|
||||
meson compile
|
||||
meson install
|
||||
)
|
||||
else
|
||||
(
|
||||
echo "Building Xserver via autotools"
|
||||
cd $XSERVER_CLONE
|
||||
# Workaround glvnd having reset the version in gl.pc from what Mesa used
|
||||
# similar to xserver commit e6ef2b12404dfec7f23592a3524d2a63d9d25802
|
||||
sed -i -e 's/gl >= [79].[12].0/gl >= 1.2/' configure.ac
|
||||
./autogen.sh --prefix=/usr $XSERVER_AUTOCONF_FLAGS $XSERVER_OS_AUTOCONF_FLAGS
|
||||
make -j`nproc`
|
||||
make -j`nproc` install
|
||||
)
|
||||
fi
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o xtrace
|
||||
|
||||
echo 'deb-src https://deb.debian.org/debian bullseye main' >>/etc/apt/sources.list.d/deb-src.list
|
||||
echo 'deb-src https://deb.debian.org/debian bullseye-updates main' >>/etc/apt/sources.list.d/deb-src.list
|
||||
apt-get update
|
||||
|
||||
apt-get autoremove -y --purge
|
||||
|
||||
apt-get install -y --no-remove \
|
||||
autoconf \
|
||||
automake \
|
||||
build-essential \
|
||||
libtool \
|
||||
pkg-config \
|
||||
ca-certificates \
|
||||
git \
|
||||
debian-archive-keyring \
|
||||
python3 python3-setuptools libxshmfence-dev \
|
||||
clang \
|
||||
libxvmc-dev libxcb1-dev libx11-xcb-dev libxcb-dri2-0-dev libxcb-util-dev \
|
||||
libxfixes-dev libxcb-xfixes0-dev libxrender-dev libxdamage-dev libxrandr-dev \
|
||||
libxcursor-dev libxss-dev libxinerama-dev libxtst-dev libpng-dev libssl-dev \
|
||||
libxcb-dri3-dev libxxf86vm-dev libxfont-dev libxkbfile-dev libdrm-dev \
|
||||
libgbm-dev libgl1-mesa-dev libpciaccess-dev libpixman-1-dev libudev-dev \
|
||||
libgcrypt-dev libepoxy-dev libevdev-dev libmtdev-dev libinput-dev \
|
||||
mesa-common-dev libspice-protocol-dev libspice-server-dev \
|
||||
meson \
|
||||
nettle-dev \
|
||||
pkg-config \
|
||||
valgrind \
|
||||
x11-xkb-utils xfonts-utils xutils-dev x11proto-dev
|
||||
|
||||
build_autoconf() {
|
||||
local subdir="$1"
|
||||
shift
|
||||
(
|
||||
cd $subdir
|
||||
./autogen.sh "$@"
|
||||
make -j${FDO_CI_CONCURRENT:-4}
|
||||
make -j${FDO_CI_CONCURRENT:-4} install
|
||||
)
|
||||
}
|
||||
|
||||
build_meson() {
|
||||
local subdir="$1"
|
||||
shift
|
||||
(
|
||||
cd $subdir
|
||||
meson _build -Dprefix=/usr "$@"
|
||||
ninja -C _build -j${FDO_CI_CONCURRENT:-4} install
|
||||
)
|
||||
}
|
||||
|
||||
do_clone() {
|
||||
git clone "$1" --depth 1 --branch="$2"
|
||||
}
|
||||
|
||||
mkdir -p /tmp/build-deps
|
||||
cd /tmp/build-deps
|
||||
|
||||
# xserver 1.18 and older branches require libXfont 1.5 instead of 2.0
|
||||
echo "Installing libXfont 1.5"
|
||||
do_clone https://gitlab.freedesktop.org/xorg/lib/libXfont.git libXfont-1.5-branch
|
||||
build_autoconf libXfont
|
||||
|
||||
echo "Installing font-util"
|
||||
do_clone https://gitlab.freedesktop.org/xorg/font/util.git font-util-1.4.1
|
||||
build_autoconf util --prefix=/usr
|
||||
|
||||
echo "Installing libxcvt"
|
||||
do_clone https://gitlab.freedesktop.org/xorg/lib/libxcvt.git libxcvt-0.1.0
|
||||
build_meson libxcvt
|
||||
|
||||
# xserver requires xorgproto >= 2024.1 for XWAYLAND
|
||||
echo "Installing xorgproto"
|
||||
do_clone https://gitlab.freedesktop.org/xorg/proto/xorgproto.git xorgproto-2024.1
|
||||
build_autoconf xorgproto
|
||||
|
||||
# Xwayland requires drm 2.4.116 for drmSyncobjEventfd
|
||||
# xf86-video-freedreno and xf86-video-omap need extra features
|
||||
echo "Installing libdrm"
|
||||
do_clone https://gitlab.freedesktop.org/mesa/drm libdrm-2.4.116
|
||||
build_meson drm -Dfreedreno=enabled -Dnouveau=enabled -Domap=enabled
|
||||
|
||||
rm -Rf /tmp/build-deps
|
||||
@@ -1,8 +0,0 @@
|
||||
# using the latest branch
|
||||
FreeBSD: {
|
||||
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
|
||||
mirror_type: "srv",
|
||||
signature_type: "fingerprints",
|
||||
fingerprints: "/usr/share/keys/pkg",
|
||||
enabled: yes
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
# note: really wanna install to /usr/local, since that's explicitly searched first,
|
||||
# so we always catch the locally installed before any system/ports provided one
|
||||
# otherwise we might run into trouble like trying to use outdated xorgproto
|
||||
build_autoconf() {
|
||||
local subdir="$1"
|
||||
shift
|
||||
(
|
||||
cd $subdir
|
||||
./autogen.sh --prefix=/usr/local "$@"
|
||||
make -j${FDO_CI_CONCURRENT:-4}
|
||||
make -j${FDO_CI_CONCURRENT:-4} install
|
||||
)
|
||||
}
|
||||
|
||||
build_meson() {
|
||||
local subdir="$1"
|
||||
shift
|
||||
(
|
||||
cd $subdir
|
||||
meson _build -Dprefix=/usr/local "$@"
|
||||
ninja -C _build -j${FDO_CI_CONCURRENT:-4} install
|
||||
)
|
||||
}
|
||||
|
||||
do_clone() {
|
||||
git clone "$1" --depth 1 --branch="$2"
|
||||
}
|
||||
|
||||
cp .gitlab-ci/common/freebsd/FreeBSD.conf /etc/pkg
|
||||
|
||||
pkg upgrade -f -y
|
||||
|
||||
pkg install -y \
|
||||
git gcc pkgconf autoconf automake libtool xorg-macros xorgproto meson \
|
||||
ninja pixman xtrans libXau libXdmcp libXfont libXfont2 libxkbfile libxcvt \
|
||||
libpciaccess font-util libepoll-shim libdrm mesa-libs libdrm libglu mesa-dri \
|
||||
libepoxy nettle xkbcomp libXvMC xcb-util valgrind libXcursor libXScrnSaver \
|
||||
libXinerama libXtst evdev-proto libevdev libmtdev libinput spice-protocol \
|
||||
libspice-server
|
||||
|
||||
[ -f /bin/bash ] || ln -sf /usr/local/bin/bash /bin/bash
|
||||
|
||||
# Xwayland requires drm 2.4.116 for drmSyncobjEventfd
|
||||
# xf86-video-freedreno and xf86-video-omap need extra features
|
||||
echo "Installing libdrm"
|
||||
do_clone https://gitlab.freedesktop.org/mesa/drm libdrm-2.4.116
|
||||
(
|
||||
cd drm
|
||||
git config user.email "buildbot@freebsd"
|
||||
git config user.name "FreeBSD build bot"
|
||||
git am ../.gitlab-ci/common/freebsd/libdrm-2.4.116.patch
|
||||
)
|
||||
build_meson drm -Dfreedreno=enabled -Dnouveau=enabled -Domap=enabled
|
||||
|
||||
echo "=== post-install script END"
|
||||
@@ -1,109 +0,0 @@
|
||||
From a87432dbb281ddf1c50a5e78091d38f0dac79416 Mon Sep 17 00:00:00 2001
|
||||
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
|
||||
Date: Fri, 7 Jun 2024 15:18:47 +0200
|
||||
Subject: [PATCH 1/2] fix FTBS on FreeBSD (or non-Linux in general)
|
||||
|
||||
Several drivers still including <linux/stddef.h>, but not using anything
|
||||
from it, thus breaking build on non-Linux platforms (eg. FreeBSD).
|
||||
Since not needed at all, just stop including it.
|
||||
|
||||
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
|
||||
---
|
||||
etnaviv/etnaviv_device.c | 1 -
|
||||
exynos/exynos_drm.c | 1 -
|
||||
exynos/exynos_fimg2d.c | 1 -
|
||||
omap/omap_drm.c | 1 -
|
||||
tests/exynos/exynos_fimg2d_test.c | 1 -
|
||||
5 files changed, 5 deletions(-)
|
||||
|
||||
diff --git a/etnaviv/etnaviv_device.c b/etnaviv/etnaviv_device.c
|
||||
index 699df256..a63bd15d 100644
|
||||
--- a/etnaviv/etnaviv_device.c
|
||||
+++ b/etnaviv/etnaviv_device.c
|
||||
@@ -25,7 +25,6 @@
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
-#include <linux/stddef.h>
|
||||
#include <linux/types.h>
|
||||
#include <errno.h>
|
||||
#include <sys/mman.h>
|
||||
diff --git a/exynos/exynos_drm.c b/exynos/exynos_drm.c
|
||||
index 3e322a17..fb4cd8de 100644
|
||||
--- a/exynos/exynos_drm.c
|
||||
+++ b/exynos/exynos_drm.c
|
||||
@@ -31,7 +31,6 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sys/mman.h>
|
||||
-#include <linux/stddef.h>
|
||||
|
||||
#include <xf86drm.h>
|
||||
|
||||
diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
|
||||
index ac6fa687..f0aee962 100644
|
||||
--- a/exynos/exynos_fimg2d.c
|
||||
+++ b/exynos/exynos_fimg2d.c
|
||||
@@ -30,7 +30,6 @@
|
||||
#include <assert.h>
|
||||
|
||||
#include <sys/mman.h>
|
||||
-#include <linux/stddef.h>
|
||||
|
||||
#include <xf86drm.h>
|
||||
|
||||
diff --git a/omap/omap_drm.c b/omap/omap_drm.c
|
||||
index aa273660..42d35ef7 100644
|
||||
--- a/omap/omap_drm.c
|
||||
+++ b/omap/omap_drm.c
|
||||
@@ -27,7 +27,6 @@
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
-#include <linux/stddef.h>
|
||||
#include <linux/types.h>
|
||||
#include <errno.h>
|
||||
#include <sys/mman.h>
|
||||
diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
|
||||
index d85e2f6b..b1baa503 100644
|
||||
--- a/tests/exynos/exynos_fimg2d_test.c
|
||||
+++ b/tests/exynos/exynos_fimg2d_test.c
|
||||
@@ -31,7 +31,6 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#include <sys/mman.h>
|
||||
-#include <linux/stddef.h>
|
||||
|
||||
#include <xf86drm.h>
|
||||
#include <xf86drmMode.h>
|
||||
--
|
||||
2.39.2
|
||||
|
||||
From 79123db12c6c5f42747fae02068b482055e8c376 Mon Sep 17 00:00:00 2001
|
||||
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
|
||||
Date: Fri, 7 Jun 2024 15:43:13 +0200
|
||||
Subject: [PATCH 2/2] omap: fix FTBS on FreeBSD and drop unneeded include
|
||||
|
||||
No need to explicitly include <linux/types.h>, since drm.h already does that,
|
||||
but conditionally only Linux only.
|
||||
|
||||
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
|
||||
---
|
||||
omap/omap_drm.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/omap/omap_drm.c b/omap/omap_drm.c
|
||||
index 42d35ef7..93d2207f 100644
|
||||
--- a/omap/omap_drm.c
|
||||
+++ b/omap/omap_drm.c
|
||||
@@ -27,7 +27,6 @@
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
-#include <linux/types.h>
|
||||
#include <errno.h>
|
||||
#include <sys/mman.h>
|
||||
#include <fcntl.h>
|
||||
--
|
||||
2.39.2
|
||||
|
||||
@@ -1,219 +0,0 @@
|
||||
# version 0.1.22
|
||||
variables:
|
||||
DEBIAN_VERSION: 'bookworm-slim'
|
||||
DEBIAN_TAG: "2025-03-07"
|
||||
DEBIAN_EXEC: 'bash .gitlab-ci/common/debian/image-install.sh'
|
||||
DEBIAN_SKIP: "false" # to enable, it has to be litterally "true"
|
||||
|
||||
FREEBSD_TAG: '2025-03-07'
|
||||
FREEBSD_VERSION: '14.2'
|
||||
# image is yet too small for that - need a more complicated way :(
|
||||
# FREEBSD_EXEC: "bash .gitlab-ci/common/freebsd/image-install.sh"
|
||||
FREEBSD_SKIP: "false" # to enable, it has to be litterally "true"
|
||||
|
||||
.templates_sha: &template_sha ef5e4669b7500834a17ffe9277e15fbb6d977fff # see https://docs.gitlab.com/ee/ci/yaml/#includefile
|
||||
|
||||
include:
|
||||
- project: 'freedesktop/ci-templates'
|
||||
ref: *template_sha
|
||||
file: '/templates/debian.yml'
|
||||
- project: 'freedesktop/ci-templates'
|
||||
ref: *template_sha
|
||||
file: '/templates/freebsd.yml'
|
||||
- project: 'freedesktop/ci-templates'
|
||||
ref: *template_sha
|
||||
file: '/templates/ci-fairy.yml'
|
||||
- template: Security/SAST.gitlab-ci.yml
|
||||
|
||||
stages:
|
||||
- images
|
||||
- build
|
||||
- test
|
||||
|
||||
# standard commits quality check
|
||||
check-commits:
|
||||
extends:
|
||||
- .fdo.ci-fairy
|
||||
stage: test
|
||||
script:
|
||||
- ci-fairy check-commits --junit-xml=results.xml
|
||||
except:
|
||||
- master@$FDO_UPSTREAM_REPO
|
||||
variables:
|
||||
GIT_DEPTH: 100
|
||||
artifacts:
|
||||
reports:
|
||||
junit: results.xml
|
||||
allow_failure: true
|
||||
needs:
|
||||
|
||||
# standard merge request quality checks
|
||||
check-merge-request:
|
||||
extends:
|
||||
- .fdo.ci-fairy
|
||||
stage: test
|
||||
script:
|
||||
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=results.xml
|
||||
artifacts:
|
||||
when: on_failure
|
||||
reports:
|
||||
junit: results.xml
|
||||
allow_failure: true
|
||||
needs:
|
||||
|
||||
# create debian build image
|
||||
image@debian@amd64:
|
||||
extends:
|
||||
- .xorg.distro@debian@amd64
|
||||
- .fdo.container-build@debian
|
||||
stage: images
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
rules:
|
||||
- if: $DEBIAN_SKIP != "true"
|
||||
when: always
|
||||
needs:
|
||||
|
||||
image@debian@i386:
|
||||
extends:
|
||||
- .xorg.distro@debian@i386
|
||||
- .fdo.container-build@debian
|
||||
stage: images
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
rules:
|
||||
- if: $DEBIAN_SKIP != "true"
|
||||
when: always
|
||||
needs:
|
||||
|
||||
# inherit this to define FDO_DISTRIBUTION_* variables for Debian
|
||||
.xorg.distro@debian@amd64:
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: "$DEBIAN_VERSION"
|
||||
FDO_DISTRIBUTION_EXEC: "$DEBIAN_EXEC"
|
||||
FDO_DISTRIBUTION_TAG: "amd64-$DEBIAN_TAG"
|
||||
FDO_DISTRIBUTION_PLATFORM: "amd64"
|
||||
FDO_BASE_IMAGE: "amd64/debian:$DEBIAN_VERSION"
|
||||
|
||||
.xorg.distro@debian@i386:
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: "$DEBIAN_VERSION"
|
||||
FDO_DISTRIBUTION_EXEC: "$DEBIAN_EXEC"
|
||||
FDO_DISTRIBUTION_TAG: "i386-$DEBIAN_TAG"
|
||||
FDO_DISTRIBUTION_PLATFORM: "i386"
|
||||
FDO_BASE_IMAGE: "i386/debian:$DEBIAN_VERSION"
|
||||
|
||||
# overwrite this one if another matrix is needed
|
||||
.xorg.driver_matrix@debian:
|
||||
parallel:
|
||||
matrix:
|
||||
- CC: [ "gcc", "clang" ]
|
||||
XSERVER_REF: [
|
||||
# these break on Debian
|
||||
# "xorg-server-1.18.4",
|
||||
# "xorg-server-1.19.7",
|
||||
# "xorg-server-1.20.14",
|
||||
# "xorg-server-21.0.99.1",
|
||||
"xorg-server-21.1.16",
|
||||
"master"
|
||||
]
|
||||
|
||||
# default build with meson on Debian
|
||||
.xorg.driver_common@debian:
|
||||
needs:
|
||||
- image@debian@i386
|
||||
- image@debian@amd64
|
||||
extends:
|
||||
- .fdo.distribution-image@debian
|
||||
stage: build
|
||||
script:
|
||||
- .gitlab-ci/common/build-driver.sh "debian" "$XSERVER_REF"
|
||||
variables:
|
||||
CFLAGS: "-pipe -g -O2"
|
||||
rules:
|
||||
- if: $DEBIAN_SKIP != "true"
|
||||
when: always
|
||||
|
||||
# overwrite this when you need some special Debian build
|
||||
build@debian@amd64:
|
||||
extends:
|
||||
- .xorg.driver_matrix@debian
|
||||
- .xorg.driver_common@debian
|
||||
- .xorg.distro@debian@amd64
|
||||
|
||||
build@debian@i386:
|
||||
extends:
|
||||
- .xorg.driver_matrix@debian
|
||||
- .xorg.driver_common@debian
|
||||
- .xorg.distro@debian@i386
|
||||
|
||||
# inherit this to define FDO_DISTRIBUTION_* variables for FreeBSD
|
||||
.xorg.distro@freebsd:
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: "$FREEBSD_VERSION"
|
||||
FDO_DISTRIBUTION_EXEC: "$FREEBSD_EXEC"
|
||||
FDO_DISTRIBUTION_TAG: "$FREEBSD_TAG"
|
||||
|
||||
# create base image for FreeBSD
|
||||
image@freebsd:
|
||||
extends:
|
||||
- .xorg.distro@freebsd
|
||||
- .fdo.qemu-build@freebsd@x86_64
|
||||
stage: images
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
rules:
|
||||
- if: $FREEBSD_SKIP != "true"
|
||||
when: always
|
||||
|
||||
# inherit this to get the default build matrix
|
||||
.xorg.driver_matrix@freebsd:
|
||||
parallel:
|
||||
matrix:
|
||||
- CC: [ "gcc", "clang" ]
|
||||
XSERVER_REF: [
|
||||
# "xorg-server-1.18.4", # this breaks due name clash on "bool"
|
||||
# "xorg-server-1.19.7",
|
||||
# "xorg-server-1.20.14", # breaks meson ... see: 331850ce6f0c48a1cfc489da2a27ca0220997a2f -- server-1.20-branch
|
||||
"xorg-server-21.0.99.1",
|
||||
"xorg-server-21.1.16",
|
||||
"master"
|
||||
]
|
||||
|
||||
# common build for driver on FreeBSD. meson and autoconf are both handled by this
|
||||
.xorg.driver_common@freebsd:
|
||||
needs:
|
||||
- image@freebsd
|
||||
stage: build
|
||||
extends:
|
||||
- .fdo.distribution-image@freebsd
|
||||
- .xorg.distro@freebsd
|
||||
script:
|
||||
# FIXME: increasing image and running image-install.sh should be done
|
||||
# at container image build time, but would have to replicate too much
|
||||
# of the cbuild script here. better wait until CI folks have increased
|
||||
# the image size or provide hooks for that
|
||||
- xz -d -T0 /app/image.raw.xz
|
||||
- rm -f /app/image.raw.xz
|
||||
- truncate -s +5G /app/image.raw
|
||||
- /app/vmctl start
|
||||
- set +e
|
||||
- /app/vmctl exec "service growfs onestart"
|
||||
- scp -r $PWD "vm:"
|
||||
- /app/vmctl exec "cd $CI_PROJECT_NAME && .gitlab-ci/common/freebsd/image-install.sh"
|
||||
- /app/vmctl exec "cd $CI_PROJECT_NAME && .gitlab-ci/common/build-driver.sh freebsd $XSERVER_REF" && touch .success
|
||||
# copy any test results from the VM to our container so we can
|
||||
# save them as artifacts
|
||||
- scp -r vm:$CI_PROJECT_NAME/test-results.xml . || true # this is allowed to fail
|
||||
- /app/vmctl stop
|
||||
- set -e
|
||||
- test -e .success || exit 1
|
||||
rules:
|
||||
- if: $FREEBSD_SKIP != "true"
|
||||
when: always
|
||||
|
||||
# overwrite this if you need some special FreeBSD build
|
||||
build@freebsd:
|
||||
extends:
|
||||
- .xorg.driver_matrix@freebsd
|
||||
- .xorg.driver_common@freebsd
|
||||
12
COPYING
12
COPYING
@@ -1,12 +0,0 @@
|
||||
This is a stub file. This package has not yet had its complete licensing
|
||||
information compiled. Please see the individual source files for details on
|
||||
your rights to use and modify this software.
|
||||
|
||||
Please submit updated COPYING files to the Xorg bugzilla:
|
||||
|
||||
https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
|
||||
|
||||
All licensing questions regarding this software should be directed at the
|
||||
Xorg mailing list:
|
||||
|
||||
http://lists.freedesktop.org/mailman/listinfo/xorg
|
||||
32
Makefile.am
32
Makefile.am
@@ -1,32 +0,0 @@
|
||||
# Copyright 2005 Adam Jackson.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# on the rights to use, copy, modify, merge, publish, distribute, sub
|
||||
# license, and/or sell copies of the Software, and to permit persons to whom
|
||||
# the Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
SUBDIRS = src man
|
||||
MAINTAINERCLEANFILES = ChangeLog INSTALL
|
||||
|
||||
.PHONY: ChangeLog INSTALL
|
||||
|
||||
INSTALL:
|
||||
$(INSTALL_CMD)
|
||||
|
||||
ChangeLog:
|
||||
$(CHANGELOG_CMD)
|
||||
|
||||
dist-hook: ChangeLog INSTALL
|
||||
2
README
2
README
@@ -34,4 +34,4 @@
|
||||
|
||||
|
||||
|
||||
$XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/README,v 1.2 2001/05/07 21:59:07 tsi Exp $
|
||||
$XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/README,v 1.1 1999/03/28 15:32:50 dawes Exp $
|
||||
|
||||
15
autogen.sh
15
autogen.sh
@@ -1,15 +0,0 @@
|
||||
#! /bin/sh
|
||||
|
||||
srcdir=`dirname $0`
|
||||
test -z "$srcdir" && srcdir=.
|
||||
|
||||
ORIGDIR=`pwd`
|
||||
cd $srcdir
|
||||
|
||||
autoreconf -v --install || exit 1
|
||||
cd $ORIGDIR || exit $?
|
||||
|
||||
git config --local --get format.subjectPrefix >/dev/null 2>&1 ||
|
||||
git config --local format.subjectPrefix "PATCH xf86-video-v4l"
|
||||
|
||||
$srcdir/configure --enable-maintainer-mode "$@"
|
||||
77
configure.ac
77
configure.ac
@@ -1,77 +0,0 @@
|
||||
# Copyright 2005 Adam Jackson.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# on the rights to use, copy, modify, merge, publish, distribute, sub
|
||||
# license, and/or sell copies of the Software, and to permit persons to whom
|
||||
# the Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Process this file with autoconf to produce a configure script
|
||||
|
||||
# Initialize Autoconf
|
||||
AC_PREREQ([2.60])
|
||||
AC_INIT([xf86-video-v4l],
|
||||
[0.3.0],
|
||||
[https://gitlab.freedesktop.org/xorg/driver/xf86-video-v4l/issues],
|
||||
[xf86-video-v4l])
|
||||
AC_CONFIG_SRCDIR([Makefile.am])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_AUX_DIR(.)
|
||||
|
||||
# Initialize Automake
|
||||
AM_INIT_AUTOMAKE([foreign dist-xz])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
|
||||
m4_ifndef([XORG_MACROS_VERSION],
|
||||
[m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])])
|
||||
XORG_MACROS_VERSION(1.8)
|
||||
XORG_DEFAULT_OPTIONS
|
||||
|
||||
# Initialize libtool
|
||||
LT_INIT([disable-static])
|
||||
|
||||
AH_TOP([#include "xorg-server.h"])
|
||||
|
||||
# Define a configure option for an alternate module directory
|
||||
AC_ARG_WITH(xorg-module-dir,
|
||||
AS_HELP_STRING([--with-xorg-module-dir=DIR],
|
||||
[Default xorg module directory [[default=$libdir/xorg/modules]]]),
|
||||
[moduledir="$withval"],
|
||||
[moduledir="$libdir/xorg/modules"])
|
||||
|
||||
# Store the list of server defined optional extensions in REQUIRED_MODULES
|
||||
XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
|
||||
XORG_DRIVER_CHECK_EXT(XV, videoproto)
|
||||
|
||||
# Obtain compiler/linker options for the driver dependencies
|
||||
PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto $REQUIRED_MODULES])
|
||||
|
||||
# Checks for library functions
|
||||
# We don't use strlcat or strlcpy, but check to quiet a -Wredundant-decls warning
|
||||
# from xorg/os.h which will otherwise redefine it.
|
||||
AC_CHECK_FUNCS([strlcat strlcpy])
|
||||
|
||||
AC_SUBST([moduledir])
|
||||
|
||||
DRIVER_NAME=v4l
|
||||
AC_SUBST([DRIVER_NAME])
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
src/Makefile
|
||||
man/Makefile
|
||||
])
|
||||
AC_OUTPUT
|
||||
@@ -1,41 +0,0 @@
|
||||
#
|
||||
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
# and/or sell copies of the Software, and to permit persons to whom the
|
||||
# Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
# DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
|
||||
drivermandir = $(DRIVER_MAN_DIR)
|
||||
|
||||
driverman_PRE = @DRIVER_NAME@.man
|
||||
|
||||
driverman_DATA = $(driverman_PRE:man=@DRIVER_MAN_SUFFIX@)
|
||||
|
||||
EXTRA_DIST = @DRIVER_NAME@.man
|
||||
|
||||
CLEANFILES = $(driverman_DATA)
|
||||
|
||||
|
||||
# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
|
||||
|
||||
|
||||
SUFFIXES = .$(DRIVER_MAN_SUFFIX) .man
|
||||
|
||||
.man.$(DRIVER_MAN_SUFFIX):
|
||||
$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
|
||||
14
man/v4l.man
14
man/v4l.man
@@ -13,13 +13,13 @@ v4l \- video4linux driver
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
.B v4l
|
||||
is an __xservername__ driver for video4linux cards. It provides a Xvideo
|
||||
extension port for video overlay. Just add the driver to the module
|
||||
list within the module section of your __xconfigfile__ file if you want
|
||||
is an XFree86 driver for video4linux cards. It provides a Xvideo
|
||||
extention port for video overlay. Just add the driver to the module
|
||||
list within the module section of your XF86Config file if you want
|
||||
to use it. There are no config options.
|
||||
.P
|
||||
Note that the extmod module is also required for the Xvideo
|
||||
support (and lots of other extensions too).
|
||||
Note that the the extmod module is also required for the Xvideo
|
||||
support (and lots of other extentions too).
|
||||
.SH SUPPORTED HARDWARE
|
||||
The
|
||||
.B v4l
|
||||
@@ -30,10 +30,10 @@ overlay.
|
||||
bt848/bt878-based TV cards are the most popular hardware these
|
||||
days.
|
||||
.SH CONFIGURATION DETAILS
|
||||
Please refer to __xconfigfile__(__filemansuffix__) for general configuration
|
||||
Please refer to XF86Config(__filemansuffix__) for general configuration
|
||||
details. This section only covers configuration details specific to this
|
||||
driver.
|
||||
.SH "SEE ALSO"
|
||||
__xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
|
||||
XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(__miscmansuffix__)
|
||||
.SH AUTHORS
|
||||
Authors include: Gerd Knorr <kraxel@bytesex.org>
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
# Copyright 2005 Adam Jackson.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||
# copy of this software and associated documentation files (the "Software"),
|
||||
# to deal in the Software without restriction, including without limitation
|
||||
# on the rights to use, copy, modify, merge, publish, distribute, sub
|
||||
# license, and/or sell copies of the Software, and to permit persons to whom
|
||||
# the Software is furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice (including the next
|
||||
# paragraph) shall be included in all copies or substantial portions of the
|
||||
# Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
# this is obnoxious:
|
||||
# -module lets us name the module exactly how we want
|
||||
# -avoid-version prevents gratuitous .0.0.0 version numbers on the end
|
||||
# _ladir passes a dummy rpath to libtool so the thing will actually link
|
||||
# TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
|
||||
AM_CFLAGS = $(BASE_CFLAGS) $(XORG_CFLAGS)
|
||||
v4l_drv_la_LTLIBRARIES = v4l_drv.la
|
||||
v4l_drv_la_LDFLAGS = -module -avoid-version
|
||||
v4l_drv_ladir = @moduledir@/drivers
|
||||
|
||||
v4l_drv_la_SOURCES = \
|
||||
v4l.c \
|
||||
videodev2.h
|
||||
255
src/videodev.h
Normal file
255
src/videodev.h
Normal file
@@ -0,0 +1,255 @@
|
||||
#ifndef __LINUX_VIDEODEV_H
|
||||
#define __LINUX_VIDEODEV_H
|
||||
|
||||
/* Linux V4L API, Version 1
|
||||
* videodev.h from v4l driver in Linux 2.2.3
|
||||
*
|
||||
* Used here with the explicit permission of the original author, Alan Cox.
|
||||
* <alan@lxorguk.ukuu.org.uk>
|
||||
*/
|
||||
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/videodev.h,v 1.7tsi Exp $ */
|
||||
|
||||
#include "Xmd.h"
|
||||
|
||||
#define VID_TYPE_CAPTURE 1 /* Can capture */
|
||||
#define VID_TYPE_TUNER 2 /* Can tune */
|
||||
#define VID_TYPE_TELETEXT 4 /* Does teletext */
|
||||
#define VID_TYPE_OVERLAY 8 /* Overlay onto frame buffer */
|
||||
#define VID_TYPE_CHROMAKEY 16 /* Overlay by chromakey */
|
||||
#define VID_TYPE_CLIPPING 32 /* Can clip */
|
||||
#define VID_TYPE_FRAMERAM 64 /* Uses the frame buffer memory */
|
||||
#define VID_TYPE_SCALES 128 /* Scalable */
|
||||
#define VID_TYPE_MONOCHROME 256 /* Monochrome only */
|
||||
#define VID_TYPE_SUBCAPTURE 512 /* Can capture subareas of the image */
|
||||
|
||||
struct video_capability
|
||||
{
|
||||
char name[32];
|
||||
int type;
|
||||
int channels; /* Num channels */
|
||||
int audios; /* Num audio devices */
|
||||
int maxwidth; /* Supported width */
|
||||
int maxheight; /* And height */
|
||||
int minwidth; /* Supported width */
|
||||
int minheight; /* And height */
|
||||
};
|
||||
|
||||
|
||||
struct video_channel
|
||||
{
|
||||
int channel;
|
||||
char name[32];
|
||||
int tuners;
|
||||
CARD32 flags;
|
||||
#define VIDEO_VC_TUNER 1 /* Channel has a tuner */
|
||||
#define VIDEO_VC_AUDIO 2 /* Channel has audio */
|
||||
CARD16 type;
|
||||
#define VIDEO_TYPE_TV 1
|
||||
#define VIDEO_TYPE_CAMERA 2
|
||||
CARD16 norm; /* Norm set by channel */
|
||||
};
|
||||
|
||||
struct video_tuner
|
||||
{
|
||||
int tuner;
|
||||
char name[32];
|
||||
unsigned long rangelow, rangehigh; /* Tuner range */
|
||||
CARD32 flags;
|
||||
#define VIDEO_TUNER_PAL 1
|
||||
#define VIDEO_TUNER_NTSC 2
|
||||
#define VIDEO_TUNER_SECAM 4
|
||||
#define VIDEO_TUNER_LOW 8 /* Uses KHz not MHz */
|
||||
#define VIDEO_TUNER_NORM 16 /* Tuner can set norm */
|
||||
#define VIDEO_TUNER_STEREO_ON 128 /* Tuner is seeing stereo */
|
||||
CARD16 mode; /* PAL/NTSC/SECAM/OTHER */
|
||||
#define VIDEO_MODE_PAL 0
|
||||
#define VIDEO_MODE_NTSC 1
|
||||
#define VIDEO_MODE_SECAM 2
|
||||
#define VIDEO_MODE_AUTO 3
|
||||
CARD16 signal; /* Signal strength 16bit scale */
|
||||
};
|
||||
|
||||
struct video_picture
|
||||
{
|
||||
CARD16 brightness;
|
||||
CARD16 hue;
|
||||
CARD16 colour;
|
||||
CARD16 contrast;
|
||||
CARD16 whiteness; /* Black and white only */
|
||||
CARD16 depth; /* Capture depth */
|
||||
CARD16 palette; /* Palette in use */
|
||||
#define VIDEO_PALETTE_GREY 1 /* Linear greyscale */
|
||||
#define VIDEO_PALETTE_HI240 2 /* High 240 cube (BT848) */
|
||||
#define VIDEO_PALETTE_RGB565 3 /* 565 16 bit RGB */
|
||||
#define VIDEO_PALETTE_RGB24 4 /* 24bit RGB */
|
||||
#define VIDEO_PALETTE_RGB32 5 /* 32bit RGB */
|
||||
#define VIDEO_PALETTE_RGB555 6 /* 555 15bit RGB */
|
||||
#define VIDEO_PALETTE_YUV422 7 /* YUV422 capture */
|
||||
#define VIDEO_PALETTE_YUYV 8
|
||||
#define VIDEO_PALETTE_UYVY 9 /* The great thing about standards is ... */
|
||||
#define VIDEO_PALETTE_YUV420 10
|
||||
#define VIDEO_PALETTE_YUV411 11 /* YUV411 capture */
|
||||
#define VIDEO_PALETTE_RAW 12 /* RAW capture (BT848) */
|
||||
#define VIDEO_PALETTE_YUV422P 13 /* YUV 4:2:2 Planar */
|
||||
#define VIDEO_PALETTE_YUV411P 14 /* YUV 4:1:1 Planar */
|
||||
#define VIDEO_PALETTE_YUV420P 15 /* YUV 4:2:0 Planar */
|
||||
#define VIDEO_PALETTE_YUV410P 16 /* YUV 4:1:0 Planar */
|
||||
#define VIDEO_PALETTE_PLANAR 13 /* start of planar entries */
|
||||
#define VIDEO_PALETTE_COMPONENT 7 /* start of component entries */
|
||||
};
|
||||
|
||||
struct video_audio
|
||||
{
|
||||
int audio; /* Audio channel */
|
||||
CARD16 volume; /* If settable */
|
||||
CARD16 bass, treble;
|
||||
CARD32 flags;
|
||||
#define VIDEO_AUDIO_MUTE 1
|
||||
#define VIDEO_AUDIO_MUTABLE 2
|
||||
#define VIDEO_AUDIO_VOLUME 4
|
||||
#define VIDEO_AUDIO_BASS 8
|
||||
#define VIDEO_AUDIO_TREBLE 16
|
||||
char name[16];
|
||||
#define VIDEO_SOUND_MONO 1
|
||||
#define VIDEO_SOUND_STEREO 2
|
||||
#define VIDEO_SOUND_LANG1 4
|
||||
#define VIDEO_SOUND_LANG2 8
|
||||
CARD16 mode;
|
||||
CARD16 balance; /* Stereo balance */
|
||||
CARD16 step; /* Step actual volume uses */
|
||||
};
|
||||
|
||||
struct video_clip
|
||||
{
|
||||
INT32 x,y;
|
||||
INT32 width, height;
|
||||
struct video_clip *next; /* For user use/driver use only */
|
||||
};
|
||||
|
||||
struct video_window
|
||||
{
|
||||
CARD32 x,y; /* Position of window */
|
||||
CARD32 width,height; /* Its size */
|
||||
CARD32 chromakey;
|
||||
CARD32 flags;
|
||||
struct video_clip *clips; /* Set only */
|
||||
int clipcount;
|
||||
#define VIDEO_WINDOW_INTERLACE 1
|
||||
#define VIDEO_CLIP_BITMAP -1
|
||||
/* bitmap is 1024x625, a '1' bit represents a clipped pixel */
|
||||
#define VIDEO_CLIPMAP_SIZE (128 * 625)
|
||||
};
|
||||
|
||||
struct video_capture
|
||||
{
|
||||
CARD32 x,y; /* Offsets into image */
|
||||
CARD32 width, height; /* Area to capture */
|
||||
CARD16 decimation; /* Decimation divder */
|
||||
CARD16 flags; /* Flags for capture */
|
||||
#define VIDEO_CAPTURE_ODD 0 /* Temporal */
|
||||
#define VIDEO_CAPTURE_EVEN 1
|
||||
};
|
||||
|
||||
struct video_buffer
|
||||
{
|
||||
void *base;
|
||||
int height,width;
|
||||
int depth;
|
||||
int bytesperline;
|
||||
};
|
||||
|
||||
struct video_mmap
|
||||
{
|
||||
unsigned int frame; /* Frame (0 - n) for double buffer */
|
||||
int height,width;
|
||||
unsigned int format; /* should be VIDEO_PALETTE_* */
|
||||
};
|
||||
|
||||
struct video_key
|
||||
{
|
||||
CARD8 key[8];
|
||||
CARD32 flags;
|
||||
};
|
||||
|
||||
|
||||
#define VIDEO_MAX_FRAME 32
|
||||
|
||||
struct video_mbuf
|
||||
{
|
||||
int size; /* Total memory to map */
|
||||
int frames; /* Frames */
|
||||
int offsets[VIDEO_MAX_FRAME];
|
||||
};
|
||||
|
||||
|
||||
#define VIDEO_NO_UNIT (-1)
|
||||
|
||||
|
||||
struct video_unit
|
||||
{
|
||||
int video; /* Video minor */
|
||||
int vbi; /* VBI minor */
|
||||
int radio; /* Radio minor */
|
||||
int audio; /* Audio minor */
|
||||
int teletext; /* Teletext minor */
|
||||
};
|
||||
|
||||
#define VIDIOCGCAP _IOR('v',1,struct video_capability) /* Get capabilities */
|
||||
#define VIDIOCGCHAN _IOWR('v',2,struct video_channel) /* Get channel info (sources) */
|
||||
#define VIDIOCSCHAN _IOW('v',3,struct video_channel) /* Set channel */
|
||||
#define VIDIOCGTUNER _IOWR('v',4,struct video_tuner) /* Get tuner abilities */
|
||||
#define VIDIOCSTUNER _IOW('v',5,struct video_tuner) /* Tune the tuner for the current channel */
|
||||
#define VIDIOCGPICT _IOR('v',6,struct video_picture) /* Get picture properties */
|
||||
#define VIDIOCSPICT _IOW('v',7,struct video_picture) /* Set picture properties */
|
||||
#define VIDIOCCAPTURE _IOW('v',8,int) /* Start, end capture */
|
||||
#define VIDIOCGWIN _IOR('v',9, struct video_window) /* Set the video overlay window */
|
||||
#define VIDIOCSWIN _IOW('v',10, struct video_window) /* Set the video overlay window - passes clip list for hardware smarts , chromakey etc */
|
||||
#define VIDIOCGFBUF _IOR('v',11, struct video_buffer) /* Get frame buffer */
|
||||
#define VIDIOCSFBUF _IOW('v',12, struct video_buffer) /* Set frame buffer - root only */
|
||||
#define VIDIOCKEY _IOR('v',13, struct video_key) /* Video key event - to dev 255 is to all - cuts capture on all DMA windows with this key (0xFFFFFFFF == all) */
|
||||
#define VIDIOCGFREQ _IOR('v',14, unsigned long) /* Set tuner */
|
||||
#define VIDIOCSFREQ _IOW('v',15, unsigned long) /* Set tuner */
|
||||
#define VIDIOCGAUDIO _IOR('v',16, struct video_audio) /* Get audio info */
|
||||
#define VIDIOCSAUDIO _IOW('v',17, struct video_audio) /* Audio source, mute etc */
|
||||
#define VIDIOCSYNC _IOW('v',18, int) /* Sync with mmap grabbing */
|
||||
#define VIDIOCMCAPTURE _IOW('v',19, struct video_mmap) /* Grab frames */
|
||||
#define VIDIOCGMBUF _IOR('v', 20, struct video_mbuf) /* Memory map buffer info */
|
||||
#define VIDIOCGUNIT _IOR('v', 21, struct video_unit) /* Get attached units */
|
||||
#define VIDIOCGCAPTURE _IOR('v',22, struct video_capture) /* Get frame buffer */
|
||||
#define VIDIOCSCAPTURE _IOW('v',23, struct video_capture) /* Set frame buffer - root only */
|
||||
|
||||
#define BASE_VIDIOCPRIVATE 192 /* 192-255 are private */
|
||||
|
||||
|
||||
#define VID_HARDWARE_BT848 1
|
||||
#define VID_HARDWARE_QCAM_BW 2
|
||||
#define VID_HARDWARE_PMS 3
|
||||
#define VID_HARDWARE_QCAM_C 4
|
||||
#define VID_HARDWARE_PSEUDO 5
|
||||
#define VID_HARDWARE_SAA5249 6
|
||||
#define VID_HARDWARE_AZTECH 7
|
||||
#define VID_HARDWARE_SF16MI 8
|
||||
#define VID_HARDWARE_RTRACK 9
|
||||
#define VID_HARDWARE_ZOLTRIX 10
|
||||
#define VID_HARDWARE_SAA7146 11
|
||||
#define VID_HARDWARE_VIDEUM 12 /* Reserved for Winnov videum */
|
||||
#define VID_HARDWARE_RTRACK2 13
|
||||
#define VID_HARDWARE_PERMEDIA2 14 /* Reserved for Permedia2 */
|
||||
#define VID_HARDWARE_RIVA128 15 /* Reserved for RIVA 128 */
|
||||
#define VID_HARDWARE_PLANB 16 /* PowerMac motherboard video-in */
|
||||
#define VID_HARDWARE_BROADWAY 17 /* Broadway project */
|
||||
#define VID_HARDWARE_GEMTEK 18
|
||||
#define VID_HARDWARE_TYPHOON 19
|
||||
#define VID_HARDWARE_VINO 20 /* Reserved for SGI Indy Vino */
|
||||
|
||||
/*
|
||||
* Initialiser list
|
||||
*/
|
||||
|
||||
struct video_init
|
||||
{
|
||||
char *name;
|
||||
int (*init)(struct video_init *);
|
||||
};
|
||||
|
||||
#endif
|
||||
1929
src/videodev2.h
1929
src/videodev2.h
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user