commit d1ce15a0cff424beddb45ac7b27be235f1279a89d9c0e8e917abc2f1801d971d Author: Asterios Dramis Date: Wed May 28 20:56:57 2025 +0000 Accepting request 1280955 from home:alarrosa:branches:devel:libraries:c_c++ - Update to 1.30.1 * licenses: update copyright files to remove fsf address * v4l2-compliance: run testBlockingWait when streaming - Update to 1.30.0 * media-ctl: libv4l2subdev: Add Y16 format * v4l2-ctl: process events before queues in stateful_m2m() * v4l2-compliance: Add test for V4L2_FMTDESC_FLAG_ENUM_ALL flag * v4l2-ctl-vidcap: Add options to enumerate all pixel formats * edid-decode: support parsing EDID-Like Data * buildsystem: Start v4l-utils 1.29.0 development cycle * qvidcap: fix core dump * qv4l2: fix crash when disabling openGL * qv4l2: always set m_haveFramebufferSRGB to false * v4l-utils: sync with latest kernel * cec-ctl: add support for CEC_MSG_FL_REPLY_VENDOR_ID * cec-compliance: add tests for CEC_MSG_FL_REPLY_VENDOR_ID * contrib/test/test-media: re-add cec-compliance -A tests * v4l-utils: sync with latest kernel * v4l2-compliance: testRequests(): drop V4L2_BUF_FLAG_QUEUED check * contrib/test/test-media: set log level to info at end * v4l2-compliance: only do request-queued checks while streaming is off * v4l2-compliance: always test blocking wait * v4l-utils: sync with latest kernel * utils/common: add V4L2_CAP_EDID support * v4l2-compliance: add support for V4L2_CAP_EDID * test-media: move visl out of the vivid test sequence * contrib/test/test-media: test unbind in DQBUF * v4l2-ctl/compliance: add -32-time64 variants OBS-URL: https://build.opensuse.org/request/show/1280955 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/v4l-utils?expand=0&rev=86 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..16c7c04 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + qv4l2 + diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..f462bee --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,11 @@ +libdvbv5-0 +libv4l +libv4l1-0 +libv4l2-0 +libv4l2rds0 +libv4lconvert0 +libv4l-devel + requires "libv4l1-0- = %version" + requires "libv4l2-0- = %version" + requires "libv4l2rds0- = %version" + requires "libv4lconvert0- = %version" diff --git a/use_system_v4l_for_qv4l.patch b/use_system_v4l_for_qv4l.patch new file mode 100644 index 0000000..4a52898 --- /dev/null +++ b/use_system_v4l_for_qv4l.patch @@ -0,0 +1,94 @@ +Index: v4l-utils-1.28.1/meson.build +=================================================================== +--- v4l-utils-1.28.1.orig/meson.build ++++ v4l-utils-1.28.1/meson.build +@@ -386,13 +386,17 @@ man_pages = [] + + i18n_gettext_arguments = ['--directory=' + source_root, + '--keyword=_', '--keyword=N_', '--keyword=P_:1,2'] ++if get_option('qv4l2').disabled() + subdir('libdvbv5-po') + subdir('v4l-utils-po') + + subdir('lib') ++else ++ ir_bpf_enabled = false ++endif + ++subdir('utils') + if get_option('v4l-utils') +- subdir('utils') + subdir('contrib') + else + ir_bpf_enabled = false +Index: v4l-utils-1.28.1/utils/qv4l2/meson.build +=================================================================== +--- v4l-utils-1.28.1.orig/utils/qv4l2/meson.build ++++ v4l-utils-1.28.1/utils/qv4l2/meson.build +@@ -23,14 +23,17 @@ qv4l2_sources = files( + 'v4l2-tpg-core.c', + 'vbi-tab.cpp', + 'vbi-tab.h', ++ '../libv4l2util/frequencies.c', + ) + ++dep_libv4l2 = dependency('libv4l2') ++dep_libv4lconvert = dependency('libv4lconvert') ++ + qv4l2_deps = [ + dep_alsa, + dep_gl, + dep_libmedia_dev, + dep_libv4l2, +- dep_libv4l2util, + dep_libv4lconvert, + dep_qt, + dep_qt_opengl, +Index: v4l-utils-1.28.1/utils/meson.build +=================================================================== +--- v4l-utils-1.28.1.orig/utils/meson.build ++++ v4l-utils-1.28.1/utils/meson.build +@@ -19,6 +19,7 @@ endforeach + # Libraries + subdir('libcecutil') + subdir('libmedia_dev') ++if get_option('qv4l2').disabled() + subdir('libv4l2util') + + # Utils +@@ -30,8 +31,10 @@ subdir('ir-ctl') + subdir('ivtv-ctl') + subdir('keytable') + subdir('media-ctl') ++endif + subdir('qv4l2') + subdir('qvidcap') ++if get_option('qv4l2').disabled() + subdir('rds-ctl') + subdir('v4l2-ctl') + subdir('v4l2-dbg') +@@ -41,3 +44,4 @@ subdir('v4l2-tracer') + # Compliance tools + subdir('cec-compliance') + subdir('v4l2-compliance') ++endif +Index: v4l-utils-1.28.1/utils/qvidcap/meson.build +=================================================================== +--- v4l-utils-1.28.1.orig/utils/qvidcap/meson.build ++++ v4l-utils-1.28.1/utils/qvidcap/meson.build +@@ -20,6 +20,7 @@ qvidcap_sources = files( + 'v4l2-info.cpp', + 'v4l2-tpg-colors.c', + 'v4l2-tpg-core.c', ++ '../libv4l2util/frequencies.c', + ) + + qvidcap_deps = [ +@@ -27,7 +28,6 @@ qvidcap_deps = [ + dep_gl, + dep_libmedia_dev, + dep_libv4l2, +- dep_libv4l2util, + dep_libv4lconvert, + dep_qt, + dep_qt_opengl, diff --git a/v4l-utils-1.24.1.tar.bz2 b/v4l-utils-1.24.1.tar.bz2 new file mode 100644 index 0000000..68f6334 --- /dev/null +++ b/v4l-utils-1.24.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbb7fe8a6307f5ce533a05cded70bb93c3ba06395ab9b6d007eb53b75d805f5b +size 2238340 diff --git a/v4l-utils-1.24.1.tar.bz2.asc b/v4l-utils-1.24.1.tar.bz2.asc new file mode 100644 index 0000000..60e7dc6 --- /dev/null +++ b/v4l-utils-1.24.1.tar.bz2.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEBdAWnCbkFZNBgSnfGZpk+t+1AP8FAmP47hkACgkQGZpk+t+1 +AP8hhA/9Hkg3y58XRW4OqL1AsS156nBgYretYdESVTt0bCAuB/k6bdMCzk8cIdYG +drXpbMqKSNoaZgKmHJ0+rpNySw2aJscdWPlROUNqpnCmCyFB1I5oKLZUNMzxbmlK +M+MGtNiQrJmWZvwyIqfYQNGL1KncXA1oUaIQYFsWQvWbqY5GSDcSoPLhLLm1kS8E +HgkqJISvP8n9VbtENnr8Fdtt3tHja/B4l67o7wvFCjsFWw7e7pzzMfuhoH16etga +xArhCMy4vE6sdNGBjK7Jz6kdwCTNcyP/H/INxJ5c878OjBe8KZJiGYq4H4yCxCp4 +fHlRtcHTD7jBaYUgoS7GYQlguz3SBM8g1FIxyekueclCYgIcV8ojm7LnfE9WIYgN +icK20RgX18IToB5ms3fph9TBCYdxkOmJ9Cn3hgM5p7Hsz6m9gGba7sYlHTn2TURD +YO47MJ583lJ+lYRSb9fqhDUu4J2mmw04j0A7n67iolYyYD9CiXH5VQuizjufTMtx +vVB8WgRvv5wuoGrwkBesT5xSf/lhOu1iEFaxs4MmqeCixWZUSq2/leW/Drp3oLWP +BkUbzmeTQ437bVwudw+keL1I6PpBN+YIiguQe6p8QDfJYAZN3dDZ5LCUwxkc8FxH +yg5ofWW9lWyVAM+xREsYUjVx78iDvtkzTTMnKvvmi/pN6apBVMM= +=D6V8 +-----END PGP SIGNATURE----- diff --git a/v4l-utils-1.28.1.tar.xz b/v4l-utils-1.28.1.tar.xz new file mode 100644 index 0000000..7275493 --- /dev/null +++ b/v4l-utils-1.28.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fa075ce59b6618847af6ea191b6155565ccaa44de0504581ddfed795a328a82 +size 1246516 diff --git a/v4l-utils-1.28.1.tar.xz.asc b/v4l-utils-1.28.1.tar.xz.asc new file mode 100644 index 0000000..9efafe1 --- /dev/null +++ b/v4l-utils-1.28.1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEBdAWnCbkFZNBgSnfGZpk+t+1AP8FAmagA8MACgkQGZpk+t+1 +AP+SKQ//YgaIcJl/BQrUVZOpGyOB72A8JthY7X2CO0LqiMfg55MY5R4tPChoGo9M +3jN1Q6NDMkku87ZXQSl3y08a1jTWw56+Smy7Ak8jCHHCu0vZNaikPiJdSeHNdjqX +K2+OX+de7fkUnTpavg/V/3Ug64CWhrVU+J7YbltTzLtykIdpPSnlUQwoHXHppfWD +ogEhF7zku73uZEYm8cHmxQ2y3coGgLT817ZSu3wCbow9WXih0nPd8LKbytP/BYdF +BjYtUm/WFixQGG1y+ngn63y4UtqJBvwKshjDuhkJBM5N1iwBk8Gb10KpANf2rr+q +v41fZPUTsALkl0e9XCDl1LzWXxCAN1JydW/xGTpc0uZ0ls6WZDL/mIcBescxFUK0 +eMagdjPpN9dPyu9onhrqsC7Aqebr7Z/hDJiVCgVrwoXkjc6dzOmqEcpaITxtKTXI +3u9bmzz38bImooWslQ6AqV9+SFC6wV4F5gl5eBeQWwwGCkIylp6S7Fur37nsj/B+ +ZSlT8gtY3IYrFLUm6RPNjWAC0VSBFBsMlqfqHz+P68oVfR0TcY19MwUD6eEkJC8q +XLDug3YNfwGe1X1lyPobsncVsljU2EWMtjUUu4lYsQmc1UlA3k/AIdgV1JbjEyc2 +adRn6kpaBA2wR2sOwIFmD44OQ7oVzxb8Ubv1rGeLBuK7sY097Xs= +=m5u9 +-----END PGP SIGNATURE----- diff --git a/v4l-utils-1.30.1.tar.xz b/v4l-utils-1.30.1.tar.xz new file mode 100644 index 0000000..09dac58 --- /dev/null +++ b/v4l-utils-1.30.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1cf549c2ec3cf39eb5ec7bf15731349e61b26a21b5e963922db422333bae197 +size 1381748 diff --git a/v4l-utils-1.30.1.tar.xz.asc b/v4l-utils-1.30.1.tar.xz.asc new file mode 100644 index 0000000..fa5538c --- /dev/null +++ b/v4l-utils-1.30.1.tar.xz.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCAAdFiEEBdAWnCbkFZNBgSnfGZpk+t+1AP8FAmgTZy8ACgkQGZpk+t+1 +AP//Rg//bYWnir7jfpJX50VWS5QiBb5FYtU7Jdd7NHmkLB7Hd+YbmQxX33rxMhTA +szHwOnpUZGpYnZW957TlWwi0V0a8TaoXzTYJCB5P+KjblWjFly2eQK5L7VsUsTms +3LVpzFARAgegbb9/E5EmeaBfjnIaeytYdrDoBEKgMd0iEcNAJt6WM+yXs98aWYo/ +44OQ7xsfcBOZxcEGefbP17Cf+CqWdj6qbWetjt5aFSsFMUxugZbE0F6cw3J7Ycpq +4zzk77dFd5dziKULSATh1F40Q0t3/fNSSJ9rruasgw53p2t/CabKYujwMzed9coN ++03fHHW1g3Qc5m64p/ZxWETePqReY7UD2+CfT9qT+wxWFH/lP5ygmUQKrIOIQriT +bb5395A7hk+zQv9zJLf3197AwFugk/IzL/JomtwiO0atEePFLxCFarkcOHcwjZx4 +T9qddcgWdeiIKBUUUs/T4tapaTB9mDRmJXs7toaC9iiCXBksqMtDaPMZ4pOMjSC6 +3BoT9yXfB7DaMAmzZgEpFwqKj7BD+I5sSGlLTh8arPgr+9lNDCJH7Llm0f090rfQ +Dn7zrR8+mU/Xk7PSlhhS/yHrgWyGnORe+eM5UvrKfIRbihWpGkcjU2dTyQ85Ixf/ +LbY7CFJHewHZk3OzBv4MTJhAHt9irhclw9jZmLuLV5XUWjEXz8M= +=3PqQ +-----END PGP SIGNATURE----- diff --git a/v4l-utils-32bitfix.patch b/v4l-utils-32bitfix.patch new file mode 100644 index 0000000..1b679ad --- /dev/null +++ b/v4l-utils-32bitfix.patch @@ -0,0 +1,24 @@ +Index: v4l-utils-1.22.1/lib/libdvbv5/dvb-file.c +=================================================================== +--- v4l-utils-1.22.1.orig/lib/libdvbv5/dvb-file.c ++++ v4l-utils-1.22.1/lib/libdvbv5/dvb-file.c +@@ -594,7 +594,8 @@ static int fill_entry(struct dvb_entry * + n_prop = entry->n_props; + entry->props[n_prop].cmd = i; + if (!attr_name || !*attr_name) +- entry->props[n_prop].u.data = atol(value); ++ /* some put stream_id=4294967295 (-1) which is more than LONG_MAX on 32bit... */ ++ entry->props[n_prop].u.data = (uint32_t)atoll(value); + else { + for (j = 0; attr_name[j]; j++) + if (!strcasecmp(value, attr_name[j])) +@@ -713,7 +714,8 @@ static int fill_entry(struct dvb_entry * + /* FIXME: this works only for integer values */ + n_prop = entry->n_props; + entry->props[n_prop].cmd = cmd; +- entry->props[n_prop].u.data = atol(value); ++ /* some put stream_id=4294967295 (-1) which is more than LONG_MAX on 32bit... */ ++ entry->props[n_prop].u.data = (uint32_t)atoll(value); + entry->n_props++; + + return 0; diff --git a/v4l-utils.changes b/v4l-utils.changes new file mode 100644 index 0000000..249d76c --- /dev/null +++ b/v4l-utils.changes @@ -0,0 +1,1491 @@ +------------------------------------------------------------------- +Wed May 28 15:18:11 UTC 2025 - Antonio Larrosa + +- Update to 1.30.1 + * licenses: update copyright files to remove fsf address + * v4l2-compliance: run testBlockingWait when streaming + +- Update to 1.30.0 + * media-ctl: libv4l2subdev: Add Y16 format + * v4l2-ctl: process events before queues in stateful_m2m() + * v4l2-compliance: Add test for V4L2_FMTDESC_FLAG_ENUM_ALL flag + * v4l2-ctl-vidcap: Add options to enumerate all pixel formats + * edid-decode: support parsing EDID-Like Data + * buildsystem: Start v4l-utils 1.29.0 development cycle + * qvidcap: fix core dump + * qv4l2: fix crash when disabling openGL + * qv4l2: always set m_haveFramebufferSRGB to false + * v4l-utils: sync with latest kernel + * cec-ctl: add support for CEC_MSG_FL_REPLY_VENDOR_ID + * cec-compliance: add tests for CEC_MSG_FL_REPLY_VENDOR_ID + * contrib/test/test-media: re-add cec-compliance -A tests + * v4l-utils: sync with latest kernel + * v4l2-compliance: testRequests(): drop V4L2_BUF_FLAG_QUEUED + check + * contrib/test/test-media: set log level to info at end + * v4l2-compliance: only do request-queued checks while streaming + is off + * v4l2-compliance: always test blocking wait + * v4l-utils: sync with latest kernel + * utils/common: add V4L2_CAP_EDID support + * v4l2-compliance: add support for V4L2_CAP_EDID + * test-media: move visl out of the vivid test sequence + * contrib/test/test-media: test unbind in DQBUF + * v4l2-ctl/compliance: add -32-time64 variants + * test-media: add -32-time64 option + * cec-ctl: add --test-reliability option + * v4l-utils: sync with latest kernel + * cec-ctl: always return in list_devices + * cec-ctl: use -A shortcut for --list-devices + * v4l2-ctl: list_media_devices() should show the in/out name + * v4l2-ctl: add --list-devices-input/output options + * v4l2-ctl: add -A as shortcut for --list-devices + * v4l2-ctl: move s_trace back to where it was before + * cec-follower: the short_options array was potentially too + small + * cec-compliance: the short_options array was potentially too + small + * cec-ctl: missing support for optional arguments + * v4l2-ctl: fix --stream-out-buf-caps option + * qv4l2/qvidcap: bind shader program in paintGL() + * v4l2-ctl: support V4L2_CID_MIN_BUFFERS_FOR_CAPTURE/OUTPUT + * v4l2-compliance: improve stateful codec tests + * v4l2-compliance: improve CREATE_BUFS tests + * cec-compliance: add fflush(stdout) in several places + * cec-ctl: don't show legend for + --stress-test-random-standby-wakeup-cycle + * cec-ctl: clearly report PASS if a test passes + * cec-ctl: add --physical-address (-x) option + * v4l2-ctl: support toggling Cable Status in EDID + * v4l-utils: update README.md + * cec-compliance: change long timeout to 30s + * v4l2-ctl: also report the SHA if available in --version + * media-ctl: also report the SHA if available in --version + * edid-decode: move edid-decode into v4l-utils + * edid-decode: don't show parse errors if -P is given + * test-display.py: test display CEC and EDID compliance + * cec-ctl/edid-decode: use seconds for the reliability test + * test-display: add cec-ddc-reliability test + * edid-decode: suppress two more errors if -P is used + * test_display.py: add log options, checked with linter + * test_display.py: fix cec-stress-sleep test + * edid-decode: hide error when using -P and -a + * test_display.py: various fixes + * contrib/test/test-media: add more 'date' commands + * contrib/test/test_display.py: various improvements + * edid-decode: support HF-EEODB when reading EDID over DDC + * edid-decode: show timestamp for --i2c-hdcp-ri + * edid-decode: show the delta in ms since last Ri' change + * edid-decode: ignore failed Ri' reads + * Revert "cec-compliance: change long timeout to 30s" + * edid-decode: add eld.test example + * qvidcap: add --no-loop option + * qvidcap: add --from-frame option + * qvidcap: update the man page + * edid-decode: transfer characteristics improvements + * qvidcap: allow Q to close the window with option --no-loop + * qvidcap: 'Space' will pause, 'Backspace' will go back one frame + * edid-decode: fix incorrect message + * cec-compliance: add two new tests + * v4l2-ctl: add new hdmi-4k-600mhz-with-displayid-eeodb EDID + * edid-decode: fix DisplayID checksum regression + * edid-decode: fix infoframe DB parsing regression + * edid-decode: fix incorrect warning for DisplayID v1 + * edid-decode: search for 'edid-decode (hex)' first + * cec-compliance: use CEC_MSG_FL_RAW with Unregistered + * v4l2-tpg.patch: add define for WARN_ON_ONCE + * v4l-utils: sync with latest media-committers git repo + * v4l2-tracer: add V4L2_CTRL_WHICH_MIN/MAX_VAL support + * v4l-utils: clean up printf formatting for top, left, width and + height + * v4l-utils: sync with latest media-committers git repo + * v4l2-compliance: use geteuid instead of getuid + * cec-compliance: use geteuid instead of getuid + * cec-compliance: don't check UID, instead test with a + * edid-decode: fix wrong CTA warning if more than 1 CTA block + * edid-decode: more warnings that only apply for the first CTA + * cec-ctl: improve usage message + * cec-ctl: actually parse the hpd-may-be-low suboption argument + * cec-ctl: fail if HPD goes high unexpectedly + * edid-decode: preparse the HDMI VSDB Image_Size + * cec-ctl/edid-decode: fix arm architecture warnings + * cec-follower: add support for 5V events + * edid-decode: fail if there are no SVDs in the Data Block + * meson.build: add -Wno-psabi to suppress arm ABI warning + * meson.build: fix arm _TIME_BITS=64 error + * meson.build: fix location of gconv library + * edid-decode: improve handling of preferred/native timings + * edid-decode: improved diagonal handling + * test-media: add vim2m multiplanar tests + * dvbv5-scan: color was set to white instead of resetting + * edid-decode: more native resolution/diagonal improvements + * edid-decode: check if NVRDB needs the size as well + * meson: Bump minimum meson version + * utils: media-ctl: Set V4L2_MBUS_FRAMEFMT_SET_CSC flag to set + colorspace + * v4l2-compliance: Don't perform blocking DQBUF test on MC_IO + devices + * edid-decode: fix transfer characteristics buffer overread + * edid-decode: avoid infinite loop in transfer characteristics + * edid-decode: fix a transfer characteristics buffer overread + * edid-decode: fix buffer overread in infoframe parsing + * edid-decode: fix buffer overread on CTA block parsing + * edid-decode: fix buffer overread on displayid block parsing + * edid-decode: fix buffer overread on product identification + parsing + * edid-decode: fix buffer overread while parsing Stereo Display + Interface DB + * edid-decode: size colorspace_eotf_combinations array correctly + * edid-decode: fix divide by zero in type17 timings parsing + * edid-decode: fix divide by zero in type3 timings parsing + * edid-decode: fix heap overread on early EOF + * libv4l2: Guard the v4l2_ioctl function with HAVE_POSIX_IOCTL + * v4l-utils: Ignore comma in bracket when getting subopt + * libv4lconvert: fix jpeg-v9x/gcc-14.x compile (jpeg_mem_dest + argument mismatch) + * meson: remove two pre-0.60 workarounds + * media-ctl: Remove duplicated include + * Android.mk: Remove obsolete build files + * v4l2-compliance: Do not run test requiring pthread_cancel in + Android + * v4l2-compliance: Fix build error clang TOT + * android: Remove unused file + * contrib/test/test-media: Increase modprobe time + * v4l-utils: fix compilation with external intl + * edid-decode: use override_find_program() to ease subproject use + * v4l2-ctl: Support V4L2_CTRL_TYPE_RECT + * v4l2-utils: Support V4L2_CTRL_WHICH_MIN/MAX_VAL + +------------------------------------------------------------------- +Sat Apr 12 22:31:55 UTC 2025 - Asterios Dramis + +- Install gconv module file to /usr/lib64/gconv/gconv-modules.d/ + (resolves also conflict with /usr/lib64/gconv/gconv-modules file + from glibc). + +------------------------------------------------------------------- +Mon Mar 31 14:07:02 UTC 2025 - Antonio Larrosa + +- Update to 1.28.1 + * qv4l2: always set m_haveFramebufferSRGB to false + * qv4l2: fix crash when disabling openGL + * qvidcap: fix core dump +- Update to 1.28.0 + * buildsystem: Start v4l-utils 1.27.0 development cycle + * cec-compliance: add --show-timestamp option + * cec-ctl: avoid confusing error message + * cec-ctl: exit after reporting all cec devices with --list-devices + * cec-ctl: fix random cec stress test: check if msg status is OK + * cec-follower: change type of struct Timer duration field to int + * cv4l-helpers.h: add missing helper functions + * Fixed qv4l2 crash with drivers that implement VIDIOC_ENUM_FRAMESIZES for outputs + * ir-ctl: add optional header to manchester encoding + * ir-ctl: clear errno before strtol + * ir-ctl: correct max_size for rc5 and rc5_sz + * ir-ctl: encode rc6 mode 0 can have 43 edges + * ir-ctl: fix encoding pulse_length bpf encoder + * ir-ctl: remove line length limits + * keytable: fix command line processing + * keytable: fix segfault when reading legacy keymaps + * keytable: fix stdout/stderr inconsistency + * keytable: meson not passing rc_keymaps system directory + * keytable: meson: Restrict the installation of 50-rc_keymap.conf + * keytable: remove line length limits + * libv4l2rds: fix TMC location parsing + * libv4l2subdev: Extend API with 'which' argument where missing + * media-ctl: Re-order setting format and routes + * media-info: add missing sys/stat.h include (for dev_t) + * meson: add optional Qt6 support + * meson: Allow documentation directory to be specified with -Ddocdir + * meson: Fix building with -Dv4l-utils=false + * meson: fix has_function fork detection (needs suitable include) + * meson: libv4lconvert helpers need fork support + * meson: v4l2grab needs libv4lconvert with fork support enabled + * meson.build: dep_systemd was not set in one case + * qv4l2: add support for /dev/v4l-touchX devices + * qv4l2: fix crash when used with metadata output devices + * qv4l2: support menu controls in updateCtrlRange() + * Revert "meson: v4l2grab needs libv4lconvert with fork support enabled" + * sync-with-kernel.sh: add v4l2-dv-timings.h + * sync-with-kernel.sh: create v4l2-tracer patches + * sync-with-kernel.sh: filter V4L2_META_FMT_GENERIC_ defines + * test-media: Add basic tests for visl + * utils: media-ctl: Prepare for TRY state support + * utils: media-ctl: Print the MUST_CONNECT pad flag + * utils: media-ctl: Support accessing the subdev TRY state + * utils: media-ctl: Support changed routing API + * utils/keytable: forgot to add mygica_utv3.toml + * v4l2-compliance: Add a test for REMOVE_BUFS ioctl + * v4l2-compliance: add new CREATE_BUFS tests + * v4l2-compliance: add support for V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH + * v4l2-compliance: Add tests for V4L2_FMT_FLAG_META_LINE_BASED flag + * v4l2-compliance: clarify a create_bufs test + * v4l2-compliance: Constify pointers and references in formats tests + * v4l2-compliance: do not warn for unexpected vivid_ro_ctrl values + * v4l2-compliance: Fix building against libc++ + * v4l2-compliance: Fix streams use in testSubDevEnumFrameSize() + * v4l2-compliance: Fix use of routing on 32-bit platforms + * v4l2-compliance: matchFormats(): add multiplane logging + * v4l2-compliance: Support the changed routing API + * v4l2-ctl: add support for V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH + * v4l2-ctl: Add --try-routing option + * v4l2-ctl: --list-devices --verbose will list current input/output + * v4l2-ctl: replace --fix-edid-checksums by --keep-edid-checksums + * v4l2-ctl: report max_num_buffers + * v4l2-ctl/compliance: read and show the subdev client capabilities + * v4l2gl: Add missing dependency on argp + * v4l2-info: add support for V4L2_BUF_CAP_SUPPORTS_REMOVE_BUFS + * v4l2-info: support V4L2_FMT_FLAG_META_LINE_BASED + * v4l2-tracer: add auto-generated files to git repo + * v4l2-tracer: add re/tracing for AV1 controls + * v4l2-tracer: add re/tracing for MAX_NUM_BUFFERS + * v4l2-tracer: autogenerate files that can be added to git + * v4l2-tracer: ignore single line comments when parsing headers + * v4l2-tracer: look in more places for libv4l2tracer + * v4l2-tracer: Rewrite libv4l2tracer.so lookup + * v4l2-tracer: stop auto-generating files with meson + * v4l2-tracer: stop waiting to handle a signal + * v4l2-tracer: use stat to verify that retrace file exists + * v4l-helpers: support V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH + * v4l-helpers: v4l_format_s_sizeimage: add support for other buftypes + * v4l-utils: clang-tidy: convert to for range loop + * v4l-utils: clang-tidy: use auto with iterators + * v4l-utils: (c)v4l-helpers.h: support more than 32 buffers + * v4l-utils: fix formats under alpha/ppc64/mips64 + * v4l-utils: fix @PACKAGE_VERSION@ use + * v4l-utils: fix potential crashing with 32-bit musl + * v4l-utils: sync with latest kernel + * v4l-utils: sync-with-kernel + * v4l-utils: sync-with-kernel + * v4l-utils: sync-with-kernel + * v4l-utils: test-media: add dmesg -n info before modprobes + * v4l-utils: test-media: connect the hdmi input to the output + * v4l-utils: use 64-bit formats for time + * v4l-utils: use 64-bit off_t format + * v4l-utils: v4l-utils: sync with latest kernel headers + * v4l-utils: v4l-utils: sync with latest kernel headers + * v4l-utils/contrib/gconv: fix conversion errors on ARIB-STD-B24 strings + * v4l-utils/contrib/gconv: translation table fix for ARIB-STD-B24 +- Update to 1.26.0 + * Add support for meson building + * build: conditionally retrieve Git repo information + * build: do not fall back to libbpf header lookup + * buildsystem: Start v4l-utils 1.25.0 development cycle + * cec-compliance: get_power_status(): check cec_msg_status_is_abort + * cec-compliance: get_power_status(): fix valid RX test + * cec-ctl: add hpd-may-be-low suboption for the CEC tests + * cec-ctl: add --test-random-power-states stress test + * cec-ctl: always log timestamp in show_msg if not-OK + * cec-ctl: rename power-cycle to standby-wakeup-cycle + * cec-ctl: store state changes in pin file + * cec-ctl.1.in: clarify that you configure *your* device + * cec-ctl.1.in: for hpd-may-be-low option: <0,1> -> <0/1> + * cec-follower: add --exclusive option + * cec/v4l2-compliance, cec-follower: use __FILE_NAME__ if available + * common/media-info: add MEDIA_ENT_F_PROC_VIDEO_ISP + * common/media-info: fail for unknown entity function values + * configure.ac: fix gconv directory search + * Copy Doxygen configuration file to doc/ + * Drop autoconf/automake support + * gen_dvb_structs.pl: drop copy of dvb-frontend.h + * .gitignore: add back '*.pc' pattern + * ir-ctl: fix sharp encoding + * keytable: fix repeat formatting + * keytable: open lirc for read/write for attaching/detaching bpf programs + * libcecutil: fix performance inefficiencies + * libdvbv5: dvb-scan: fix DVB-S2 checks for DVB-S tuning + * lib/libdvbv5/dvb-file.c: check for valid entry pointer + * libv4l1/libv4l2/v4l2-tracer: use common meson c_args/cpp_args to disable transparent large file support + * manpages: fix groff warnings + * media-ctl: 1 -> 1ULL + * media-ctl: Add support for routes and streams + * media-ctl: Check for Streams API support + * meson: Add support for doxygen documentation + * meson: Fix install location of doxygen's man pages + * meson: Fix libbpf detection + * meson: make it backward-compatible with version 0.54 + * meson: re-enable qv4l2 without Qt OpenGL support + * meson: Use -include to include config.h instead of -I. + * meson.build: backport it to version 0.56 + * qv4l2: enable Qt6 compile with Qt OpenGL support + * qv4l2: fix qmake project file + * qv4l2: fix Qt6 compile (ambiguous overload for operator!=) + * qv4l2: fix Qt6 compile (missing QActionGroup header) + * qv4l2: fix Qt6 compile (no matching function for call to QString::split(QRegExp)) + * qv4l2: fix Qt6 compile (QDesktopWidget: No such file or directory) + * qv4l2: fix Qt6 compile (QHBoxLayout/QVBoxLayout has no member setMargin) + * qv4l2: fix Qt6 warning (QMenu::addAction() is deprecated) + * qv4l2: fix Qt6 warnings (QKeyCombination operator+ is deprecated) + * qv4l2: fix SDR format error message + * qv4l2: remove leagcy alsa_stream.h include (ENABLE_ALSA protected) + * qv4l2: remove unused local variables 'QString what' + * qv4l2: update qmake project file for Qt6 (core5compat module) + * qvidcap: enable Qt6 compile with Qt OpenGL support + * qvidcap: fix qmake project file + * qvidcap: fix v4l2_convert_hook (add PRE_TARGETDEPS) + * README.md: drop qt5-default, add libsdl2-dev libbpf-dev llvm clang + * sync-with-kernel.sh: don't filter V4L2_PIX_FMT_HEVC_SLICE + * sync-with-kernel.sh: regenerate utils/keytable/rc_keymaps/meson.build + * test-media: cec-pwr enables cec variable as well + * test-media: log utils versions + * test-media: 'mc' argument didn't select vidtv + * test-media: use -m instead of -M for vicodec and vidtv + * Update old email address + * utils: libv4l2subdev: Set stream for g_selection + * utils/common: Set V4L2_SUBDEV_CLIENT_CAP_STREAMS for subdevs + * utils/libcecutil: drop spurious dep_libv4lconvert + * v4l2-compliance: Add gadget. as bus_info prefix + * v4l2-compliance: Add handling for QC08C and QC10C format + * v4l2-compliance: call select before dequeuing event + * v4l2-compliance: codecs: Add stateless (TRY_)DECODER_CMD tests + * v4l2-compliance: improve error message + * v4l2-compliance: pass media_fd when walking topology + * v4l2-compliance: support V4L2_PIX_FMT_AV1_FRAME + * v4l2-compliance: Test queue maximum buffers allocation + * v4l2-ctl: Add --get/--set-ctrl support for INTEGER and INTEGER64 arrays + * v4l2-ctl: add missing > in aspect option usage message + * v4l2-ctl: Add routing and streams support + * v4l2-ctl: add support for AV1 stateless control types + * v4l2-ctl: Check for Streams API support + * v4l2-ctl: fix alignment meta formats usage message + * v4l2-ctl: fix handling the premul-alpha sub-option + * v4l2-ctl: improve --silent support + * v4l2-ctl: improve --stream-sleep + * v4l2-ctl: improve --stream-sleep functionality + * v4l2-ctl: Improve sub-device options help text + * v4l2-ctl: reset fps counter when using --stream-sleep with streamoff/on + * v4l2-ctl: show field value in print_concise_buffer() + * v4l2-ctl: support random sleep times + * v4l2-ctl.1.in: add missing --help-meta + * v4l2-ctl/compliance: add include cstdint + * v4l2-ctl/compliance: Add routing and streams multiplexed streams + * v4l2-ctl/compliance: Add simple routing test + * v4l2-info.cpp: fix _SUPPORTS_MAX_NUM_BUFFERS description + * v4l2-info/v4l2-tracer: add macro to mark the trace + * v4l2-tracer: add event tracing/retracing + * v4l2-tracer: add G/S TUNER ioctls + * v4l2-tracer: add macros to print debug info + * v4l2-tracer: add quotes to -DLIBTRACER_PATH="@0@" + * v4l2-tracer: add VIDIOC_ENUM_FRAMEINTERVALS + * v4l2-tracer: add VIDIOC_ENUM_FRAMESIZES + * v4l2-tracer: auto generate flags for DECODER_CMD + * v4l2-tracer: create an option to trace userspace args + * v4l2-tracer: fix autogen script for AV1 + * v4l2-tracer: Fix libv4l2tracer.so loader + * v4l2-tracer: fix trace path name creation + * v4l2-tracer: get decoded bytesused from DQBUF + * v4l2-tracer: print only if debugging option is set + * v4l2-tracer: remove buffers by type and index + * v4l2-tracer: remove compress_frame_count + * v4l2-tracer: replace buftype2s with val2s + * v4l2-tracer: stop retracing failed ioctls + * v4l2-tracer: stop stringifying v4l2_input "tuner" + * v4l2-tracer: stringify target in v4l2_selection + * v4l2-tracer: use __s64 instead of long + * v4l2-tracer: wrap open64/mmap64 functions only if linux && __GLIBC__ + * v4l-utils: libdvbv5: fix doxygen warnings + * v4l-utils: sync with latest kernel headers + * v4l-utils: sync with latest kernel headers + * v4l-utils: sync with latest kernel headers + * v4l-utils: sync with latest kernel headers + * v4l-utils: sync with latest media staging tree + * v4l-utils: sync with upstream media staging kernel. + * v4l-utils.spec.in: update it to work with meson +- Use Qt6 instead of Qt5 when building the qv4l2 flavor +- Drop usage of deprecated %suse_update_desktop_file +- Redo patch since v4l-utils now uses meson: + * use_system_v4l_for_qv4l.patch + +------------------------------------------------------------------- +Wed Mar 1 21:30:29 UTC 2023 - Asterios Dramis + +- Update to version 1.24.1: + * Lot of changes, see ChangeLog for details. +- Removed update-desktop-files and hicolor-icon-theme post + requirements (not needed anymore). + +------------------------------------------------------------------- +Sun Dec 5 19:57:19 UTC 2021 - Dirk Müller + +- update to 1.22.1 + * add missing include for uClibc-ng + * buildsystem: Start v4l-utils 1.21.0 development cycle + * Build with libbpf, remove local sources + * cec: add active sensing test for Audio Rate Control messages + * cec: add Deck Control wake-up handling tests + * cec: add invalid operand test for Audio Rate Control messages + * cec: add One Touch Record Standby tests + * cec: add tests for Deck Control message + * cec: add tests for Deck Play message + * cec: add tests for Give Deck Status message + * cec-compliance: add Audio System mask to Set Audio Rate + * cec-compliance: add cec-test-tuner-record-timer.cpp + * cec-compliance: add 'reason' sanity check. + * cec-compliance: Add version command + * cec-compliance: clarify a power transition test + * cec-compliance: clarify a warning + * cec-compliance: don't skip tests if phys addr is invalid + * cec-compliance: fix broken timer tests + * cec-compliance: fix confusing 'Transient state' message + * cec-compliance: fix 'unresponsive' detection + * cec-compliance/follower: fix type comparison warnings + * cec-compliance: hardcode audio_out_delay to 1 if not set + * cec-compliance: improve confusing message + * cec-compliance: improve current latency checks + * cec-compliance: improve error message + * cec-compliance: improve testLostMsgs test + * cec-compliance: improve warning about late reply + * cec-compliance: move audio helper functions to cec-test-audio.cpp + * cec-compliance: move CDC helper functions to cec-test.cpp + * cec-compliance: options -n and -N were swapped in --help + * cec-compliance: remove Deck Status test + * cec-compliance: remove One Touch Record Status test + * cec-compliance: skip warning if audio_out_delay is 1 + * cec-compliance: the SHA needs to be shown in different ways + * cec-compliance: use send_timer_error for one more test + * cec-compliance: use the actual audio_out_delay value + * cec-compliance: wait up to 10s for Inactive Source reply + * cec-ctl.1.in: fix awkward language + * cec-ctl: Add version command + * cec-ctl/cec-compliance: add pulse8-cec kernel version check + * cec-ctl: detect if Standby etc. messages are Nacked + * cec-ctl: don't spam log with PA changes unless paused + * cec-ctl: free signal time -> signal free time + * cec-ctl: improve --list-devices + * cec-ctl: improve 'Sleep' message in stress test + * cec-ctl: improve the --phys-addr-from-edid-poll option + * cec-ctl: log signal free time when (show && !verbose) + * cec-ctl: min/max-sleep arguments should be double, not unsigned + * cec-ctl: really wait for 2 seconds when the HPD is low + * cec-ctl: report low drive without --verbose + * cec-ctl: showTopology(): fix level wraparound bug + * cec: expand One Touch Record tests + * cec: expand Timer Programming tests + * cec-follower: add --standby and --toggle-power-status + * cec-follower: Add version command + * cec-follower: CEC_MSG_STANDBY can just call enter_standby() + * cec-follower: detect the cessation of Audio Rate Control messages + * cec-follower: drop physical address check + * cec-follower: emulate features for CEC versions < CEC 2.0 + * cec-follower: emulate programmed timer recordings + * cec-follower: fix incorrect fallthrough + * cec-follower: fix logging the SHA + * cec-follower: increase precision of Audio Rate Control active sensing + * cec-follower: refactoring: split up overly long functions + * cec-follower: use log_addr_type to get local device type + * cec: improve vendor ID logging + * cec: remove redundant struct cec_msg initializations + * cec-tuner: std::array conversions + * cec utils and v4l2-compliance: improve version info + * clang-tidy: add a bunch of const + * clang-tidy: use auto + * clang-tidy: use nullptr + * clang-tidy: use using instead of typedef + * clean up includes and convert C includes to C++ + * common/media-info.cpp: 'Flags' was not aligned + * configure.ac: Add --without-libudev option to avoid automagic dep + * configure.ac: autodetect availability of systemd + * configure.ac: drop printf for GIT_COMMIT_DATE + * configure.ac: Export git commit count + * configure.ac: Fix building without libudev + * configure.ac: improve gettext compatibility support + * configure.ac: Resolve GIT_* even if repository is a submodule + * configure.ac: revert AM_GNU_GETTEXT_VERSION change + * contrib/test/test-media: add -setup option + * convert files to reference + * convert to range based loops + * cppcheck: turn several references to const + * cppcheck: use const references + * cv4l-helpers.h: fix the cv4l_buffer assignment operator + * dvb-dev-remote: check if setsockopt() fails + * dvb-fe-tool: better check the event type + * dvb-file: fix one-line output with default values + * dvb-file: reimplement get_pmt_descriptors() + * dvbv5-daemon: don't dereference a null pointer + * dvbv5-daemon: do some cleanups at the daemon + * dvbv5-zap: add a check for dvb_fe_retrieve_status() errors + * dvbv5-zap: add a warning when not recording PMT data + * dvbv5-zap: allow recording also the SDT table + * dvbv5-zap: don't use start time initialized + * dvbv5-zap: fix a cut-and paste error + * dvbv5-zap: remove an unused logic + * dvb-zap: copy_to_file doesn't return any value + * fix mismatching declaration + * Fix print formatting warning for clang. + * ir-ctl: include timeout in raw IR and parse timeout in pulse-space file + * ir-ctl: increase the size of the buffer used to read raw files + * ir-ctl: print correct transmitter count + * ir-ctl: Revert "ir-ctl: print correct transmitter count" + * keytable: Add source information in generated keymaps + * keytable: ensure BPF IR decoders use correct section name + * keytable: Fix missing inclusion of argp.h + * keytable: fix typo + * keytable: restrict installation of 50-rc_keymap.conf + * libcecutil/cec-info.cpp: rename Reserved to Backup + * libcecutil: make license consistent + * libdvb: fix ATSC service location parser + * libdvbv5: add a warning if a descriptor's init doesn't went fine + * libdvbv5: add support for the registration descriptor + * libdvbv5: avoid a potential access out of an array + * libdvbv5: desc_ca: cleanup the routine + * libdvbv5: desc_language: check if the size is correct + * libdvbv5: desc_network_name: simplify the init code + * libdvbv5: detect SMTPE 302m audio format + * libdvbv5: don't leak memory at dvb-dev-remote + * libdvbv5: dvb-dev-local: better handle realloc() + * libdvbv5: dvb-dev-local: fix error handling for device addition + * libdvbv5: dvb-dev-remote: better handle cmd size + * libdvbv5: dvb-dev-remote: don't leak resources at send_buf() + * libdvbv5: fix a typo + * libdvbv5: fix init of the ATSC service location + * libdvbv5: fix the quality detection logic + * libdvbv5: hide my_strlcpy symbol + * libdvbv5: hide stack_dump symbols and provide soname compatibility + * libdvbv5: initialize v3 params + * libdvbv5: use an array for the fourcc type + * libdvbv5: validate cable descriptor's size + * libv4l2: add newer caps to v4l2_driver.c + * Makefile.am: turn the build less verbose by default + * mass constexpr conversions + * mc_nextgen_test: Link against argp library + * media-ctl: add v4l2-ycbcr-enc field in help description + * media-ctl: Add version command + * media-ctl: fix compiler warnings + * media-ctl: fix ycbcr property in help description + * media-info: MEDIA_ENT_F_IO_DTV doesn't need an interface + * Move sync-with-kernel into dedicated shell script ./sync-with-kernel.sh + * qv4l2: add -Wno-psabi to avoid ABI warning on ARM + * qv4l2: Also fall back to old method for querying resolution + * qv4l2: fallback if window()->windowHandle() == NULL + * qv4l2: fix CaptureWin::setWindowSize() if there are multiple screens + * qv4l2: fix more 'deprecated Qt functions' warnings + * qv4l2: fix use of deprecated byteCount method + * qv4l2: QGuiApplication::screenAt() appeared in Qt 5.10 + * qvidcap: fix GL_UNPACK_ROW_LENGTH for Bayer > 8 bits + * qvidcap: set GL_UNPACK_ROW_LENGTH for Bayer formats + * remove pointless constructor + * remove unused ARRAY_SIZE + * Rudimentary support for mi_media_detect_type on FreeBSD. + * sync with latest media kernel + * test-media: add 'date' at beginning and end, show versions + * test-media: add -E and -W options + * test-media: add support for vidtv + * test-media: add 'tee /dev/kmsg' + * test-media: add vidtv to the mc target + * test-media: also keep vivid cec devices open + * test-media: configure vimc scaler correctly + * test-media: drop vidtv from mc, but warn if MC is disabled for DVB + * test-media: drop vidtv from the 'mc' target + * test-media: enable cache_hints for the first vivid instance + * test-media: improve vidtv tests + * test-media: mc should include vidtv + * test-media: missed one scaler config line + * test-media: show version info earlier and show cmd args + * use auto + * use emplace_back + * use explicit for single argument constructors + * Use standard integer types + * use using instead of typedef + * utils/cec: fix inconsistent Vendor ID reporting + * utils/libcecutil/cec-log.cpp: report 6 digits of Vendor ID + * utils: replace push_back with emplace_back + * utils: v4l2-ctl: support V4L2_CAP_IO_MC in v4l2-ctl '--list-formats-*' commands + * v4l2/cec-compliance: use new GIT_SHA variable + * v4l2: common: add the flags V4L2_FMT_FLAG_CSC* to the list that maps flags to str + * v4l2-compliance-32: use v4l2_compliance_CPPFLAGS + * v4l2-compliance: add 0 check for v4l2_event reserved field + * v4l2-compliance: Add libcamera to businfo prefixes + * v4l2-compliance: add missing V4L2_PIX_FMT_H264_SLICE + * v4l2-compliance: add new test for 32/64 bit time handling + * v4l2-compliance: add support for VIDIOC_SUBDEV_QUERYCAP + * v4l2-compliance: Add version command + * v4l2-compliance: check correct buffer length after CREATE_BUFS + * v4l2-compliance: check entity function for codecs + * v4l2-compliance: Convert testBlockingDQBuf to pthreads + * v4l2-compliance: disable cache flag test for kernels < 5.9 + * v4l2-compliance: don't warn about seq counter for metadata + * v4l2-compliance: drop kernel_version + * v4l2-compliance: fix bad indentation + * v4l2-compliance: fix cache hint regressions + * v4l2-compliance: fix colorspace checks for JPEG codecs + * v4l2-compliance: fix g++-7 compile error + * v4l2-compliance: fix stateful encoder tests + * v4l2-compliance: fix two S_EDID tests + * v4l2-compliance: improve comment for CROPCAP/G_SELECTION fail + * v4l2-compliance: improve compound control checks + * v4l2-compliance: improve fmtdesc.description check + * v4l2-compliance: improve frequency range checks + * v4l2-compliance: improve request tests + * v4l2-compliance: improve VIDIOC_TRY_DE/ENCODER_CMD tests + * v4l2-compliance: improve VIDIOC_(TRY_)EN/DECODER_CMD tests + * v4l2-compliance: move all vivid controls to v4l2-compliance.h + * v4l2-compliance: relax testBasicSelection check. + * v4l2-compliance: remove spurious \n in message + * v4l2-compliance: rename stvec to vec_remote_subtests + * v4l2-compliance: skip sequence tests for vivid + * v4l2-compliance: some fails were ignored + * v4l2-compliance: test for vb2/m2m poll kernel bug + * v4l2-compliance: test polling and disconnecting + * v4l2-compliance: use fail_on_test_val for better fail reports + * v4l2-compliance: V4L2_PIX_FMT_VP8_FRAME is for stateless decoder + * v4l2-ctl-32: use v4l2_ctl_CPPFLAGS, fix wrong check + * v4l2-ctl: add missing const, use {} instead of memset + * v4l2-ctl: add new control types + * v4l2-ctl: add '--set-edid type=list' support + * v4l2-ctl: add --show-edid, add new test EDIDs + * v4l2-ctl: add support for VIDIOC_SUBDEV_QUERYCAP + * v4l2-ctl: Add version command + * v4l2-ctl: break on VIDIOC_DQEVENT error + * v4l2-ctl: clean up control value printing + * v4l2-ctl: don't squash setting multiple identical controls. + * v4l2-ctl: fix broken fd.qbuf error check + * v4l2-ctl: fix bugs found in streaming_set_cap2out + * v4l2-ctl: fix hdmi and hdmi-4k-170mhz EDIDs + * v4l2-ctl: fix incorrect check for last_ts + * v4l2-ctl: fix INTEGER64 support, add common_print_control() + * v4l2-ctl: Fix test_ioctl cmd type + * v4l2-ctl: improve --help-edid + * v4l2-ctl: print delta to current clock in verbose mode + * v4l2-ctl: print specific error upon failure + * v4l2-ctl: recognize compound h264 and fwht control types + * v4l2-ctl: remove unused struct flag_def + * v4l2-ctl: rename vivid_uvc_meta_buf to uvc_meta_buf + * v4l2-ctl: set total number of native DTDs to 1 + * v4l2-ctl: subdev: Add support for the CSC API in the subdevices + * v4l2-ctl: subdev: Add the flags to the list of supported mbus formats + * v4l2-ctl: update EDIDs + * v4l2-ctl: update test EDIDs + * v4l2-ctl: vidcap: Add support for the CSC API + * v4l2-dbg: fix control flow problem + * v4l2grab: add command line args for other capture methods + * v4l2grab: add querycap basic support + * v4l2grab: add read and userptr capture methods + * v4l2grab: fix block mode handling + * v4l2grab: prepare it for adding support for other methods + * v4l2grab: remove an unused var + * v4l2grab: some code reorg + * v4l2-info: add v4l2_info_subdev_capability + * v4l2-info.cpp: add new flag V4L2_FMT_FLAG_ENC_CAP_FRAME_INTERVAL + * v4l2-subdev.h: replace BIT(0) by 0x00000001 + * v4l2-tpg.patch: add clamp_t define + * v4l2-tpg.patch: rename min/max defines to tpg_min/max + * v4l2-utils: test cache_hints for MMAP queues + * v4l2-utils: turn fb_formats to constexpr array + * v4l-compliance: re-introduce NON_COHERENT and cache hints tests + * v4l-compliance: remove NON_CONSISTENT hint test + * v4l-helpers: don't mix enum type with int + * v4l-utils: add missing fallthrough + * v4l-utils: add missing static + * v4l-utils: convert board_list to vector + * v4l-utils: FreeBSD already defines packed + * v4l-utils: libdvbv5: fix broken my_strlcpy calls + * v4l-utils: patch v4l2-controls.h + * v4l-utils: switch remote_subtest arrays to vector + * v4l-utils: sync with latest media kernel + * v4l-utils: sync with latest media staging tree + * v4l-utils: sync with latest media_tree master repo + * v4l-utils: sync with media_tree master + * v4l-utils: sync with media_tree/master + * v4l-utils: sync with upstream media_tree master + * v4l-utils: update v4l2-tpg.patch + * v4l-utils: use V4L2_TYPE_IS_CAPTURE +- remove sysmacros.patch: obsolete + +------------------------------------------------------------------- +Sun Feb 21 22:22:50 UTC 2021 - Asterios Dramis + +- Force C++14 as the code is not C++17 ready. Fixes GCC 11 build + (boo#1181884). +- Don't exclude /usr/lib/udev/systemd-udevd.service.d/50-rc_keymap.conf + for Leap 15.3. + +------------------------------------------------------------------- +Tue Sep 8 13:37:47 UTC 2020 - Hans-Peter Jansen + +- Exclude /usr/lib/udev/systemd-udevd.service.d/50-rc_keymap.conf + for Leaps, it isn't installed in the first place + +------------------------------------------------------------------- +Sun Aug 16 22:02:33 UTC 2020 - Dirk Mueller + +- update to 1.20.0: + * v4l2-ctl: add sizeimage suboption for set-fmt-video options + * qvidcap: Add stride option to command line + * buildsystem: Start v4l-utils 1.19.0 development cycle + * dvbv5-zap: Fix typo + * v4l2-ctl: include C++ cmath header + * ubuntu1604: add missing headers for std::exit + * libcecutil: Remove vanished TODO file from ditribution list + * v4l2-ctl: Do not distribute generated 32bit source + * v4l2-compliance: Do not distribute generated 32bit source + * libcecutil: Distribute cec-gen.pl + * Fix broken for loop in libv4l + * Fix for mismatched class/struct tags + * v4l2-compliance: improve metadata capture support + * test-media: remove left-over debug lines + * v4l2-compliance: fail if selection is present for compressed video + * cec-compliance: rename 'ok' to 'unknown' + * cec-ctl/msg2ctl.pl: don't add HTNG commands to msgtable + * cec-compliance: add --test-fuzzing option + * test-media: update vimc tests + * v4l-utils: sync with latest media_tree master + * keytable: add new generated keymaps + * msg2ctl.pl: add newline after log_msg + * cec-follower: drop the hardcoded UI commands list + * cec-ctl/cec-log: use new CEC_OP_UI_CMD defines + * cec utils: support CEC_ADAP_G_CONNECTOR_INFO + * cec-compliance/follower: use new CEC_OP_UI_CMD defines + * utils/libcecutil: add CEC utility library + * cec-follower: switch to the new CEC utilities library + * cec-compliance: use the new CEC utilities library + * cec-ctl: use the new CEC utilities library + * utils/common/cec*: remove unused cec files + * cec-htng(-funcs).h: move to libcecutil + * libcecutil: do not assume building in source tree. + * libcecutil: remove empty generated headers on failure + * libcecutil: cec-gen.pl now generates all headers in one go + * v4l-utils: sync to latest cec-funcs.h + * libcecutil: spaces should be replaced by - for help_features + * cec-compliance: move util_receive to cec-compliance.cpp + * cec-compliance: add timeout to util_receive + * cec-compliance: fix a bug in util_receive + * cec-compliance: Improve the INACTIVE_SOURCE test + * cec-follower: add INACTIVE_SOURCE support. + * v4l2-compliance: fix read/write tests + * cec-compliance: improve Inactive Source test + * cec-compliance: Set OSD Name is not TV specific + * Makefile.am: copy v4l2-tpg.h, not v4l2-tpg* + * v4l-utils: sync with latest media_tree master + * v4l2-info.cpp: support the new hold capture flags + * cec-compliance: remove old tuner tests + * cec-follower: add support for Status Request + * cec-compliance: improve failure reporting + * cec-follower: fix index handling + * v4l-utils: sync with latest media_tree master + * cec-compliance: improve the Inactive Source test + * v4l-utils: sync with latest media_tree master + * v4l2-compliance: better scaler detection for M2M devices + * cec-ctl: add a --phys-addr-from-edid option + * cec: fix Makefile.am to get the right library dependencies + * libcecutil: convert latency values to ms + * cec-ctl: finish --stress-test-power-cycle with active display + * cec-compliance: make the subtest names unique + * cec-compliance: add -e and -l options + * cec-compliance: make test names easier to type + * qvidcap: fix typo: fnt -> fmt + * qvidcap: switch to RGB24 if format is unsupported + * v4l2-ctl: support -k (concise) when showing touch data + * v4l2-compliance: relax a 'is the DONE flag set' test + * v4l-utils: fix sync-with-kernel: it missed pixelformats + * qvidcap: make texts consistent + * cec-follower: add --ignore option + * cec-follower: support CEC 2.0 power status reporting + * cec-compliance: test CEC 2.0 power transitions + * cec-ctl: add --phys-addr-from-edid-poll + * cec-compliance: return OK_PRESUMED in the power transition test + * cec-compliance: update patch link + * cec-compliance: change a fail to a warn + * qvidcap: use --pixelformat instead of --pixel-format + * cec-ctl: show PA changes with --phys-addr-from-edid-poll + * cec-ctl: sleep 5s before retry, use cec_phys_addr_exp + * cec: remove duplicate cec_phys_addr_exp defines + * cec-ctl: improve --test-power-cycle test + * cec-ctl: fix --phys-addr-from-edid-poll support + * cec: show OSD Name with quotes around the name + * v4l2-compliance: log the size of time_t + * v4l2-compliance: use %zd with sizeof(time_t) + * v4l2-ctl/compliance: fix 32-bit g_topology casts + * v4l2-ctl/compliance: fix 32-bit compiler warnings + * v4l2-compliance: use a better invalid address + * v4l2-compliance: fix uninitialized have_sel variable + * v4l2-compliance: return ENOTTY if selection is not supported + * cec-compliance: add invalid ioctls test + * v4l2-compliance: add tests for invalid ioctls + * cec-ctl/compliance: call srandom() + * cec-compliance: '-e' alias for --expect was missing + * cec-compliance.h: add warn_on_test, clean ups + * cec-compliance: fail/warn if reported latency > 50ms + * cec-compliance: add --expect-with-no-warnings + * cec-compliance: swap -n/-N options + * v4l-utils: remove trailing spaces + * qvidcap: properly initialize m_curSize/Data + * Revert "qvidcap: properly initialize m_curSize/Data" + * qvidcap: properly initialize m_curSize/Data + * v4l2-compliance: check source and sink pad types of a link + * cec-compliance: clarify obscure error message + * cec-ctl: remove trailing space in output + * cec-ctl: add timestamps to the power-cycle tests + * cec-ctl: improve --stress-test-power-cycle option + * libcecutil: translate abort_msg to a message string + * libcecutil: drop CEC_MSG_ prefix when logging messages + * v4l2-compliance: improve USERPTR streaming tests + * v4l2-compliance: fix bug/improve testing filler + * v4l2-compliance: fix userptr buffer checks + * cec-compliance: improve system_info_give_features() + * sync with latest media_tree master + * v4l-utils: add --enable-v4l2-compliance/ctl-32 option + * v4l-utils: fix autoconf/automake errors + * test-media: add -32 option + * v4l2-compliance: fix 32 bit warnings + * v4l2-ctl/compliance-32: fix when configuring from another dir + * v4l2-compliance: fix typo: v4l2-ctl -> v4l2-compliance + * cec-ctl: add 'repeats' suboption to --stress-test-power-cycle + * cec-ctl: added polls suboption to --stress-test-power-cycle + * cec-ctl: handle ENONET errors + * Revert "cec-ctl: handle ENONET errors" + * cec-ctl: set wakeup_la correctly and handle ENONET & EINVAL in stress tests + * v4l2-compliance: fix weird formatting with -f + * cec-ctl: don't transmit IMAGE_VIEW_ON every second + * cec-ctl: introduce and use transmit_msg_retry() + * cec-compliance: check for invalid transient power states + * cec-ctl: check for incorrect state transitions + * cec-ctl: add min-sleep suboption + * cec-ctl: show timeouts vs Nacks + * cec-ctl: show | instead of e or E + * test-media: postpone the dmesg command + * cec-follower: check both CEC_CAP_PHYS_ADDR and _CONNECTOR_INFO + * cec-ctl: improve wait_for_pwr_state + * cec-ctl: add physical address sanity checks + * v4l-utils: sync with latest media_tree master + * v4l2-compliance: fix step < 0 control check + * v4l-utils: sync with latest media kernel + * v4l2-compliance: zero mbus_code + * v4l2-compliance: add tests for V4L2_CAP_IO_MC + * v4l2-ctl: zero v4l2_fmtdesc + * v4l-utils: sync with latest media kernel + * gconv: fix compiler warning + * v4l2-ctl: add missing subdev usage in --help-all + * cec-follower: create analog channel frequencies + * cec-follower: add tuner analog service emulation + * cec-follower: fix bugs for tuner emulation + * cec-follower: add tuner step increment/decrement + * cec-follower: fix analog tuner device info update + * cec-follower: rename freq_idx to service_idx + * cec-follower: create digital ARIB channels + * cec-follower: create digital ATSC channels + * cec-follower: create digital DVB channels + * cec-follower: add tuner digital service emulation + * cec-follower: fix tuner step increment/decrement + * cec-compliance: add tuner control test + * v4l-utils: configure.ac: Avoid bashisms + * qv4l2: Use C library file operations with v4lconvert for raw mode devices + * cec: fix cec-log.h dependency issues + * v4l2grab: allow using direct calls instead of libv4l + * v4l2grab: add support for setting the fourcc code + * keymap.h needs sys/types.h and argp.h with musl + * v4l2-compliance: fix assert on only read/write-only controls + * v4l2-ctl: Support query V4L2_CTRL_TYPE_AREA controls + * v4l2-ctl: Support getting V4L2_CTRL_TYPE_AREA controls + * v4l2-ctl: Support setting V4L2_CTRL_TYPE_AREA controls + * v4l2-compliance: Allow all the selection targets for subdevs + * keytable: use input_event properly + * keytable: add compatibility for input_event_sec + * treewide: remove bzero + * treewide: fix redundant expressions + * treewide: remove pointless c_str + * dvb-sat: remove pointless abs call + * utils: checks for empty instead of size in if + * treewide: add extra {} to initialization + * treewide: do not use return after else + * treewide: fix wrong identation + * utils: simplify bool returns + * treewide: fix math problems + * treewide: replace C casts with C++ + * treewide: apply performance fixes + * utils: use bool literals + * utils: do not use empty void with C++ + * utils: remove extra commas + * utils: fix float equal warning + * utils: add copy assignment operator + * utils: initialize variable + * utils: fix wrong format + * utils: fix compilation with C++98 + * utils: add noreturn attribute and remove dead code + * utils: fix implicit float conversions + * utils: fix fallthrough warnings + * utils: fix double promotions + * utils: replace exit with std variant + * cec-compliance: add missing header for clang + * compiler.h: fix compilation with libcxx + * compiler.h: fix compilation with clang + std=c++98 + glibcxx + * utils: replace chr functions with std variants + * ir-ctl: report timeout when it cannot be modified + * keytable: do not warn if keymap not found in IR_KEYTABLE_USER_DIR + * ir-keytable: bpf: improve rsc imon pointer decoder + * sync v4l-utils.spec with the fedora repo + * keytable: cannot load BPF decoders from udevd + * 50-rc_keymap.conf prevents debian testing from booting + * lircd2toml: warn when scancode has duplicate definitions + * keytable: keymap without protocol is invalid + * rc_keymap.5: improve wording around using rc_keymaps for sending + * keytable: a bpf protocol can have parameters and no scancodes + * Fix build failure on s390x + * keytable: support 64 bit scancodes + * keytable: new samsung36 bpf decoder + * Add keymap for Samsung AK59-00125A remote + * ir-ctl: removed nested functions to support building with clang + * ir-ctl: allow unmodulated signal to be sent + * keytable: "-p all" should not attempt BPF decodes that don't exist + * v4l2-ctl: Print UVC meta info + * v4l2-compliance: fix metadata output support + * v4l2-compliance: Verify metadata formats + * v4l2-ctl: support for metadata output + * v4l2-ctl: Add Support for Touch + +------------------------------------------------------------------- +Sun Jun 7 15:09:57 UTC 2020 - Marcus Meissner + +- libv4l-devel-32bit needs to require the shared libraries belonging + to it, libv4l1-0-32bit + libv4l2-0-32bit + libv4l2rds0-32bit + libv4lconvert0-32bit. + + This helps Wine development (bsc#1172301) + +------------------------------------------------------------------- +Sat May 2 15:30:43 UTC 2020 - Stefan Brüns + +- Update to 1.18.1: + Fix GCC 10 / -fno-common +- Drop upstream gcc10.patch + +------------------------------------------------------------------- +Sat May 2 15:21:47 UTC 2020 - Stefan Brüns + +- Avoid symbol name clash causing qv4l2 crash - v4l2_open is defined + by the public libv4l2 and private libv4l2utils + * Update use_system_v4l_for_qv4l.patch + +------------------------------------------------------------------- +Mon Mar 2 12:14:12 UTC 2020 - Tomáš Chvátal + +- Add patch for gcc 10 bsc#1160298: + * gcc10.patch + +------------------------------------------------------------------- +Wed Jan 8 09:02:26 UTC 2020 - Tomáš Chvátal + +- Refresh patch sysmacros.patch +- Update to 1.18.0: + * Various fixes all around + +------------------------------------------------------------------- +Mon Nov 4 13:37:03 UTC 2019 - Stefan Seyfried + +- add v4l-utils-32bitfix.patch (boo#1109541) + +------------------------------------------------------------------- +Sat Sep 7 22:37:25 UTC 2019 - Stefan Brüns + +- Split build of qv4l2ctl to an independent package. This allows + building libv4l much earlier in the build cycle, as it no + longer depends on libQt5. + * Add use_system_v4l_for_qv4l.patch +- Drop glu BuildRequires, only used for unused test binary in + contrib. + +------------------------------------------------------------------- +Mon Oct 1 10:35:11 UTC 2018 - schwab@suse.de + +- sysmacros.patch: include for minor + +------------------------------------------------------------------- +Mon Jun 4 15:25:59 UTC 2018 - mpluskal@suse.com + +- Update to version 1.14.2: + * keytable: abi no longer set LIRC_CAN_REC_SCANCODE for raw + devices + * ir-ctl: abi no longer set LIRC_CAN_SEND_SCANCODE for raw + devices + +------------------------------------------------------------------- +Tue Feb 6 20:06:34 UTC 2018 - asterios.dramis@gmail.com + +- Update to version 1.14.1: + * Lot of changes, see ChangeLog for details. + +------------------------------------------------------------------- +Fri Jul 7 19:33:15 UTC 2017 - asterios.dramis@gmail.com + +- Update to version 1.12.5: + * dvb-scan: fix the logic for multi-section handling + From version 1.12.4: + * libdvbv5: T2 delivery descriptor: fix wrong size of bandwidth + field + * desc_t2_delivery: consider valid to have a short T2 descriptor + * desc_t2_delivery: properly handle cell and subcell tables + * desc_t2_delivery: improve print dumps of T2 delivery + * desc_t2_delivery: resize frequency array for subcel freqs + * libdvbv5: add support for more PMT descriptors + * libdvbv5: fix T2 delivery descriptor parsing in + dvb_desc_t2_delivery_init() + +------------------------------------------------------------------- +Tue Apr 4 06:47:07 UTC 2017 - mpluskal@suse.com + +- Update to version 1.12.3: + * dvb-sat: fix rangeswitch logic + * dvb-sat: add verbose options for LNBf settings + * dvb-sat: add support for Invacom QPH-031 LNBf + * pt_BR: update translation file to reflect latest changes + +------------------------------------------------------------------- +Tue Feb 14 09:57:22 UTC 2017 - mpluskal@suse.com + +- Update to version 1.12.2: + * libdvbv5: Link against libudev + * buildsystem: Add all files to dist target + * v4l2-ctl: Fix unneeded dot in "no hsync lock" + * man: Fix typos in dvbv5-scan dvbv5-zap pages + * libdvbv5: Improve vdr format output for DVB-T(2) + * dvb-fe-tool: add an option to set maximum number of stat samples + * libdvbv5: Fix dvb-format-convert segfault + * ir-ctl: `strndupa' undefined with --disable-nls +- Some packaging cleanup +- Recommend dtv-scan-tables-v5 by dvb-utils + +------------------------------------------------------------------- +Wed Aug 3 21:10:42 UTC 2016 - asterios.dramis@gmail.com + +- Update to version 1.10.1: + * libdvbv5: Fix decsriptors typo + * libv4lconvert: Exclude memsrc implementation for libjpeg-turbo + * v4lconvert: Add "PEGATRON CORPORATION" to asus_board_vendor +- Replaced libqt5-qtbase-devel build requirement with + pkgconfig(Qt5Core), pkgconfig(Qt5Gui), pkgconfig(Qt5OpenGL) and + pkgconfig(Qt5Widgets). + +------------------------------------------------------------------- +Sun Jun 12 07:33:18 UTC 2016 - tchvatal@suse.com + +- Run over with spec-cleaner + +------------------------------------------------------------------- +Sat Jun 11 20:14:09 UTC 2016 - asterios.dramis@gmail.com + +- Update to version 1.10.0: + * Lots of changes: See ChangeLog for details. + +------------------------------------------------------------------- +Wed May 11 15:13:58 UTC 2016 - schwab@suse.de + +- Don't build qv4l2 on arm + +------------------------------------------------------------------- +Fri Jan 8 11:29:30 UTC 2016 - tchvatal@suse.com + +- Version update to 1.8.1: + * See changelog file for in-depth decription of the fixes + +------------------------------------------------------------------- +Fri Sep 25 20:38:19 UTC 2015 - mpluskal@suse.com + +- Add gpg signature +- Switch to qt5 on recent releases +- Split language packages +- Update to 1.8.0 + * See ChangeLog for full list of changes + +------------------------------------------------------------------- +Sun Sep 20 08:47:04 UTC 2015 - meissner@suse.com + +- Add -devel pkg to baselibs to build Wine on 64bit only distros + +------------------------------------------------------------------- +Fri Sep 11 18:14:52 UTC 2015 - asterios.dramis@gmail.com + +- Update to version 1.6.3: + * v4lconvert: Add ASUS A7Sn to upside down table + * v4lconvert: Add ASUS A6R to upside down table + * Synchronize with the Kernel + * vivid-tpg.h.patch: update to match current upstream tree + * sync-with-kernel: add include/linux/media.h + * configure.ac: fix qv4l2 if QGLFunctions doesn't exist + * libv4lconvert: Fix support for Y16 pixel format + +------------------------------------------------------------------- +Fri Mar 13 14:55:11 UTC 2015 - tchvatal@suse.com + +- Cleanup few conditions for better readability + +------------------------------------------------------------------- +Sun Feb 1 20:34:52 UTC 2015 - asterios.dramis@gmail.com + +- Update to version 1.6.2: + * Lots of changes: See ChangeLog for details. +- Added doxygen build requirement. +- Added new subpackages dvb-utils (split from v4l-utils), libdvbv5 and + libdvbv5-devel. + +------------------------------------------------------------------- +Sat Jul 26 21:08:16 UTC 2014 - asterios.dramis@gmail.com + +- Update to version 1.2.1: + * Lots of changes: See ChangeLog for details. +- Added alsa-devel build requirement. +- Use autoreconf to fix build in openSUSE 12.2. +- Removed bufferoverflowstrncat.patch (fixed upstream). + +------------------------------------------------------------------- +Wed Jun 4 19:51:21 UTC 2014 - asterios.dramis@gmail.com + +- Update to version 1.0.1: + * Lots of changes: See ChangeLog for details. +- Removed ImageMagick and sysfsutils-devel build requirements (not needed + anymore). +- Added pkg-config build requirement. +- Use desktop-file-utils instead of update-desktop-files for openSUSE > 12.1. + Added desktop-file-utils build requirement for this. +- Removed the following patches: + * disable_rds_compilation.patch (not needed anymore). + * udev-rules-dir.patch (fixed upstream). + * use-openat-if-available.patch (fixed upstream). +- Added a patch "bufferoverflowstrncat.patch" to fix rpm post build check error + "Statement might be overflowing a buffer in strncat". + +------------------------------------------------------------------- +Thu Jan 2 10:02:04 UTC 2014 - dmueller@suse.com + +- fix compiled-in paths by specifying PREFIX and LIBDIR correctly + during build + +------------------------------------------------------------------- +Sat Mar 16 21:59:51 UTC 2013 - dmueller@suse.com + +- add use-openat-if-available.patch: + * prefer openat over deprecated open syscall (fixes aarch64) + +------------------------------------------------------------------- +Fri Nov 2 21:30:16 UTC 2012 - asterios.dramis@gmail.com + +- Update to version 0.8.9: + libv4l changes: + * libv4lconvert: Various Pixart JPEG fixes + * libv4lconvert: Add more notebooks to the upside down device table + Utils changes: + * keytable: Add support for Sanyo IR and RC-5-SZ protocol + * keytable: Add missing buttons in shipped keytables + * v4l2-compliance, v4l-ctl, qv4l2: Sync with development branch +- Removed libdvbv5-Add-missing-includes.patch (fixed upstream). + +------------------------------------------------------------------- +Wed Oct 17 13:53:54 UTC 2012 - fcrozat@suse.com + +- Add udev-rules-dir.patch and BuildRequires udev to fix build with + new udev rules directory location. + +------------------------------------------------------------------- +Wed May 30 18:24:41 UTC 2012 - asterios.dramis@gmail.com + +- Added a patch (libdvbv5-Add-missing-includes.patch) in order to fix + compilation due to missing includes. + +------------------------------------------------------------------- +Sun Apr 22 17:15:15 UTC 2012 - asterios.dramis@gmail.com + +- Update to v0.8.8 + Utils changes: + * dvb-format-convert: fix argument check and helper message + libv4l changes: + * tinyjpeg: Better luminance quantization table for Pixart JPEG + * tinyjpeg: Fix out of bounds array usage + * libv4lconvert: Use bytesperline instead of width + * libv4lconvert: Revert Lenovo X201 upside down table entry + * libv4lconver: Add 06f8:301b pac7302 based cam to the quirk table + +------------------------------------------------------------------- +Wed Apr 11 20:26:20 UTC 2012 - asterios.dramis@gmail.com + +- Update to v0.8.7 + Utils changes: + * ir-keytable: Fixed file parsing errors + * qv4l2: fix segfault when there are no inputs or outputs + * dvb: Merged DVB tools from development branch + libv4l changes: + * Add some more laptop models to the upside down devices table +- Rebased disable_rds_compilation.patch to apply cleanly. + +------------------------------------------------------------------- +Sun Feb 26 12:06:28 UTC 2012 - asterios.dramis@gmail.com + +- Update to v0.8.6 + libv4l changes: + * Add support for libjpeg >= v7 + * Add new matching algorithm for upside down table + * Add some more laptop models to the upside down devices table + * Retry with another frame on JPEG header decode errors + * Improved JL2005BCD support + * Set errno to EIO if getting 4 consecutive EAGAIN convert errors + * Make software autowhitebalance converge faster + * Add quirk support for forced tinyjpeg fallback +- Spec file updates: + * Added libjpeg-devel in BuildRequires: as direct dependency. + +------------------------------------------------------------------- +Sun Jan 29 00:56:38 UTC 2012 - jengelh@medozas.de + +- Remove redundant tags/sections per specfile guideline suggestions + +------------------------------------------------------------------- +Wed Aug 18 15:53:48 UTC 2011 - Rene.vanPaassen@gmail.com + +- Spec file updates: + * Add udev in BuildRequires: for SLE 11 and 11 sp1 (fixes error that + /lib/udev/rules.d is not owned by any package). + +------------------------------------------------------------------- +Sat Jul 23 18:47:46 UTC 2011 - asterios.dramis@gmail.com + +- Update to v0.8.5 + Utils changes: + * parse_em28xx_drxk.pl: New parser for dumps of em28xx with drxk frontend + * qv4l2: Add support for bitmap controls + * v4l2-ctl: add support for the new bitmask control type + * v4l2-ctl: add support for the control event + * v4l2-ctl: small bugfixes + * v4l2-compliance: various new tests + * lib_media_dev: various fixes / cleanups + libv4l changes: + * Add some more laptop models to the upside down devices table + * Add support for SE401 pixelformat + * Software autogain tweaks +- Rebased disable_rds_compilation.patch to apply cleanly. + +------------------------------------------------------------------- +Sun Jun 26 16:52:00 UTC 2011 - asterios.dramis@gmail.com + +- Update to v0.8.4 + Utils changes: + * Various small fixes + * qv4l2: Add support for configuring the framerate for devices which support + this like uvc cams + * parse_tcpdump_log.pl: new parser for tcpdump / wireshark made usbmon dumps + * New lib_media_dev lib, to pair audio devices with video devices (and other + combinations) for now this lives in utils and does not get installed + systemwide, as the API is not stable + libv4l changes: + * Add many more laptop models to the upside down devices table + * Some small bugfixes + * Add vicam cameras to list of cameras need sw auto gain + whitebalance + * Add support for M420 pixelformat + * Add support for Y10B pixelformat + * Add support for JPGL pixelformat + * Modified (rewrote) jpeg decompression code to use libjpeg[-turbo], for + much lower cpu load when doing jpeg decompression + * Detect usb connection speed of devices + * Rewrite src format selection algorithm, taking bandwidth into account and + choosing the format which will give us the lowest CPU load while still + allowing 30 fps + * Intercept S_PARM and redo src format selection based on new fps setting, + potentially switching from JPG to YUYV / M420 when the app lowers the fps, + resulting in a significant lower cpu load +- Spec file updates + * Require libv4l in the libraries. + * Minor other updates. +- Fixed rpmlint warning "wrong-icon-size". +- Removed the desktop file and icon for qv4l2 (they are provided by the + package now). +- Rebased disable_rds_compilation.patch to apply cleanly. + +------------------------------------------------------------------- +Sun May 8 17:46:17 UTC 2011 - asterios.dramis@gmail.com + +- Update to v0.8.3 + * Name changed to v4l-utils (libv4l + some utils). + * Lots of changes (see ChangeLog). +- Spec file updates + * Changes based on rpmdevtools templates and spec-cleaner run. + * Changes to incorporate the addition of the utils. + * Updates Licenses (based on Fedora). +- Added desktop file and icon for qv4l2 (taken from Fedora package). +- Removed libv4l-nonvoid_return.diff patch (fixed upstream). +- Added a patch to disable compilation of utils/rds (fails to compile with + ic2-dev.h from ic2-tools). + +------------------------------------------------------------------- +Thu Jun 10 08:32:50 UTC 2010 - wittemar@googlemail.com + +- build libv4l-32bit + +------------------------------------------------------------------- +Mon May 17 10:07:34 UTC 2010 - coolo@novell.com + +- remove explicit version requires to non-versioned package from + shared libraries +- buildrequire pkg-config to fix provides + +------------------------------------------------------------------- +Mon Feb 22 15:53:02 CET 2010 - ro@suse.de + +- buildfix: "control reaches end of non-void function" + +------------------------------------------------------------------- +Mon Feb 22 09:39:16 UTC 2010 - bphilips@novell.com + +- Upstream doesn't provide bz2. Change back to gz in URL. + +------------------------------------------------------------------- +Mon Feb 22 09:35:32 UTC 2010 - bphilips@novell.com + +- Update to v0.6.4 + - Add more laptop models to the upside down devices table + - Add error checking to mr97310a decompression + - Increase mr97310a minimum clockdiv upon 3 consecutive decoding errors + - Add support for decompressing CPIA1 compressed YUV + - Speed up autogain algorithm + +- Updates from v0.6.3 + - Add more laptop models to the upside down devices table + - Improved mr97310a decompression + - Add support for decompressing yuv420 planar JPEG (one component per SOS, + 3 SOS per frame), this is needed for w9968cf based cams + - Add support for STV0680 raw bayer data + +- Updates from v0.6.2 + - Add more laptop models to the upside down devices table + - Put usb id in controls shm segment name for USB devices, to better + distuingish between devices plugged into the same port + - Enable software whitebalance and autogain for mr97310a cameras + - Improvements / tweaks to software autogain algorithm + +------------------------------------------------------------------- +Fri Jan 15 13:15:18 UTC 2010 - chris@computersalat.de + +- cleanup spec + * shared libs to subpkg + * added debug_package_requires + * bzipped source +- rpmlint + * devel-package-with-non-devel-group + * summary-not-capitalized +- added baselibs.conf as a source2 + o and updated + +------------------------------------------------------------------- +Tue Sep 1 13:10:00 CEST 2009 - schaeferf.obs@googlemail.com + +- Update to v0.6.1 + - Add more laptop models to the upside down devices table + - Bugfix: fixup 320x240 output for pac7302 cameras + - Bugfix: fix reqbuf Device or Resource busy error when using v4l2_read() + - Some applications want to use jpg format if possible, so do not hide + it from the apps (do not assume it always needs conversion) + - Change controls shm segment name to include the username, as it is only + writable by the user (this means libv4l controls are per user) (Gregor Jasny) + - Add support for decompressing sn9c2028 compressed bayer (Theodore Kilgore) + - Report V4L2_FMT_FLAG_EMULATED in v4l2_fmtdesc flags for emulated formats + +------------------------------------------------------------------- +Thu Aug 6 20:48:38 CEST 2009 - schaeferf.obs@googlemail.com + +- Update to v0.6.0 + - Software whitebalancing, automatic gain, exposure and gamma control for cams which lack this in hardware + - Fake v4l2 controls to control all these + - Software flipping controls + - Recognize disabled controls and replace with fake equivalents where available + - Add tons of laptop models to the upside down devices table + - Add support for decompressing ov511 and ov518 "JPEG" + - Improved pac207 decompression code + - Support for rgb565 source format + - Many bug fixes +- Merge spec files from drivers:webcam and openSUSE:Factory + +------------------------------------------------------------------- +Tue Mar 10 16:51:08 PDT 2009 - bphilips@suse.de + +- Add baselibs.conf to build -32bit packages +- Version bump to 0.5.8 + * Add support for UYVY (for USB Apple iSight) patch by Julien BLACHE + + * Remove v4lconvert_yvyu_to_yuv420 function as its functionality is + duplicate with v4lconvert_yuyv_to_yuv420 + * Use Requires.private where appropiate in .pc files (patch by Gregor Jasny) + * Switch to using USB-id's instead of USB product string, as not all devices + set a unique product string. This fixes the upside down issues with + genius e-messenger 112 cams + * Add support for sn9c20x-i420 format patch by Vasily Khoruzhick + + +------------------------------------------------------------------- +Wed Dec 3 22:16:58 PST 2008 - bphilips@suse.de + +- Version bump to 0.5.7 + * Fix a nasty (and stupid) bug in the special try_fmt handling for UVC cams + * Add some more verbose logging of various calls when asking libv4l to log + calls to a file, to assist in (future) debugging + libv4l-0.5.6 + * Always do a s_fmt on uvc cams even if this changes nothing, as not doing + the s_fmt triggers a bug in the uvcvideo driver in kernel <= 2.6.28 + (with certain cams) + libv4l-0.5.5 + * Avoid the use of try_fmt as much as possible on UVC cams, instead use the + results of the enum_framesizes ioctl. This is because: + 1) try_fmt actually causes IO with UVC cams making apps which do lot of + querrying of device capabilities slow (cheese) + 2) some buggy cams don't like getting lots of UVC video probes and crash + when they do + libv4l-0.5.4 + * Don't report DQBUF errors when errno is EAGAIN, this fixes flooding the + screen with errors when applications use non blocking mode + * Add support for downscaling to make apps which want low resolutions + (skype, spcaview) happy when used with cams which can only do high + resolutions (by Lukáš Karas ). + * Add support for converting to YV12 planar (next to the already supported + YU12 / I420) + * Implement RGB/BGR24 -> YU/YV12 conversion + libv4l-0.5.3 + * When conversion requires multiple passes don't alloc the needed temporary + buffer on the stack, as some apps (ekiga) use so much stack themselves + this causes us to run out of stack space + libv4l-0.5.2 + * Add Philips SPC210NC to list of cams with upside down sensor, reported by + Rieker Flaik + * Work around some drivers (pwc) not properly reflecting what one gets after a + s_fmt in their try_fmt answer + * Check that s_fmt atleast gives us the width, height and pixelformat try_fmt + promised us, and if not disable conversion + * Only check width, height and pixelformat when checking if we are doing + conversion, instead of doing a memcmp, as that are the only things which + the convert code checks + * Take into account that the buffers only contain half of the lines when + field is V4L2_FIELD_ALTERNATE + libv4l-0.5.1 + * Add support for software cropping from 352x288 -> 320x240 / 176x144 -> + 160x120, so that apps which will only work with vga resolutions like + 320x240 (Skype!) will work with cams/drivers which do not support cropping + CIF resolutions to VGA resolutions in hardware. This makes all 2.6.27 gspca + supported cams, except for the pac7302 which only does 640x480 (and skype + wants 320x240), work with skype + * The v4lconvert_convert function was becoming a bit of a mess, so split the + functionailiy into separate v4lconvert_convert_pixfmt, v4lconvert_rotate and + v4lconvert_crop functions, and make v4lconvert_convert a frontend to + these + * Do not link the wrapper libs against libpthread (patch from Gregor Jasny) + libv4l-0.5.0 + * Add support for enumerating framesizes and frameintervals of emulated + formats when the driver supports it for the real format + * Make sure the video device always gets opened RW even if the application + asks for RO + * Add Genius E-Messenger 112 (093a:2476) to list of cams which have their + sensor upside down + libv4l-0.4.3 + * Add suport for YUYV and YVYU packed pixel formats (Jean-Francois Moine) + * Prefer compressed pixformats for resolutions > 176x144 + libv4l-0.4.2 + * The bayer pixel order in gspca's sonixb driver was different from that in + the sn9c102 driver from the mainline kernel, a recent gspca patch fixes + this, adjust libv4l to match (and make it work properly with the sn9c102 + driver). + libv4l-0.4.1 + * When the driver supports read() and we are not converting let the driver + handle read() instead of emulating it with mmap mode + * Fix errors and warnings when compiling with ICC (Gregor Jasny) + * Add support to libv4lconvert for rotating images 90 (for Pixart 7302 cams) + or 180 (Philips SPC200NC / Philips SPC300NC) degrees + * Add support for Pixart custom JPEG format + * Hide non public symbols (Gregor Jasny) + * Fix and enable x86_64 asm jpeg decompress helper functions (Gregor Jasny) + +------------------------------------------------------------------- +Fri Aug 15 19:52:59 CEST 2008 - bphilips@suse.de + +- Initial SuSE package + diff --git a/v4l-utils.keyring b/v4l-utils.keyring new file mode 100644 index 0000000..b4dc10f --- /dev/null +++ b/v4l-utils.keyring @@ -0,0 +1,1334 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v2 + +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 +u9xy9cLNEpDJVQ== +=0Zu2 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/v4l-utils.spec b/v4l-utils.spec new file mode 100644 index 0000000..dc7059c --- /dev/null +++ b/v4l-utils.spec @@ -0,0 +1,380 @@ +# +# spec file for package v4l-utils +# +# Copyright (c) 2025 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "qv4l2" +%global psuffix -%{flavor} + +%ifarch armv7l armv7hl aarch64 +# Qt6 doesn't have gl support in these archs +%bcond_with qvidcap +%else +%if 0%{?suse_version} == 1500 +# Neither does Qt in SLE15 +%bcond_with qvidcap +%else +%bcond_without qvidcap +%endif +%endif + +%endif +%define _udevdir %(pkg-config --variable udevdir udev) +%define so_ver 0 +%define sname v4l-utils +Name: v4l-utils%{?psuffix} +Version: 1.30.1 +Release: 0 +Summary: Utilities for video4linux +License: GPL-2.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later +URL: https://linuxtv.org/downloads/v4l-utils/ +Source0: https://linuxtv.org/downloads/v4l-utils/%{sname}-%{version}.tar.xz +Source1: https://linuxtv.org/downloads/v4l-utils/%{sname}-%{version}.tar.xz.asc +Source2: %{sname}.keyring +Source100: baselibs.conf +Patch0: use_system_v4l_for_qv4l.patch +Patch1: v4l-utils-32bitfix.patch +BuildRequires: alsa-devel +%if 0%{?suse_version} == 1500 +BuildRequires: gcc13-c++ +%else +BuildRequires: gcc-c++ +%endif +BuildRequires: libjpeg-devel +BuildRequires: meson +BuildRequires: pkgconfig +BuildRequires: pkgconfig(json-c) +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(systemd) +BuildRequires: pkgconfig(udev) +Requires: libv4l = %{version} +%if "%{flavor}" == "" +BuildRequires: doxygen +BuildRequires: kernel-headers +%endif +%if "%{flavor}" == "qv4l2" +BuildRequires: pkgconfig(Qt6Core) +BuildRequires: pkgconfig(Qt6Core5Compat) +BuildRequires: pkgconfig(Qt6Gui) +BuildRequires: pkgconfig(Qt6OpenGL) +BuildRequires: pkgconfig(Qt6OpenGLWidgets) +BuildRequires: pkgconfig(Qt6Platform) +BuildRequires: pkgconfig(Qt6Widgets) +BuildRequires: pkgconfig(alsa) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(libv4l2) +BuildRequires: pkgconfig(libv4lconvert) +%endif + +%description +v4l-utils is a collection of various video4linux (V4L) utilities. + +%lang_package + +%package devel-tools +Summary: Utilities for v4l2 / DVB driver development and debugging +License: GPL-2.0-only AND GPL-2.0-or-later +Requires: libv4l = %{version} + +%description devel-tools +Utilities for v4l2 / DVB driver authors for development and debugging. + +%package -n dvb-utils +Summary: Utilities for DVB devices +License: GPL-2.0-only +Recommends: dtv-scan-tables-v5 + +%description -n dvb-utils +dvb-utils is a collection of various DVB utilities. + +%package -n libdvbv5-%{so_ver} +Summary: Library that provides access to DVB adapter cards +License: GPL-2.0-only + +%description -n libdvbv5-%{so_ver} +libdvbv5 is a library meant to be used by digital TV applications that need to +talk with media hardware. + +This package contains shared lib for packages that use libdvbv5. + +%package -n libdvbv5-devel +Summary: Development files for libdvbv5 +License: GPL-2.0-only +Requires: libdvbv5-%{so_ver} = %{version} + +%description -n libdvbv5-devel +The libdvbv5-devel package contains libraries and header files for +developing applications that use libdvbv5. + +%package -n libdvbv5-gconv +Summary: Gconv files with the charsets For Digital TV +License: GPL-2.0-only +Requires: libdvbv5-%{so_ver} = %{version} + +%description -n libdvbv5-gconv +Some digital TV standards define their own charsets. Add library +support for them: EN 300 468 and ARIB STD-B24 + +%package -n libv4l +Summary: Collection of video4linux support libraries +License: GPL-2.0-only AND LGPL-2.1-or-later + +%description -n libv4l +libv4l is a collection of libraries which adds a thin abstraction layer on +top of video4linux2 devices. The purpose of this (thin) layer is to make it +easy for application writers to support a wide variety of devices without +having to write separate code for different devices in the same class. + +%package -n libv4l1-%{so_ver} +Summary: Video4linux support library +License: LGPL-2.1-or-later +Requires: libv4l + +%description -n libv4l1-%{so_ver} +libv4l1 offers the (deprecated) v4l1 API on top of v4l2 devices, independent +of the drivers for those devices supporting v4l1 compatibility (which many +v4l2 drivers do not). + +This package contains shared lib for packages that use libv4l1. + +%package -n libv4l2-%{so_ver} +Summary: Video4linux support library +License: LGPL-2.1-or-later +Requires: libv4l + +%description -n libv4l2-%{so_ver} +libv4l2 offers the v4l2 API on top of v4l2 devices, while adding for the +application transparent libv4lconvert conversion where necessary. + +This package contains shared lib for packages that use libv4l2. + +%package -n libv4l2rds%{so_ver} +Summary: Video4linux support library +License: LGPL-2.1-or-later +Requires: libv4l + +%description -n libv4l2rds%{so_ver} +libv4l2rds offers decoding raw RDS data from V4L2 Radio devices and simple ways +to access the received RDS information. + +This package contains shared lib for packages that use libv4l2rds. + +%package -n libv4lconvert%{so_ver} +Summary: Video4linux support library +License: LGPL-2.1-or-later +Requires: libv4l + +%description -n libv4lconvert%{so_ver} +libv4lconvert offers functions to convert from any (known) pixel-format +to V4l2_PIX_FMT_BGR24 or V4l2_PIX_FMT_YUV420. + +This package contains shared lib for packages that use libv4lconvert. + +%package -n libv4l-devel +Summary: Development files for libv4l +License: LGPL-2.1-or-later +Requires: libv4l1-%{so_ver} = %{version} +Requires: libv4l2-%{so_ver} = %{version} +Requires: libv4l2rds%{so_ver} = %{version} +Requires: libv4lconvert%{so_ver} = %{version} + +%description -n libv4l-devel +The libv4l-devel package contains libraries and header files for +developing applications that use libv4l. + +%package -n qv4l2 +Summary: Video4linux test control and streaming test application +License: GPL-2.0-or-later +Requires: libv4l = %{version} + +%description -n qv4l2 +qv4l2 is a test control and streaming test application for video4linux. + +%prep +%autosetup -p1 -n %{sname}-%{version} + +%build +%if 0%{?suse_version} == 1500 +export CC=gcc-13 +export CXX=g++-13 +%endif + +%meson \ + -Dudevdir=%{_udevdir} \ + -Ddoxygen-doc=disabled \ + -Ddoxygen-man=false \ + -Ddoxygen-html=false \ + -Dbpf=disabled \ +%if "%{flavor}" == "qv4l2" + -Dqv4l2=enabled \ +%if %{with qvidcap} + -Dqvidcap=enabled \ +%else + -Dqvidcap=disabled \ +%endif + -Dlibdvbv5=disabled \ + -Dv4l-plugins=false \ + -Dv4l-utils=false \ + -Dv4l-wrappers=false \ + -Dv4l2-compliance-libv4l=false \ + -Dv4l2-ctl-libv4l=false \ + -Dv4l2-ctl-stream-to=false \ +%else + -Dqv4l2=disabled \ + -Dqvidcap=disabled \ + -Dlibdvbv5=enabled \ +%endif + %{nil} +%meson_build + +%install +%meson_install +%if "%{flavor}" == "" +install -dm 0755 %{buildroot}%{_libdir}/gconv/gconv-modules.d +mv %{buildroot}%{_libdir}/gconv/gconv-modules %{buildroot}%{_libdir}/gconv/gconv-modules.d/libdvbv5.conf +%find_lang "%{name}" +%find_lang libdvbv5 +%endif + +find %{buildroot} -type f -name "*.la" -delete -print + +%if "%{flavor}" == "" +%post -n libdvbv5-%{so_ver} -p /sbin/ldconfig +%postun -n libdvbv5-%{so_ver} -p /sbin/ldconfig +%post -n libdvbv5-gconv -p %{_sbindir}/iconvconfig +%postun -n libdvbv5-gconv -p %{_sbindir}/iconvconfig +%post -n libv4l1-%{so_ver} -p /sbin/ldconfig +%postun -n libv4l1-%{so_ver} -p /sbin/ldconfig +%post -n libv4l2-%{so_ver} -p /sbin/ldconfig +%postun -n libv4l2-%{so_ver} -p /sbin/ldconfig +%post -n libv4l2rds%{so_ver} -p /sbin/ldconfig +%postun -n libv4l2rds%{so_ver} -p /sbin/ldconfig +%post -n libv4lconvert%{so_ver} -p /sbin/ldconfig +%postun -n libv4lconvert%{so_ver} -p /sbin/ldconfig +%endif + +%if "%{flavor}" == "" +%files +%license COPYING +%doc ChangeLog README.md TODO +%dir %{_sysconfdir}/rc_keymaps/ +%config(noreplace) %{_sysconfdir}/rc_maps.cfg +%{_udevdir}/rc_keymaps +%{_udevrulesdir}/70-infrared.rules +%{_bindir}/cx18-ctl +%{_bindir}/cec-compliance +%{_bindir}/cec-ctl +%{_bindir}/cec-follower +%{_bindir}/edid-decode +%{_bindir}/ir-ctl +%{_bindir}/ir-keytable +%{_bindir}/ivtv-ctl +%{_bindir}/media-ctl +%{_bindir}/rds-ctl +%{_bindir}/v4l2-ctl +%{_bindir}/v4l2-sysfs-path +%{_mandir}/man5/rc_keymap.5%{?ext_man} +%{_mandir}/man1/ir-keytable.1%{?ext_man} +%{_mandir}/man1/v4l2-ctl.1%{?ext_man} +%{_mandir}/man1/cec-compliance.1%{?ext_man} +%{_mandir}/man1/cec-ctl.1%{?ext_man} +%{_mandir}/man1/cec-follower.1%{?ext_man} +%{_mandir}/man1/ir-ctl.1%{?ext_man} +%{_mandir}/man1/edid-decode.1%{?ext_man} + +%files lang -f "%{name}.lang" + +%files devel-tools +%license COPYING +%doc ChangeLog README.md TODO +%{_bindir}/decode_tm6000 +%{_bindir}/v4l2-compliance +%{_bindir}/v4l2-tracer +%{_sbindir}/v4l2-dbg +%{_mandir}/man1/v4l2-compliance.1%{?ext_man} +%{_mandir}/man1/v4l2-tracer.1%{?ext_man} + +%files -n dvb-utils +%license COPYING +%doc ChangeLog README.md TODO +%{_bindir}/dvb-* +%{_bindir}/dvbv5-* +%{_mandir}/man1/dvb-*1%{?ext_man} +%{_mandir}/man1/dvbv5-*1%{?ext_man} + +%files -n libdvbv5-%{so_ver} -f libdvbv5.lang +%{_libdir}/libdvbv5.so.%{so_ver}* + +%files -n libdvbv5-devel +%license COPYING.libdvbv5 +%doc TODO.libdvbv5 +%{_includedir}/libdvbv5/ +%{_libdir}/libdvbv5.so +%{_libdir}/pkgconfig/libdvbv5*.pc + +%files -n libdvbv5-gconv +%{_libdir}/gconv/*.so +%{_libdir}/gconv/gconv-modules.d/libdvbv5.conf + +%files -n libv4l +%license COPYING.libv4l +%doc ChangeLog README.md README.libv4l TODO +%{_libdir}/libv4l/ + +%files -n libv4l1-%{so_ver} +%{_libdir}/libv4l1.so.%{so_ver}* + +%files -n libv4l2-%{so_ver} +%{_libdir}/libv4l2.so.%{so_ver}* + +%files -n libv4l2rds%{so_ver} +%{_libdir}/libv4l2rds.so.%{so_ver}* + +%files -n libv4lconvert%{so_ver} +%{_libdir}/libv4lconvert.so.%{so_ver}* + +%files -n libv4l-devel +%license COPYING.libv4l +%doc README.lib-multi-threading +%{_includedir}/libv4l*.h +%{_libdir}/libv4l*.so +%{_libdir}/pkgconfig/libv4l*.pc +%endif + +%if "%{flavor}" == "qv4l2" +%files -n qv4l2 +%license COPYING +%doc ChangeLog README.md TODO +%{_bindir}/qv4l2 +%{_datadir}/applications/qv4l2.desktop +%dir %{_datadir}/icons/hicolor +%dir %{_datadir}/icons/hicolor/??x?? +%dir %{_datadir}/icons/hicolor/??x??/apps +%dir %{_datadir}/icons/hicolor/scalable +%dir %{_datadir}/icons/hicolor/scalable/apps +%{_datadir}/icons/hicolor/*/apps/qv4l2.* +%{_mandir}/man1/qv4l2.1%{?ext_man} +%if %{with qvidcap} +%{_bindir}/qvidcap +%{_datadir}/applications/qvidcap.desktop +%{_datadir}/icons/hicolor/*/apps/qvidcap.* +%{_mandir}/man1/qvidcap.1%{?ext_man} +%endif + +%endif + +%changelog