mirror of
https://github.com/X11Libre/xf86-video-v4l.git
synced 2026-03-24 09:35:42 +00:00
Compare commits
108 Commits
XORG-6_8_9
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
daa6a5f254 | ||
|
|
7c7ecbdf70 | ||
|
|
3c998c0752 | ||
|
|
6affbbc248 | ||
|
|
bd0d8b0484 | ||
|
|
ac395bbeca | ||
|
|
9fbe8fbeab | ||
|
|
b224dc8ed6 | ||
|
|
ca2b972365 | ||
|
|
9b683bb145 | ||
|
|
0f9e231194 | ||
|
|
bf621b6ec5 | ||
|
|
6582ec2b12 | ||
|
|
0db0e56806 | ||
|
|
e1ae793d44 | ||
|
|
3af49aa1ee | ||
|
|
37fd765aab | ||
|
|
d0469938f1 | ||
|
|
bdce886364 | ||
|
|
a2e7ab6168 | ||
|
|
0bc8abada1 | ||
|
|
bf3ce6f067 | ||
|
|
6797508c03 | ||
|
|
b472b97892 | ||
|
|
ebc39b2367 | ||
|
|
7dc032a721 | ||
|
|
eb1e55874c | ||
|
|
36ffdb5239 | ||
|
|
7899231c65 | ||
|
|
10e0e12fcf | ||
|
|
07871d6be3 | ||
|
|
6367e7e46d | ||
|
|
1f9068a1c8 | ||
|
|
c5235058aa | ||
|
|
cb3970480f | ||
|
|
a375e88f89 | ||
|
|
3df0a355f9 | ||
|
|
b3244827d9 | ||
|
|
3370b6b6a4 | ||
|
|
a020fda02f | ||
|
|
3f9022bdfe | ||
|
|
03ff22bd9e | ||
|
|
33c2170e89 | ||
|
|
bbf9462a4e | ||
|
|
26f1e15569 | ||
|
|
1eef30fdee | ||
|
|
b45bef53fc | ||
|
|
0cbeee8e03 | ||
|
|
74d39213b4 | ||
|
|
95fcc10d96 | ||
|
|
ca09693ba2 | ||
|
|
f7e6dcee73 | ||
|
|
6167b289f1 | ||
|
|
362a97d43c | ||
|
|
2cca68d701 | ||
|
|
f344cb78ef | ||
|
|
436829a9d6 | ||
|
|
f4ccca1dec | ||
|
|
f4a94cfaef | ||
|
|
ecfd000f3e | ||
|
|
e47ceda611 | ||
|
|
d1f217447c | ||
|
|
1da8c1e13b | ||
|
|
d1270c79a4 | ||
|
|
c3d768e984 | ||
|
|
a429958577 | ||
|
|
58c08d3906 | ||
|
|
1d6d285a5e | ||
|
|
45a5eb8cab | ||
|
|
70bdb4d93a | ||
|
|
0eaed2f59c | ||
|
|
e0f72fbed7 | ||
|
|
8e4e3ba247 | ||
|
|
2d55ea6e19 | ||
|
|
d72d75a57f | ||
|
|
19811b8245 | ||
|
|
b00a028be1 | ||
|
|
09f1117d03 | ||
|
|
610a340050 | ||
|
|
509d291479 | ||
|
|
b0dad860b9 | ||
|
|
edfeb249a8 | ||
|
|
eb742cfb9e | ||
|
|
a2cddcf034 | ||
|
|
6260e7a816 | ||
|
|
68ef5a3537 | ||
|
|
0fb67e3f76 | ||
|
|
3288506bb3 | ||
|
|
0ae947b760 | ||
|
|
f00943051a | ||
|
|
58443583fb | ||
|
|
0f0ae40ac9 | ||
|
|
c3917f36a9 | ||
|
|
6a46c3a4db | ||
|
|
7b16fc59d1 | ||
|
|
db38e33e96 | ||
|
|
e09d3fa5a2 | ||
|
|
b960665c1a | ||
|
|
9e9e26cbfc | ||
|
|
f95d090f26 | ||
|
|
f1b782df5d | ||
|
|
bec1ce8dea | ||
|
|
d66e3714e8 | ||
|
|
ff178dcf9a | ||
|
|
c61d66bc02 | ||
|
|
083adf6032 | ||
|
|
1f05cde42c | ||
|
|
1fa8d2f701 |
65
.github/ISSUE_TEMPLATE/01-bug-report.yml
vendored
Normal file
65
.github/ISSUE_TEMPLATE/01-bug-report.yml
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
name: 🐞 Bug report
|
||||
description: Create a report to help us improve
|
||||
|
||||
labels: [bug, needs-triage]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill out the sections below to help everyone identify and fix the bug. If you have a general idea or question then please use the [discussions](https://github.com/orgs/X11Libre/discussions).
|
||||
- type: dropdown
|
||||
id: affected-version
|
||||
attributes:
|
||||
label: Affected version
|
||||
options:
|
||||
- 0.3.0.1
|
||||
- Git master branch
|
||||
- other or don't know
|
||||
default: 1
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe your issue
|
||||
placeholder: When I did X then Y happened.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: steps
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
placeholder: |
|
||||
1. Start ...
|
||||
2. Do this
|
||||
3. Do that
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: What did you expect?
|
||||
placeholder: I expected this to happen.
|
||||
- type: textarea
|
||||
id: environment
|
||||
attributes:
|
||||
label: Additional Information
|
||||
description: |
|
||||
Additional information you want to provide such as logs, system info, environment, screenshots, etc.
|
||||
placeholder: |
|
||||
Add any other context about the bug here.
|
||||
- type: checkboxes
|
||||
id: checks
|
||||
attributes:
|
||||
label: Extra fields
|
||||
options:
|
||||
- label: I have checked the existing [issues](https://github.com/X11Libre/xf86-video-v4l/issues)
|
||||
required: true
|
||||
- label: I have read the [Contributing Guidelines](https://github.com/X11Libre/xserver/blob/master/CONTRIBUTING.md)
|
||||
required: true
|
||||
- label: I'd like to work on this issue
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for reporting this issue! We will get back to you as soon as possible.
|
||||
49
.github/ISSUE_TEMPLATE/02-feature-request.yml
vendored
Normal file
49
.github/ISSUE_TEMPLATE/02-feature-request.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
name: ✨ Feature request
|
||||
description: Suggest a feature for this software
|
||||
labels: [enhancement, needs-triage]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill out the sections below to properly describe the new software feature you are suggesting. If you have a general idea or question then please use the [discussions](https://github.com/orgs/X11Libre/discussions).
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: "Describe the feature"
|
||||
placeholder: A thing in X that allows to do Y.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: rationale
|
||||
attributes:
|
||||
label: "It should be done because"
|
||||
placeholder: Doing Y is needed for Z.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: alternative
|
||||
attributes:
|
||||
label: "What are the alternatives?"
|
||||
placeholder: We could do A or B instead.
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Additional information you want to provide such as references to related issues or protocols, the implications on existing use cases, etc.
|
||||
placeholder: |
|
||||
Add any other context about the feature request here.
|
||||
- type: checkboxes
|
||||
id: checks
|
||||
attributes:
|
||||
label: Extra fields
|
||||
options:
|
||||
- label: I have checked the existing [issues](https://github.com/X11Libre/xf86-video-v4l/issues)
|
||||
required: true
|
||||
- label: I have read the [Contributing Guidelines](https://github.com/X11Libre/xserver/blob/master/CONTRIBUTING.md)
|
||||
required: true
|
||||
- label: I'd like to work on this issue
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for your suggestion! Let's see together if it can be done.
|
||||
49
.github/ISSUE_TEMPLATE/03-code-cleanup.yml
vendored
Normal file
49
.github/ISSUE_TEMPLATE/03-code-cleanup.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
name: 🔧 Code cleanup
|
||||
description: Level up the source code
|
||||
labels: [code-cleanup, needs-triage]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill out the sections below to properly describe the code cleanup you are suggesting. If you have a general idea or question then please use the [discussions](https://github.com/orgs/X11Libre/discussions).
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: "Describe the cleanup"
|
||||
placeholder: C in X needs to be changed into D.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: rationale
|
||||
attributes:
|
||||
label: "It should be done because"
|
||||
placeholder: Having D is needed for E.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: alternative
|
||||
attributes:
|
||||
label: "What are the alternatives?"
|
||||
placeholder: We could do A or B instead.
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Additional information you want to provide such as implications on existing code, how to ensure API/ABI stability, which tests are needed or to be run, related issues, etc.
|
||||
placeholder: |
|
||||
Add any other context about the cleanup here.
|
||||
- type: checkboxes
|
||||
id: checks
|
||||
attributes:
|
||||
label: Extra fields
|
||||
options:
|
||||
- label: I have checked the existing [issues](https://github.com/X11Libre/xf86-video-v4l/issues)
|
||||
required: true
|
||||
- label: I have read the [Contributing Guidelines](https://github.com/X11Libre/xserver/blob/master/CONTRIBUTING.md)
|
||||
required: true
|
||||
- label: I'd like to work on this issue
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for looking at the source code! Let's see together how it can be improved.
|
||||
38
.github/ISSUE_TEMPLATE/04-doc-update.yml
vendored
Normal file
38
.github/ISSUE_TEMPLATE/04-doc-update.yml
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
name: 🔖 Documentation update
|
||||
description: Make your mark for better documentation
|
||||
|
||||
labels: [documentation, needs-triage]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill out the sections below to help others understand our software. If you have a general idea or question then please use the [discussions](https://github.com/orgs/X11Libre/discussions).
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe the update
|
||||
placeholder: These things need to be better documented.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: environment
|
||||
attributes:
|
||||
label: Additional Information
|
||||
description: Additional information you want to provide such as tickets related to changes in the software, affected files, screenshots, etc.
|
||||
placeholder: |
|
||||
Add any other context about the update here.
|
||||
- type: checkboxes
|
||||
id: checks
|
||||
attributes:
|
||||
label: Extra fields
|
||||
options:
|
||||
- label: I have checked the existing [issues](https://github.com/X11Libre/xf86-video-v4l/issues)
|
||||
required: true
|
||||
- label: I have read the [Contributing Guidelines](https://github.com/X11Libre/xserver/blob/master/CONTRIBUTING.md)
|
||||
required: true
|
||||
- label: I'd like to work on this issue
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for requesting this update! We will get back to you as soon as possible.
|
||||
43
.github/ISSUE_TEMPLATE/05-org-task.yml
vendored
Normal file
43
.github/ISSUE_TEMPLATE/05-org-task.yml
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
name: ✅ Organizational task
|
||||
description: Create a task for project organization
|
||||
|
||||
labels: [needs-triage, organization]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill out the sections below to get organizational things done. If you have a general idea or question then please use the [discussions](https://github.com/orgs/X11Libre/discussions).
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe the task
|
||||
placeholder: These things need to be done.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: rationale
|
||||
attributes:
|
||||
label: "It should be done because"
|
||||
placeholder: Doing Y is needed for Z.
|
||||
- type: textarea
|
||||
id: environment
|
||||
attributes:
|
||||
label: Additional Information
|
||||
description: Additional information you want to provide such as the context for bigger tasks, the implicatons on existing workflows, related issues, etc.
|
||||
placeholder: |
|
||||
Add any other context about the task here.
|
||||
- type: checkboxes
|
||||
id: checks
|
||||
attributes:
|
||||
label: Extra fields
|
||||
options:
|
||||
- label: I have checked the existing [issues](https://github.com/X11Libre/xf86-video-v4l/issues)
|
||||
required: true
|
||||
- label: I have read the [Contributing Guidelines](https://github.com/X11Libre/xserver/blob/master/CONTRIBUTING.md)
|
||||
required: true
|
||||
- label: I'd like to work on this issue
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for adding this task! We will get back to you as soon as possible.
|
||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: XLibre Community Support
|
||||
url: https://github.com/orgs/X11Libre/discussions
|
||||
about: Please ask and answer questions here.
|
||||
- name: Mailing List
|
||||
url: https://www.freelists.org/list/xlibre
|
||||
about: You can join the discussions on our mailing list.
|
||||
28
.github/workflows/build.yml
vendored
Normal file
28
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
# This driver is Linux-only
|
||||
ubuntu:
|
||||
strategy:
|
||||
matrix:
|
||||
xserver-version: [ master, xlibre-xserver-25.1.1, xlibre-xserver-25.0.0.20 ]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: X11Libre/action-build-driver/target/ubuntu@v0.3.7
|
||||
with:
|
||||
xserver-version: ${{ matrix.xserver-version }}
|
||||
|
||||
release-notes:
|
||||
name: Release pushed tag
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ startsWith(github.ref, 'refs/tags/xlibre-') }}
|
||||
needs: ubuntu
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: X11Libre/action-build-driver/release@v0.3.7
|
||||
77
.gitignore
vendored
Normal file
77
.gitignore
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
#
|
||||
# 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
|
||||
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'
|
||||
#
|
||||
12
COPYING
Normal file
12
COPYING
Normal file
@@ -0,0 +1,12 @@
|
||||
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
|
||||
1
Makefile.am
Normal file
1
Makefile.am
Normal file
@@ -0,0 +1 @@
|
||||
SUBDIRS = src man
|
||||
15
autogen.sh
Executable file
15
autogen.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#! /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 "$@"
|
||||
10
configure.ac
Normal file
10
configure.ac
Normal file
@@ -0,0 +1,10 @@
|
||||
AC_PREREQ([2.60])
|
||||
AC_INIT([xlibre-xf86-video-v4l],
|
||||
[25.0.1],
|
||||
[https://github.com/X11Libre/xf86-video-v4l/issues],
|
||||
[xlibre-xf86-video-v4l])
|
||||
|
||||
XLIBRE_INIT_MODULE_AM(v4l)
|
||||
|
||||
AC_CONFIG_FILES([Makefile src/Makefile man/Makefile])
|
||||
AC_OUTPUT
|
||||
12
man/Makefile.am
Normal file
12
man/Makefile.am
Normal file
@@ -0,0 +1,12 @@
|
||||
# SPDX-License-Identifier: MIT OR X11
|
||||
#
|
||||
# Copyright © 2026 Enrico Weigelt, metux IT consult <info@metux.net>
|
||||
#
|
||||
|
||||
drvmandir = @xlibre_driver_man_dir@
|
||||
drvman_DATA = @xlibre_driver_name@.@xlibre_driver_man_section@
|
||||
|
||||
CLEANFILES = $(drvman_DATA)
|
||||
|
||||
.man.@xlibre_driver_man_section@:
|
||||
cp $< $@
|
||||
33
man/v4l.man
33
man/v4l.man
@@ -1,7 +1,6 @@
|
||||
.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.man,v 1.3 2001/05/29 22:24:06 dawes Exp $
|
||||
.\" shorthand for double quote that works everywhere.
|
||||
.ds q \N'34'
|
||||
.TH V4L __drivermansuffix__ __vendorversion__
|
||||
.TH V4L 4 2026-01-30 "X Version 11"
|
||||
.SH NAME
|
||||
v4l \- video4linux driver
|
||||
.SH SYNOPSIS
|
||||
@@ -12,14 +11,18 @@ v4l \- video4linux driver
|
||||
.B EndSection
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
.B v4l
|
||||
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.
|
||||
.B v4l
|
||||
is an
|
||||
.B Xorg
|
||||
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
|
||||
.B xorg.conf
|
||||
file if you want to use it.
|
||||
There are no config options.
|
||||
.P
|
||||
Note that the the extmod module is also required for the Xvideo
|
||||
support (and lots of other extentions too).
|
||||
Note that the extmod module is also required for the Xvideo
|
||||
support (and lots of other extensions too).
|
||||
.SH SUPPORTED HARDWARE
|
||||
The
|
||||
.B v4l
|
||||
@@ -30,10 +33,14 @@ overlay.
|
||||
bt848/bt878-based TV cards are the most popular hardware these
|
||||
days.
|
||||
.SH CONFIGURATION DETAILS
|
||||
Please refer to XF86Config(__filemansuffix__) for general configuration
|
||||
details. This section only covers configuration details specific to this
|
||||
driver.
|
||||
Please refer to
|
||||
.BR xorg.conf (5)
|
||||
for general configuration details.
|
||||
This section only covers configuration details specific to this driver.
|
||||
.SH "SEE ALSO"
|
||||
XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(__miscmansuffix__)
|
||||
.BR Xorg (1),
|
||||
.BR Xserver (1),
|
||||
.BR xorg.conf (5),
|
||||
.BR X (7)
|
||||
.SH AUTHORS
|
||||
Authors include: Gerd Knorr <kraxel@bytesex.org>
|
||||
|
||||
12
src/Makefile.am
Normal file
12
src/Makefile.am
Normal file
@@ -0,0 +1,12 @@
|
||||
# SPDX-License-Identifier: MIT OR X11
|
||||
#
|
||||
# Copyright © 2026 Enrico Weigelt, metux IT consult <info@metux.net>
|
||||
#
|
||||
|
||||
AM_CFLAGS = $(XLIBRE_SERVER_CFLAGS)
|
||||
|
||||
v4l_drv_la_LTLIBRARIES = v4l_drv.la
|
||||
v4l_drv_la_LDFLAGS = -module -avoid-version
|
||||
v4l_drv_ladir = @xlibre_video_drivers_dir@
|
||||
|
||||
v4l_drv_la_SOURCES = v4l.c videodev2.h
|
||||
255
src/videodev.h
255
src/videodev.h
@@ -1,255 +0,0 @@
|
||||
#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 <X11/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
Normal file
1929
src/videodev2.h
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user