v4l2loopback (0.15.3) unstable; urgency=medium

  [ IOhannes m zmölnig ]
  * Use linux>=6.18 accessor for v4l2->private_data (#653)

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Mon, 24 Nov 2025 14:11:58 +0100

v4l2loopback (0.15.2) unstable; urgency=medium

  [ Simon Richter ]
  * Add <linux/timer.h> include

  [ IOhannes m zmölnig ]
  * Fix use-after-free in loopback_add()
    Thanks to Team 42-b3yond-6ug <https://b3yond.org/>
  * Fix compilation with linux-6.18.0

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Wed, 15 Oct 2025 19:54:52 +0200

v4l2loopback (0.15.1) unstable; urgency=medium

  [ Neil Armstrong ]
  * Drop from_timer macro usage

  [ Hanspeter Portner ]
  * Adds support for XBGR32 (XR24)

  [ IOhannes m zmölnig ]
  * [github] fix failures with the badge-generation

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Wed, 16 Jul 2025 15:31:57 +0200

v4l2loopback (0.15.0) unstable; urgency=medium

  [ IOhannes m zmölnig ]
  * change public ioctl numbers!
  * add V4L2LOOPBACK_CTL_VERSION ioctl

  * use fixed-size types in public API
  * order ioctl's by value
  * v4l2loopback-ctl: (also) query the module version via ioctl
  * [meta] pre-commit config to automatically run clang-format before committing
  * only use `timer_delete_sync` compat macro for linux<6.2.0
  * [github] build on ArchLinux, Fedora, openSUSE
  * [github] Create a badge with all kernels tested in the CI
  * [github] note on "exact" v4l2loopback version in issue template
  * README Replace 'Skype' with 'Zoom'
  * DKMS: dummy 'clean' rule

  [ Theodore Chiu ]
  * added functionality for linux 6.15+ (#626)

  [ Andreas Beckmann ]
  * dkms.conf updates

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Tue, 27 May 2025 22:46:46 +0200

v4l2loopback (0.14.0) unstable; urgency=medium

  [ IOhannes m zmölnig ]
  * Fix automatic retrieval of signing keys from DKMS>=3.0.4
  * Document building for a different kernel
  * Minor code cleanups
  * GitHub
    + Improve github-issue template
    + Exclude old Ubuntu LTS releases that cannot be used in GH actions

  [ MrGamy ]
  * Update README.md

  [ stephematician ]
  * Refactor poll()
    + Fixes poll() for readers failing if first call has readable state
    + Tidy up some whitespace
  * Fix FIFO management
  * V4L2 UAPI compliance in format negotation and stream activation
    + Safer list access in DQBUF
    + Add guard to list ops in REQBUFS
    + Simplify close and free
    + Fix v4l2-compliance result for button ctrl
    + Fix default configuration of exclusive_caps
    + Set valid pix format in add()
    + Enforce limits on time-per-frame
    + Enumerate all formats except when fixed
    + Add resize outbufs_list helper function
    + Add file-io initialisation function
    + Use STREAMOFF in REQBUFS when count is zero
    + Use REQBUFS to free buffers in close()
    + Add function to check buffer-set capability
    + Consolidate S_FMT across reader and writer
    + Set "I/O method" on first read/write or REQBUF
    + Remove timeout allocate from allocate_buffers
    + Add mutex for format and buffer changes
    + QBUF/DQBUF ensure buffer type is MMAP
    + QBUF/DQBUF set flags when using timeout I/O
    + QUERYBUF guess capture buffer flags
    + QUERYBUF set timestamp if buffer dequeued
    + DQBUF/STREAMON fail if opener has not alloc'd
    + Use u32 type for buffer counts
    + Refactor control of logical streams
    + Set unique timestamp flags
  * v4l2loopback-ctl: Fix for block when use set-timeout-image verb
    + Update README accordingly
  * Do not discard return value of vm_alloc_page
  * Use atomic operations to count vm_open/close
  * Simplify loop preparation cases in  mmap()
  * Code cleanup
    + Reorder code
    + Use macros
    + Remove unreachable/unused code
    + Tidy up debugging printout

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Fri, 28 Feb 2025 09:48:06 +0100

v4l2loopback (0.13.2) unstable; urgency=medium

  * Fix compilation on 32bit architectures (i386, armhf,...)
    * Replace (s64 % u32) with our own v4l2l_mod64() wrapper
    * Fix mod64 warnings on arm
  * utils buildsystem
    + Don't fail 'clean' target if 'make -C utils clean' fails
    + clean objectfiles
  * v4l2loopback-ctl
    + mention the special caps 'any' in help
    + improve error-reporting and return errcodes where appropriate
    + avoid unused variable warning
    + explicitly return the fd from open_controldevice()

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Fri, 24 May 2024 11:30:51 +0200

v4l2loopback (0.13.1) unstable; urgency=medium

  [ Max Harmathy ]
  * Avoid building utils with dkms

  [ IOhannes m zmölnig ]
  * 'release.sh' script
    + shellchecked
    + write back new version to v4l2loopback.h (if necessary)

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Tue, 19 Mar 2024 22:15:34 +0100

v4l2loopback (0.13.0) unstable; urgency=medium

  [ IOhannes m zmölnig ]
  * Set device_caps in init_vdev() for all kernel-versions (not just >4.7.0)
  * Don't set the V4L2_CAP_DEVICE_CAPS on device_caps
  * only set (struct video_device).device_caps on linux>=4.7.0
  * pre-processor directives should be left-aligned
  * tabify
  * Drop obsolete ISSUE_TEMPLATE
  * Mention that people should do research before creating a new ticket
  * document that we expect people to do some research before creating a ticket
  * document that people must have a proper bulid-environment

  [ mpromonet ]
  * reset ready_for_capture flag processing VIDIOC_STREAMOFF

  [ IOhannes m zmölnig ]
  * redirect people for StackOverflow for general help.
  * rule to get the latest&greatest .clang-format for the linux-kernel
  * clang-format -i *.c *.h
  * fixed whitespace in comments and strings
  * use $() rather than ``
  * use more frames for setting caps.
  * document that GStreamer-1.0 is required (rather than GStreamer-0.10)
  * rename _SIZE_MAX_WIDTH to _SIZE_DEFAULT_MAX_WIDTH (same for HEIGHT)
  * Add clang-format target
  * comment formatting
  * switched v4l2_loopback_init() for a more complete v4l2_loopback_add()
  * per-device max_width/max_height
  * store card-label per device
  * copy newly created video-device back
  * indentation
  * use per-device name rather than the global ones
  * switching free_devices() to idr-iterator
  * getting rid of static number of devices...
  * limit card_label to 32 chars (like v4l2_capability->card)
  * make sure to neither exceed size of cap->card nor dev->card_label
  * prevent out-of-bounds access to exclusive_caps[]
  * less ambiguous wording when MAX_DEVICES is exceeded
  * allow device_nr > MAX_DEVICES
  * less verbose output
  * use video_nr for initial devices
  * macro for the default value of EXLCUSIVE_CAPS
  * reordered card_label calculation
  * fill default-values
  * return the used device number
  * move v4l2_loopback_config to a separate header
  * move IDR declaration to a better place.
  * drop devptr from v4l2_loopback_add
  * use "int" instead of "bool" for the public interface
  * now that exclusive_caps are int and can be negative, use that to ask for the default
  * use "err" instead of "ret"
  * implement /dev/v4l2loopback to dynamically create/remove devices
  * use a mutex to prevent concurrent access to the /dev/v4l2loopback device
  * check whether the device is currently open before closing it
  * v4l2_loopback_config.card_label now has a fixed size (32 bytes)
  * only return the device-number if device_add was successfull
  * added QUERY ioctl
  * sample application to add/delete/query devices on the fly
  * indentation
  * moved DEFINE_IDR/MUTEX *again*
  * "every" -> "each"
  * show default values in "modinfo"
  * Makefile for utils/
  * don't assume that IDR matches the device-number
  * less verbose
  * print perror() if query fails
  * explicitely return ENOSYS for invalid ioctls
  * use "break" instead of "goto"
  * return EINVAL by default for valid ioctls
  * copy data from userspace instead of casting away
  * note that we need two device numbers
  * Add example udev rules.
    Thanks to Norman Rasmussen <norman@rasmussen.co.za>
  * formatting
  * perror() if query-after-add fails
  * only set device is the pointer is valid
  * (struct v4l2_loopback_config) now has both output_nr and capture_nr
  * adjust utility to (currently defunct) split CAPTURE/OUTPUT devices
  * document how to call /dev/v4l2loopback ioctls
  * gitignore .clang-format
  * don't export repo-configuration
  * mention that v4l2_loopback_config.announce_all_caps is to be going away
  * more specific rule for creating persistent names
  * rule to allow members of 'video' to change device-properties via sysfs
  * restructed usage() a bit
  * implement "set-fps"
  * also format code in utils/
  * moved v4l2loopback version to header file
  * capitalize command enums
  * added "-h" and "-v" commands
  * SETFPS -> SET_FPS
  * dropped unused "fd" from set_fps call

  [ You-Sheng Yang ]
  * utils: respect CPPFLAGS from env vars

  [ Sakari Tanskanen ]
  * Allow reading buffered frames

  [ You-Sheng Yang ]
  * dev: initialize per opener v4l2_fh
  * event: install event (un)subscribe hook
  * event: support polling for events

  [ IOhannes m zmölnig ]
  * control more thingies
  * whitespace
  * Add documentation about using dkms.
    Thanks to Toon Verstraelen

  [ Toon Verstraelen ]
  * Document how to load the module at boot

  [ IOhannes m zmölnig ]
  * lower-case readme
  * Usde "If" rather than "When"

  [ IOhannes m zmoelnig ]
  * note that you cannot just load an old module into a new kernel (even if you built the module yourself).

  [ ilsi ]
  * Fix DKMS typos in README

  [ IOhannes m zmölnig ]
  * use a helper for showing short descriptions of commands
  * announce 'set-caps' and 'set-timeout-image'
  * re-formatted
  * allow some commands without a /dev/v4l2loopback device
  * "not implemented" is not the same as "unknown command"
  * announce the not-yet-implemented "get-fps" and "get-caps" commands
  * make commands static when possible
  * helper-function to get sysfs files
  * specify mode when opening a sysfs-file
  * close fd on error
  * implement get_fps
  * basic get_caps implementation
  * store fourcc as uint32_t
  * fixed help-display
  * rename get_<file> to open_<file>
  * properly display FOURCC when printing caps
  * re-factored caps-parsing into separate function
  * implement set_caps
  * less verbose
  * query default values before setting those we want to
  * clang-format
  * reverse arguments for set-* commands
  * draft implementation of set-timeout-image
  * proper ordering of arguments in help
  * remove printout
  * search for executable in PATH
  * comments
  * clang-format
  * v4l2loopback-ctl: support for adding split-devices
  * fixed spelling errors
  * v4l2loopback_private.devicenr -> .device_nr
  * remove debugging output
  * function to check for deprecated calls
  * wrap launching of external programs into separate function
  * TERM the child-process on receiving SIGINT; wait for child-process to cleanup
  * move helpers to top of file
  * TODO: we want to be able to set the timeout directly
  * helpers for getting/setting controls by name
  * have "set-timeout-image" set the 'timeout' and 'timeout_image_io' controls
  * allow setting of the timeout (TODO: parse args for timeout)
  * fix(?) GStreamer-pipeline for setting the timeout image
  * added 'default' clause to switch-statement
  * clang-format
  * build utils from master-makefile
  * factored device-opening into helper-function
  * handle "any" caps and set "keep_format" and "sustain_framerate"
  * resolve timeout-image to full path (and allow 4096 chars in paths)
  * track how many producers have opened the device
  * reformatting
  * close video-device before trying to set timeout-image

  [ You-Sheng Yang ]
  * event: fix backward compatibility to 3.16
  * add GitHub Actions yaml
  * utils: use VIDIOC_QUERYCTRL for control name resolution
  * utils: fix error: 'for' loop initial declarations are only allowed in C99 mode

  [ IOhannes m zmölnig ]
  * improve parse-device to deal with /dev/v4l/by-*/* symlinks
  * keep alignment when running clang-format
  * moved fallback defines for V4L2_PIX_FMT_* to v4l2loopback_formats.h
  * modular help
  * set-timeout-image subcommand now takes a "-t <timeout>" flag
  * less verbose
  * optional argument-check for called_deprecated()
  * check framerate-argument for "set_fps"
  * return success of subcommands
  * catch empty /sysfs/.../format (but don't complain loudly)
  * simplified caps-parsing
  * get-fps now falls back to querying the video-device's PARMs
  * use C-style comments for documentation
  * print error when GStreamer-style caps are detected
  * renamed "utils/v4l2loopback" to "utils/v4l2loopback-ctl"
  * replaced placeholder file with .gitignore
  * fixed help2man invocation
  * clean-target for utils
  * call utils' "clean" target when running "make clean"
  * use /dev/video0 throughough
  * update to new v4l2loopback-ctl syntax
  * Fixed upper-casing to standard English
  * note on changing module options
  * note on dynamic device management
  * make "changing options" a sub-item in the "options" chapter
  * grouping into chapters
  * more upper-casing

  [ You-Sheng Yang ]
  * ci: match known failures to kernel versions

  [ IOhannes m zmölnig ]
  * comment fixes
  * ctrl_handler_init/setup
  * note on why try_free_buffers() doesn't do harm if keep_format is true
  * dropped double "sudo"

  [ You-Sheng Yang ]
  * gitignore: add utils/v4l2loopback-ctl and v4l2loopback.mod

  [ IOhannes m zmölnig ]
  * automatically assign new-bugreports a default label/assignee
  * disable blank issues and redirect people to U&L resp the wiki
  * stackoverflow -> unix.stackexchange
  * also mention stackoverflow
  * use an imperative rather than a noun as the bug-report name.
  * pass number of args to help-functions
  * print known fourcc flags when calling 'set-caps' without arguments
  * clang-format
  * editorconfig

  [ Luigi Baldoni ]
  * Include header outside of struct definition

  [ Oleksandr Natalenko ]
  * confine v4l2loopback_cleanup_module

  [ IOhannes m zmölnig ]
  * fixed building of v4l2loopback-ctl in the aftermath of #389
  * doc on how to develop with vagrant
  * slight re-ordering of struct-init
  * use module_init()/module_exit() rather than '#ifdef MODULE'
  * note on what to do if the VM freezes
  * drop MODULE_ALIAS("devname")
  * add args to vbox-restart
  * [ci] don't bail out on the first kernel that unexpectedly fails
  * [ci] if a build failed, accept that 'make clean' might fail as well...
  * [ci] mark all trusty kernels as known-bad

  [ Piotr Orzechowski ]
  * Fix the dkms install instructions in README.md

  [ IOhannes m zmölnig ]
  * [ci] renamed 'master' branch to 'main'
  * embrace Kbuild
  * fixed typo
  * use KBUILD_MODULES to detect Kbuild
  * [gh] fixes errors in the issue template
  * bumped copyright-dates in README
  * mention "SSL" in the troubleshooting section
  * fixed typos
  * more english style fixes
  * Fix scanf/printf formatting

  [ Tadayuki Okada ]
  * try to set requested colorspace

  [ You-Sheng Yang ]
  * coverity: fix unchecked return value
  * coverity: fix null pointer dereference

  [ IOhannes m zmölnig ]
  * don't fail if allocating 0-sized buffers

  [ a1346054 ]
  * use apt-get instead of aptitude
  * master branch was renamed to main
  * fix shellcheck warnings
  * unify codestyle
  * fix spelling
  * add missing final newline
  * trim excess whitespace
  * trim trailing whitespace

  [ Emil Velikov ]
  * dkms.conf: remove REMAKE_INITRD option

  [ bakedpotato191 ]
  * Add module_version macro

  [ Bechir Mghirbi ]
  * Adding support for RGBA32 (AB24)

  [ Jim Scarborough ]
  * Fix currentversion.sh to return the value

  [ IOhannes m zmölnig ]
  * made "currentversion.sh" script POSIX conformant
  * [ci] drop 'groovy'; add 'hirsuite' and 'impish'
  * [ci] dynamically generate Debian/Ubuntu releases to test
  * on Debian kernel-header packages have a different suffix...
  * guard V4L2_PIX_FMT_RGBA32 definition...
  * [ci] better check for installed kernel headers
  * clang format
  * [ci] show successfull builds

  [ Anatoli Babenia ]
  * README.md Add info how to check the device number

  [ IOhannes m zmölnig ]
  * inject snapshot-version in banner

  [ Benny Baumann ]
  * Limit v4l2_loopback_write calls to (streaming) writers
  * Simplify code by using upstream video_drvdata helper
  * Free module data on error
  * Initialize max_width/max_height relative to defaults
  * Off-by-one condition when retrieving defaults

  [ IOhannes m zmölnig ]
  * Make sure that only the boolean state of announce_all_caps is used.

  [ He1nMueck ]
  * Make free_buffers() return void.

  [ Benny Baumann ]
  * Reintroduce previous behavior for write call

  [ Jan-Ralf Meier ]
  * Check for negative index before proceeding

  [ Benny Baumann ]
  * Free module data on error

  [ Robert Geislinger ]
  * fixed possible bufferoverflow

  [ Alienmaster ]
  * simplify bufferoverflow checks

  [ IOhannes m zmölnig ]
  * indentation

  [ Alienmaster ]
  * added explicit cleanup on error

  [ IOhannes m zmölnig ]
  * removed superfluous check
  * only allocate_buffers() if buffer_size>0

  [ Benny Baumann ]
  * Release memory on error in v4l2_loopback_open
  * Only reset timeout_image_io when open succeeds
  * Avoid redundant/conflicting casts

  [ Tobias Stoeckmann ]
  * attr_store_maxopener: Handle integer truncation

  [ Benny Baumann ]
  * Properly snprintf the device card label string into the capability query buffer
  * Avoid format string issue

  [ umläute ]
  * Create SECURITY.md

  [ IOhannes m zmölnig ]
  * add explicit format specifier to printf() invocations

  [ Sludge ]
  * Support `V4L2_PIX_FMT_ABGR32` format

  [ Tobias Stoeckmann ]
  * Fix warning with gcc 12

  [ Jan-Ralf Meier ]
  * Fix return condition, due to EINVAL memory offset.

  [ IOhannes m zmölnig ]
  * Update release-script to work with any branch
  * Exclude repository config in source-tarballs
  * Backported dkms-patch from Ubuntu

  [ Oleksandr Natalenko ]
  * v4l2loopback: un-confine v4l2loopback_cleanup_module()

  [ IOhannes m zmölnig ]
  * quote FOURCC-codes to show the space

  [ Jianhui Dai ]
  * Reset V4L2_BUF_FLAG_MAPPED if use_count <= 0
  * log pid for debug

  [ tudor ]
  * DKMS section clarification
  * too many empty lines

  [ You-Sheng Yang ]
  * Track active readers
  * Support V4L2_EVENT_PRI_CLIENT_USAGE

  [ Tobias Stoeckmann ]
  * Fix signed integer overflows in increments.

  [ Kate Hsuan ]
  * v4l2loopback: a new offset for V4L2_EVENT_PRI_CLIENT_USAGE

  [ IOhannes m zmölnig ]
  * Allow a minimum of 0 fps
  * clang-format
  * Propagate snapshot version to v4l2loopback-ctl
  * strip leading 'v' from git snapshot version
  * v4l2loopback-ctl: compat flag "--version"
  * calculate MODULE_VERSION from V4L2LOOPBACK_VERSION
  * use linux' __stringify
  * re-ordered 'struct v4l2_loopback_config' so "announce_all_caps" comes last
  * logging: move "pid(%d)" after the v4l2-loopback identifier
  * [ci] use Environment-File rather than set-output
  * Drop support for Linux<2.6.37
  * v4l2loopback-ctl: print module version as well
  * [ci] Job for code-linting
  * [ci] Fixup lint-job
  * Re-formatted code with updated .clang-format
  * [ci] hardcode Debian's supported releases to their rolling names

  [ sanbrother ]
  * Fix compilation issues under AOSP

  [ mzihlmann ]
  * mutex lock access to outbufs_list in vidioc_dqbuf

  [ Asahi Lina ]
  * Revert "Fix signed integer overflows in increments."
  * Change the type of read_position and write_position to 64-bit

  [ IOhannes m zmölnig ]
  * Use separate spinlocks for protecting list access
  * Make VIDIOC_ENUMINPUT return V4L2_IN_ST_NO_SIGNAL if there's no producer
  * code formatting
  * Always protect access to dev->outbufs_list with the list_lock mutex
  * v4l2loopback-ctl help: use 'detail' level rather than 'brief' flag
  * help: reverse general form and example
  * codespell fixes
  * fix typo
  * add 'install' target for utils
  * clang-format
  * more gitignores
  * Bump copyright dates
  * simple test application for producing/consuming buffers
  * more debugging and a global buffer
  * set bufsize/bytesused when initializing buffers for MMAP
  * fix random; optionally set timestamp
  * try more...
  * stuff...
  * use DEFAULT colorspace
  * set V4L2_BUF_FLAG_TIMESTAMP_COPY flag when copying the buffer timestamp
  * more diagnostic output
  * refactor the TRY/S_FMT code
  * fix formatting warnings when printing timestamps
  * compat for older kernels
  * more clang-format
  * reversed compat logic
  * yikes, yet another typo
  * tests/consumer: make S_FMT errors non-fatal
  * prevent multiple output streams
  * set TIMESTAMP flags
  * G_FMT_CAP: only report failure if the format has not been fixated
  * script to check the output/capture formats of a device
  * V4L2LOOBACK_IS_FIXED_FMT() to check if the format is changeable
  * unify the output of vidioc_enum_fmt_*
  * set default framesize
  * allow setting of minimum width/height as well
  * v4l2loopback-ctl: allow setting of minimum framesize
  * clang-format
  * tests/producer: fix description of "-c" flag and linefeed
  * long-options for v4l2loopback-ctl
  * indentation
  * unset the timeout_image_io flag if allocating the timeout-image fails
  * only unset the timeout_image_io flag when requesting buffers for the timeout image
  * turn the "timeout_image_io" ctrl into a button
  * whitespace
  * fixate format with "keep_format"
  * report format via /sys if it is somehow FIXED
  * run timeout-image gst-pipeline through "tee"
  * add "--verbose" flag to "set-timeout-image"
  * prevent multiple readers to start streaming
  * indentation...
  * add /sys/devices/virtual/video4linux/video*/type interface
  * fix device_nr checks in V4L2LOOPBACK_CTL_QUERY
  * v4l2loopback-ctl: add "list" verb
  * v4l2loopback-ctl: escape special chars in device-names
  * refactored raw-string printout into helper function
  * v4l2loopback-ctl: align help
  * v4l2loopback-ctl: more escaping for device-name
  * v4l2loopback-ctl: add flags to "query" verb
  * v4l2loopback-ctl: streamline help

  [ Hans de Goede ]
  * v4l2loopback: Fixup bytesused field when writer sends a too large value

  [ IOhannes m zmölnig ]
  * fallback to dprintkrw() if dev_warn_ratelimited() is not available
  * rename sysfs-attribute "type" to "state"
  * make the code less-dependant on the "capture_nr" member of the config-struct
  * swap output/capture device when adding new devices
  * Remove the 'capture_nr' member from the v4l2_looback_config struct
  * build-fixes: install and utils
  * force timestamp.tv_sec to (long long int)

  [ Wren Turkal ]
  * Remove support for pre-3.6.1 Linux kernels.
  * Remove support for pre-4.0.0 kernels.

  [ IOhannes m zmölnig ]
  * [github] Mention "discussions" in the issue landing-page

  [ rdbo ]
  * fixed utils build for musl (missing GLOB_ONLYDIR)

  [ IOhannes m zmölnig ]
  * note that GLOB_ONLYDIR is indeed not requried by POSIX

  [ rdbo ]
  * added v4l2loopback-ctl.o to gitignore

  [ IOhannes m zmölnig ]
  * Fix formatting

  [ Fufu Fang ]
  * Update README.md

  [ IOhannes m zmölnig ]
  * [ci] skip failures on kernels without v4l2 support
  * [ci] install all available kernel headers
  * [ci] show skipped builds
  * [ci] Fix testing for v4l2 capabilities
  * [ci] bump actions/checkout to v4
  * [ci] lower actions/checkout to v3
  * [ci] only install latest packageversion of each kernel-flavour
  * [ci] install 'dkms' to get some more building prerequisites
  * some minor typos
  * use 'sudo' to change the permissions of the module
  * use $< instead of hardcoding the module name
  * 'sign' target to sign the generated module for use with secure boot

  [ Joaquim Monteiro ]
  * Use strscpy instead of strlcpy if available

  [ IOhannes m zmölnig ]
  * redefine strscpy() as strlcpy() if needed
  * Lower minimum width/height to extreme values
  * allocate_buffers: fix check whether we can re-allocate

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Tue, 19 Mar 2024 17:11:08 +0100

v4l2loopback (0.12.7) unstable; urgency=medium

  [ IOhannes m zmölnig ]
  * Add explicit format specifier to printf() invocations

  [ Andreas Beckmann ]
  * REMAKE_INITRD is deprecated in dkms 3
  * Do not attempt to build modules for kernels without CONFIG_VIDEO_V4L2

  [ Dimitri John Ledkov ]
  * Fixup obsolete module init/exit

  [ You-Sheng Yang ]
  * dev: initialize per opener v4l2_fh
  * event: install event (un)subscribe hook
  * compliance: fix enum frame sizes/intervals errors
  * compliance: fix "fmtdesc.type was modified" error
  * UBUNTU: SAUCE: coverity: fix null pointer dereference

  [ Tim Gardner ]
  * Fix unchecked return value in vidioc_s_fmt_out()
  * Fix resource leak in v4l2_loopback_open()
  * Fix NULL dereference in free_buffers()

  [ Erich Eickmeyer ]
  * Don't fail if allocating 0-sized buffers

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Wed, 05 Aug 2022 00:24:03 +0200

v4l2loopback (0.12.6) unstable; urgency=medium

  * Add explicit format specifier to printf() invocations

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Sun, 03 Aug 2020 13:15:02 +0200

v4l2loopback (0.12.5) unstable; urgency=medium

  [ Joan Bruguera ]
  * Fix build in Linux 5.7-rc1 due to symbol name changes

  [ IOhannes m zmölnig ]
  * Simplify set/clear of V4L2_CAP_DEVICE_CAPS in querycaps
  * Use temp-var for capabilities
  * Also set vdev->device_caps

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Sun, 19 Apr 2020 19:06:09 +0200

v4l2loopback (0.12.4) unstable; urgency=medium

  [ Alex Xu (Hello71) ]
  * Use v4l2_buffer ptr instead of timeval (Compat with linux-5.6)

  [ tongdaxu ]
  * Add example that loops over YUV frames infinitely

  [ Thomas Hutterer ]
  * Document 'exclusive_caps' mode option (and some markdown fixes)

  [ IOhannes m zmölnig ]
  * Set the default number of buffers to 2
  * Print "SUCCESS" message on installation success
  * Drop cast to (time_t)
  * Document 'exclusive_caps' mode option (and some more markdown fixes)

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Thu, 09 Apr 2020 22:09:28 +0200

v4l2loopback (0.12.3) unstable; urgency=medium

  [ Ricardo Ribalda Delgado ]
  * v4l2lookback: Port to kernel 5.4+

  [ IOhannes m zmölnig ]
  * Set video_device->device_caps for linux>4.7.0
  * Set some more device_caps
  * Update issue templates

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Fri, 06 Dec 2019 18:27:25 +0100

v4l2loopback (0.12.2) unstable; urgency=medium

  [ wuweixin ]
  * Update README.md

  [ Theodore Cipicchio ]
  * Replace v4l2_get_timestamp with ktime_get_ts(64)

  [ IOhannes m zmölnig ]
  * Mention support for 5.0.0
  * Fix typo

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Mon, 27 May 2019 20:32:08 +0200

v4l2loopback (0.12.1) unstable; urgency=medium

  [ IOhannes m zmölnig ]
  * Fix permission of source code files
  * Initialize variables
  * Use %u to print size_t
  * Improve coding style by removing unused variables
  * More coding style fixes
  * Use GStreamer-1.0 caps in the documentation
  * Gst1.0 compat for example-script
  * Protect VP9 and HEVC by #ifdef guards

  [ Andrii Danyleiko ]
  * Fix typo

  [ Kai Kang ]
  * Replace do_gettimeofday with v4l2_get_timestamp for linux-5 compat

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Wed, 23 Jan 2019 21:59:29 +0100

v4l2loopback (0.12.0) unstable; urgency=medium

  [ WaleedTageldeen ]
  * Adding support for NV12 as per umlaeute/v4l2loopback#169

  [ Jon Morley ]
  * v4l2loopback.c: Update error message in buf read to reflect actual copy call.

  [ IOhannes m zmölnig ]
  * Use kernel-version to determine whether we should set vfl_dir
  * sign releases and add a message
  * Support for 8bit bayer
  * moved bayer-formats into "packed formats" section

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Mon, 02 Jul 2018 12:27:29 +0200

v4l2loopback (0.11.0) unstable; urgency=medium

  [ Nick Sarnie ]
  * Adapted to new kernel timer API

  [ Attila Tőkés ]
  * Avoid setting dev->ready_for_output and opener->type on get/try calls
  * Allow input enumeration, even when exclusive_caps=1 and no input provided yet

  [ Todor Minchev ]
  * Makefile: remove depmod call in modules_install target

  [ Michel Promonet ]
  * Added format VP9 & HEVC

  [ IOhannes m zmölnig ]
  * Simplified HAVE_TIMER_SETUP clauses
  * Fixed format output to sysfs
  * Removed trailing whitespace
  * Updated README
    * Added `depmod -a` calls to the documentation
    * Fixed omitted word
  * [github] Added issue template for new reports
    * please don't post images in the issue-tracker

 -- IOhannes m zmölnig <zmoelnig@umlaeute.mur.at>  Tue, 06 Mar 2018 10:05:11 +0100

v4l2loopback (0.10.0) unstable; urgency=medium

  [ Paul Brook ]
  * Use consistent device names

  [ Michel Promonet ]
  * Initialize bytesused in buffer processing write and use it processing read

  [ Kurt Kiefer ]
  * Initialize bytesused also on output VIDIOC_QBUF.
  * Preserve output VIDIOC_QBUF timestamp if present

  [ IOhannes m zmölnig ]
  * switch ctl-script to GStreamer-1.0
  * move braces into #ifdef block
  * use late_initcall() when not built as module
  * Disable exclusive_caps by *default*
  * Removed deprecated current_norm

  [ George Chriss ]
  * Directly set v4l2 buffer flags as v4l2 documentation (note difference vs. internal v4l2l buffers) Hopefully closes: https://github.com/umlaeute/v4l2loopback/issues/60
  * Build typo: change b->flags to buf->flags

  [ Gavin.Qiu ]
  * Fix bug that return wrong buffer index when dequeue

  [ IOhannes m zmölnig ]
  * Added more AUTHORS
  * Updated README (compat, copyright and cosmetics)

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Fri, 02 Dec 2016 22:00:27 +0100

v4l2loopback (0.9.1) unstable; urgency=medium

  * Fixed module version

 -- IOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>  Wed, 03 Jun 2015 19:47:23 +0200

v4l2loopback (0.9.0) unstable; urgency=medium

  [ IOhannes m zmölnig ]
  * formats
    * support more formats
    * support compressed formats
    * move formats-enumeration to separate file
    * tools to implement missing formats
  * controls
    * disable deprecated vidioc_*ctrl callbacks
    * register custom-controls
    * use ctrl_config information in (deprecated) queryctrl
  * fixed bugs
    * used static code analysis to find more bugs
    * more error checking
    * check timeperframe before setting it (Closes: #61)
    * make MAX_DEVICES/TIMEOUT/BUFFERS settable during build-process (Closes: #55)
    * check for errors returned by get_capture_buffer()
    * check whether there is at least 1 requestbuffer
    * unsigned comparision against <0
    * avoid setting b->count to negative/null
    * ...
  * fixed typos
  * code formatting
  * standards compliancy
    * standard-conformant bus_info
    * pretend to not support {G,S,ENUM}_{IN,OUT}PUT depending on state
    * only pretend to not support IN/OUTPUT enumeration in exclusive-caps mode
  * test programs
    * for (de)queuing buffers
    * for writing interlaced video
  * compatibility with newer kernels
  * compatibility with older kernels
  * Updated documentation
  * Removed GFDL document
    * note where to get API documentation

  [ tatokis ]
  * Updated v4l2loopback.c to compile on >= 3.18 kernel

  [ tz ]
  * add ondemandcam

  [ Yusuke Ohshima ]
  * Fix issue #79

  [ Tasos Sahanidis ]
  * Fix for kernel 4.0

 -- IOhannes m zmölnig <zmoelnig@umlaeute.mur.at>  Tue, 02 Jun 2015 19:58:39 +0200

v4l2loopback (0.8.0) unstable; urgency=medium

  [ Dmitry Eremin ]
  * Add DKMS support.

  [ Angus McInnes ]
  * Make vidioc_g_fmt_out not change the format
  * Set correct output buffer type in vidioc_dqbuf

  [ Javier Infante ]
  * Added card_labels option when loading module.

  [ IOhannes m zmölnig ]
  * renamed 'card_labels' to 'card_label'
  * removed '-e' flag from call to 'depmod' (needs '-E' or '-F')
  * auto-detect new version
  * auto-update dkms.conf to new version

 -- IOhannes m zmölnig <zmoelnig@iem.at>  Tue, 10 Dec 2013 18:12:15 +0100

v4l2loopback (0.7.1) unstable; urgency=low

  [ Aidan Thornton ]
  * Linux 3.11 compatibility fix

  [ IOhannes m zmölnig ]
  * trying to keep pre-2.6.29 compatibility

 -- IOhannes m zmoelnig (gpg-key at iem) <zmoelnig@iem.at>  Mon, 16 Sep 2013 09:55:51 +0200

v4l2loopback (0.7.0) unstable; urgency=low

  [ IOhannes m zmölnig ]
  * don't implement STD-ioctls
  * Revert "dummy audio ioctl's that return EINVAL"
  * disable more STD-stuff based on V4L2LOOPBACK_WITH_STD
  * don't announce all caps capabilities
  * only announce capture/output capabilities if possible
  * 'exclusive_caps' parameter to control caps announcment
  * avoid duplicate setting of cardname
  * break lines
  * remove commented out code
  * updated AUTHORS information
  * fixed ChangeLog for 0.6.1
  * updated NEWS for last releases

  [ Anatolij Gustschin ]
  * fix missing spin lock init
  * add newlines to debug statements

  [ Hans Verkuil ]
  * reformatting to kernel-standards

 -- IOhannes m zmoelnig (gpg-key at iem) <zmoelnig@iem.at>  Fri, 07 Jun 2013 11:24:34 +0200

v4l2loopback (0.6.3) unstable; urgency=low

  [ Ted Mielczarek ]
  * Fill in the "v4l2_capability::bus_info" field (Closes: #30)

  [ IOhannes m zmölnig ]
  * make "v4l2_capability::card" unique per device (Closes: #37)
  * fill in "video_device::vfl_dir" field on newer kernels (Closes: #35)
  * always provide format-string when using printf()
  * fixing update-changelog script

 -- IOhannes m zmoelnig (gpg-key at iem) <zmoelnig@iem.at>  Tue, 05 Feb 2013 10:03:28 +0100

v4l2loopback (0.6.2) unstable; urgency=low

  [ IOhannes m zmölnig ]
  * provide our own v4l2l_vzalloc
  * added missing includes
  * create unique names for the various devices
  * more verbose debugging output when capture DQBUF fails

  [ Anton Novikov ]
  * make v4l2loopback.ko a PHONY target
  * restarting-writer.sh runs on Ubuntu 11.10
  * warning about disabled timeout when setting image
  * readpos2index -> bufpos2index
  * test different queue-sizes in restarting-writer.sh
  * fix buffer indices before dev->used_buffers update
  * fix ctl script (was hardcoded /dev/video0)

  [ yukkeorg ]
  * Fix error on compile in Linux kernel 3.6.1.

 -- IOhannes m zmoelnig <zmoelnig@umlaeute.mur.at>  Tue, 23 Oct 2012 14:38:02 +0200

v4l2loopback (0.6.1) UNRELEASED; urgency=low

  [ IOhannes m zmoelnig ]
  * Makefile fixes for debian

 -- IOhannes m zmoelnig (gpg-key at iem) <zmoelnig@iem.at>  Fri, 27 Apr 2012 17:22:25 +0200

v4l2loopback (0.6.0) UNRELEASED; urgency=low

  [ IOhannes m zmölnig ]
  * added direct link to wiki
  * fixed typos
  * check for (devices<0) rather than (devices==-1)

  [ Anton Novikov ]
  * add .gitignore files
  * add 'format' sysfs attr
  * remove 'fourcc' sysfs attr
  * 'keep_format' ctrl
  * set_timeperframe(), dev->frame_jiffies
  * 'sustain_framerate' ctrl
  * add examples/restarting-writer.sh
  * reset write_position only when !ready_for_capture
  * handle arbitrary output QBUF index order
  * 'timeout' ctrl
  * add ability to do i/o on placeholder picture buf
  * add v4l2loopback-ctl script
  * installing v4l2loopback-ctl
  * fix dequeuing unused buffers
  * timeout_image_io cleaner memory handling
  * some documentation on controls
  * some v4l2loopback-ctl syntax&doc tweaks

  [ IOhannes m zmölnig ]
  * moved utility into utils/
  * Updated copyright notice
  * use max image size to prevent insane allocations
  * in-code documentation of the format string
  * fixed description of 'debug' option
  * fixed closing comment
  * allow to set the max.framesize via module parameters
  * renamed 'v4l2loopback' target to 'v4l2loopback.ko'
  * added install-utils target

  [ Anton Novikov ]
  * script bugfix
  * v4l2loopback-ctl set-fps
  * more README

  [ IOhannes m zmölnig ]
  * initialize list in all cases
  * notes on how to do kernel-debugging
  * when dying, write to stderr
  * check for applications before using them
  * fix usage/version to make it fit for help2man
  * manpage for v4l2loopback-ctl
  * placeholder
  * simplified description
  * build and install manpages
  * deleted manage (it's generated automatically)
  * updated in-module AUTHORs
  * debugging printout
  * don't try to force a given format
  * clarify README about default device in ./test

 -- IOhannes m zmoelnig (gpg-key at iem) <zmoelnig@iem.at>  Fri, 27 Apr 2012 09:29:52 +0200

v4l2loopback (0.5.0) UNRELEASED; urgency=low

  [ IOhannes m zmölnig ]
  * more (and better) debugging output
  * stefan diewald's ENUM_FRAMESIZES fix
  * simplifified framesize enumeration
  * stefan diewald's ENUM_FRAMEINTERVAL implementations
  * stefan diewald's buffer request logic
  * added Stefan Diewald to the authors
  * use sudo to rmmod/insmod kernel modules in Makefile
  * use unlocked_ioctl as suggested by salsaman
  * provide macros to simplify sysfs attrfile creation
  * added deviceattributes
  * implemented "video_nr" parameter to manually force device IDs
  * dummy audio ioctl's that return EINVAL
  * better output enumeration/format handling
  * trying to improve handling of std's
  * improve readability of vidioc_g_output
  * added note about video_nr param
  * fixed memleaks
  * allow per-device "max_openers" settings
  * warn if illegal number of max_openers is requested
  * prefix posts with "v4l2loopback"

  [ IOhannes m zmoelnig ]
  * simplistic ChangeLog generator

 -- zmoelnig <zmoelnig@umlautO.umlaeute>  Tue, 27 Dec 2011 19:01:25 +0100

v4l2loopback (0.4.1) UNRELEASED; urgency=low

  [ IOhannes m zmölnig ]
  * yuv4mpeg producer to be used in conjunction with mplayer
  * added yuv4mpeg_to_v4l2 to the build targets
  * simplified Makefile; added clean target
  * protect newer pixel formats
  * fixed preprocessor expansion on linux<2.6.32
  * made it compile on 2.6.28 and 2.6.27
  * <=2.6.27 definitely won't work
  * allow S_PARM for fps
  * renamed opener->position to opener->read_position
  * added dummy VIDIOC_QUERYCTRL implementation (fix for linux-3.1)

 -- IOhannes m zmoelnig (gpg-key at iem) <zmoelnig@iem.at>  Thu, 24 Nov 2011 18:11:01 +0100

v4l2loopback (0.4.0) UNRELEASED; urgency=low

  [ IOhannes m zmölnig ]
  * default debug-level should be 0
  * cleanup version confusion
  * changed version to 0.3.0
  * updated README to mention Debian packages
  * better internal format representation (as found in bttv-drivers) - still unused
  * trying to support I420 --- might be very unstable right now
  * dummy Makefile to allow "make"
  * allow to set device from cmdline
  * en/disable the readback test using defines
  * use FRAME_SIZE throughout
  * more experiments
  * more debugging messages
  * added rule to autoload the new v4l2loopback device
  * rewrote most of the mmap part in order to support I420
  * cleanup to make it C90 compliant again
  * reordered formats a bit to make better default choices...
  * replace vloopback by v4l2loopback to avoid confusion
  * cleaned up code
  * properly initialize the timestampe in order to guarantee a monotic series
  * updated copyright
  * bumped to version 0.4.0

 -- IOhannes m zmoelnig (gpg-key at iem) <zmoelnig@iem.at>  Tue, 29 Mar 2011 12:54:23 +0200

v4l2loopback (0.3) UNRELEASED; urgency=low

  [ IOhannes m zmölnig ]
  * note on why gstreamer v4l2sink fails to write to such a device
  * enum_framesizes and enum_fmt_caps
  * hmm, this makes it more crashy than better
  * enable additional ioctls (eg. enum_output)
  * fixed typo: USAGE instead of USEAGE
  * remove stray #error
  * gcode reorganization; uniform comments
  * experiments with returning 0-size
  * offline documentation for v4l2
  * allow all kinds of formats during negotiation
  * comment on which fields to set
  * better support for setting formats
  * add note about using application's bytesperline
  * set type to WRITER when caller calls enum_fmt_out
  * removed TODO as it has been done already
  * indentation
  * hopefully a bit more intelligent buffer-reallocation strategy
  * extra safety checks
  * print fourcc in fmt-enum
  * fallback formats for try_fmt_out
  * nicer format descriptions
  * use defines for size-limits
  * return EBUSY when trying to set fmt in CAPTURE mode when not ready
  * properly implement querycap
  * bytes_used in the mmap may be smaller than the page-size
  * some dummy functions for video-std settings
  * debug-level: 1
  * terminate function call with ";"
  * getting rid of MEMLEAK warning (should be fixed now)
  * calculate bytesperline
  * only return dummy-format with G_FMT[out] when none has been set
  * nicer debugging
  * disable OVERLAY dummy
  * return 0-sized image by default
  * default max_buffers_number is 8
  * getting rid of my prefix
  * pushed to version 0.0.2
  * pumped to version 0.3

 -- IOhannes m zmoelnig (gpg-key at iem) <zmoelnig@iem.at>  Sun, 10 Oct 2010 21:12:38 +0200

v4l2loopback (0.2) UNRELEASED; urgency=low

  [ IOhannes m zmölnig ]
  * acces /dev/video0
  * variable number of pipes
  * nicer printout
  * proper cleanup
  * renamed "pipes" to "devices"
  * bumped version; added meself as co-author
  * removed files removed by "debian/rules clean"
  * removed examples
  * fixed debian/control debian/rules
  * postinst stuff
  * moved example into separate folder
  * MakefileS need not be executable
  * README, COPYING, AUTHORS
  * re-version to 0.2
  * updated README
  * added Vasily Levin to the authors
  * removed debian stuff
  * added a README for the test
  * added vasily.levin to the authors
  * included linux/slab.h
  * license issues: this module is GPLv2
  * added meself into the copyright header

 -- IOhannes m zmoelnig (gpg-key at iem) <zmoelnig@iem.at>  Sun, 10 Oct 2010 21:09:43 +0200

v4l2loopback (0.1) UNRELEASED; urgency=low

  [ gorinich.zmey ]
  * initial
  * first approach
  * removed autogenerated file
  * temproraly removed fps control and input from stdin handling
  * removed irrelevant changelog, changed readme
  * forgotten changes applued
  * modules.order delete
  * cleaned the mess with git-svn
  * added test file
  * added VIDIOC_G_PARM call
  * format handling improvment, current solution is a stub
  * temporarly removed mmap to keep code simple
  * compile fix
  * poll added, streaming started
  * small test refine
  * enum_input added
  * basic streaming, polish needed
  * first streaming working, mplayer gots a picture, yet crappy
  * readme add
  * readme rewrite
  * readme additions
  * mutex add
  * skype working
  * queue introduction, next step queue remove
  * first run is OK already
  * queues debugged
  * halfway of massive inner structure changes
  * compiles
  * pre multireader
  * style for linux kernel
  * indent
  * 80 width
  * module name changed and debianize start
  * debian
  * 2.6.28 support
  * almost works, just one bug left
  * debian
  * bug with two and more openers fixed
  * redebianized
  * removed files
  * license header add
  * freeing of unitialized pointer fixed, added nonblocking IO
  * sync with v4l-dvb tree
  * review responce
  * hans review
  * test improvments by Antonio Ospite
  * removed header
  * more small fixes

  [ Scott Maines ]
  * missing header for Fedora

 -- IOhannes m zmoelnig (gpg-key at iem) <zmoelnig@iem.at>  Sun, 10 Oct 2010 21:01:50 +0200
