summaryrefslogtreecommitdiff
path: root/v4l2-apps/lib/libv4l/ChangeLog
blob: e7b899085dd87490578183826772f70147404657 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
libv4l-0.3
----------
* add extern "C" magic to public header files for c++ usage (Gregor Jasny)
* Make libv4l1 and libv4l2 multithread use safe, see README.multi-threading
* Add v4lx_dup() calls (and intercept dup() from the wrappers) this fixes
  use with gstreamer's v4l2 plugin (tested with cheese)
* Hopefully definitely fix compile errors on systems with a broken videodev2.h

libv4l-0.2
----------
*** API change ***
* Change v4lconvert api so that the v4lconvert struct always gets allocated
  by the library, this to make it opaque, so that we can avoid future API
  and ABI changes
* Add support for yuv420 -> bgr24 conversion
* When converting from v4l2 pixelformat to v4l12 palette return
  VIDEO_PALETTE_YUV420P instead of VIDEO_PALETTE_YUV420 for
  V4L2_PIX_FMT_YUV420 as that is what most apps seem to expect
* override kernel v4l1 compat min / max size with our own more accurate values
* fix v4l1 munmap bug where it didn't recognise the buffer being unmapped was
  our fake buffer (fixes gstreamer v4l1 support, checked with cheese)
* add support for reporting the emulated pixelformats with ENUM_FMT, this
  defaults to off, and can be activated by passing a flag to enable it to
  v4l2_fd_open. This gets enabled by default the wrappers.
* v4l2: mmap the real device buffers before doing conversion when DQBUF gets
  called before the application has called mmap (avoid crash).


libv4l-0.1
----------
* major shuffle / rewrite now split into libv4l1, libv4l2, libv4lconvert
  and 2 wrappers for binary compatibility
* rewritten LGPL bayer decoding
* many many other changes and fixes


v4l1-compat-0.6 (V4L2 apps stay working)
----------------------------------------
* Do not go into emulation mode of rgb24 immediately, but only after a
  GPICT ioctl which has not been preceded by a SPICT ioctl, AKA do not get
  in the way of V4L2 read calls by doing conversion on them
* Do not get in the way of mmap calls made by V4L2 applications
* Fix swapping of red and blue in bayer -> bgr24 decode routine
* Remember the v4l1 palette asked for with SPICT and return that, as
  otherwise we loose information when going v4l1 -> v4l2 -> v4l1, for example
  YUV420P becomes YUV420, which are separate in v4l1.


v4l1-compat-0.5 (perfect camorama)
----------------------------------
* Allow changing of format after the buffers have been mapped, by tearing
  down the entire house, changing the fundament and then rebuilding it.
  Now changing the capture resolution in camorama works!
* Fix jpeg decoding error reporting
* Allow jpeg's with a height which is a multiple of 8 (was 16)
* Remove a number of pretty new VIDIOCXXX -> string mappings from log.c,
  fixing compiling with somewhat older kernels


v4l1-compat 0.4
---------------
* Do not even try to change the format in v4l1_compat_set_format(), unless
  _really_ necessary.
* Cleanup ambigious use of src_format (no functional changes)
* Drop the mmap hack for zerocopy access under certain conditions, one of them
  that the cam can deliver the requested format. Although avoiding the
  memcpy in this scenarios is a good thing todo, there were several issues
  with the 0.3 implementation of this, fixing all these means adding lots of
  special cases all over the code. So instead we just drop support and
  always do atleast a memcpy (or a conversion). If an application cannot
  live with the speed penalty this imposes it should be ported to v4l2.
* Now that we've gotten rid of the zerocopy mmap hack, we can safely allow
  mixing read and mmap based IO.
* Explictly include linux/ioctl.h, to fix compile with kernel headers where
  linux/videodev.h doesn't.


v4l1-compat 0.3
---------------
* Don't allow multiple opens, in theory our code can handle it, but not all
  v4l2 devices like it (ekiga does it and uvc doesn't like it).


v4l1-compat 0.2
---------------
* When mmap gets passed an fd of -1 (anonymous map) don't look for it in our
  list of managed fds, as we use -1 to mark unused entries (fixes ekiga
  crashing). Also check for an fd of -1 in the other calls we intercept.
* In close() start with removing the fd from our list of managed fds, this must
  be done first, because as soon as we've done the actual close syscall, the
  fd maybe returned by an open in another thread and we don't want to intercept
  calls to this new fd.
* Make unknown v4l1 palette types a normal level log messages instead of an
  error.
* When an applicaiton changes the width / height through the CMCAPTURE ioctl
  remember the new width and height.
* If the devices initial v4l2 pixformat has no corresponding v4l1 palette, try
  setting a format which does (and which we emulate when necessary) so that
  applicactions which just query the current format (GPICT) and then take
  whatever they get will work (partially fixes camorama)
* Implement our own SWIN instead of using kernel compat layer, for more
  flexibility and better error checking


v4l1-compat 0.1
---------------
* Initial public release.