All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFCv1 PATCH 00/27] Add property & configuration store support
@ 2014-01-06 14:20 Hans Verkuil
  2014-01-06 14:21 ` [RFCv1 PATCH 01/27] v4l2-ctrls: increase internal min/max/step/def to 64 bit Hans Verkuil
                   ` (27 more replies)
  0 siblings, 28 replies; 29+ messages in thread
From: Hans Verkuil @ 2014-01-06 14:20 UTC (permalink / raw)
  To: linux-media

This patch series adds support for properties, matrices and configuration
stores to the control framework.

See this RFCv2 for a more detailed discussion:

http://permalink.gmane.org/gmane.linux.drivers.video-input-infrastructure/71822

Changes since that RFCv2 are:

- I dropped the 'property' bit in the control ID, instead a new flag is
  added: V4L2_CTRL_FLAG_PROPERTY.
- A V4L2_CTRL_FLAG_IS_PTR flag is added to simplify applications: if set, then
  applications need to use the 'p' field instead of 'val' or 'val64'. This can
  be deduced from various other fields as well, but that leads to ugly code.
  This flag is cheap to set and very helpful in applications.
- Matrix types have been dropped. If cols or rows are > 1, then you have a
  matrix, so there is no need for specific matrix types.
- As a result it is no longer possible to set just a sub-rectangle of a
  matrix. It is however possible to just set the first X elements of
  a matrix/array. It became too complex to deal with the sub-rectangle,
  both in the framework, for drivers and for applications, and there are
  not enough benefits to warrant that effort.

Other than those changes this patch series implements all the ideas described
in RFCv2.

The first 21 patches are pretty definitive and the only thing missing are
the DocBook patches and a v4l2-controls.txt patch.

Before I write those I would like to get feedback for this API enhancement.
The actual API changes are surprisingly small, and most of the work done in
the patches has more to do with data structure changes needed to simplify
handling the more complex control types than with actual new code.

Patch 22 adds a new event that can deal with the new 64-bit ranges and that
adds a config_store field. However, I am not yet convinced that this is
really needed. Feedback would be welcome.

Patches 23-27 add test code for vivi to test matrices and to test the new
selection properties. This code needs more work, particularly with regards
to naming.

A working v4l2-ctl that can handle the new stuff is available here:

http://git.linuxtv.org/hverkuil/v4l-utils.git/shortlog/refs/heads/propapi

Regards,

	Hans


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2014-01-06 14:22 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-06 14:20 [RFCv1 PATCH 00/27] Add property & configuration store support Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 01/27] v4l2-ctrls: increase internal min/max/step/def to 64 bit Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 02/27] v4l2-ctrls: add unit string Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 03/27] v4l2-ctrls: use pr_info/cont instead of printk Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 04/27] videodev2.h: add initial support for properties Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 05/27] videodev2.h: add struct v4l2_query_ext_ctrl and VIDIOC_QUERY_EXT_CTRL Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 06/27] v4l2-ctrls: add support for properties Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 07/27] v4l2: integrate support for VIDIOC_QUERY_EXT_CTRL Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 08/27] videodev2.h: add V4L2_CTRL_FLAG_CAN_STORE Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 09/27] videodev2.h: add config_store to v4l2_ext_controls Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 10/27] v4l2-ctrls: create type_ops Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 11/27] v4l2-ctrls: rewrite copy routines to operate on union v4l2_ctrl_ptr Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 12/27] v4l2-ctrls: add initial support for configuration stores Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 13/27] v4l2-ctrls: add function to apply a configuration store Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 14/27] v4l2-ctrls: compare values only once Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 15/27] v4l2-ctrls: prepare for matrix support: add cols & rows fields Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 16/27] v4l2-ctrls: replace cur by a union v4l2_ctrl_ptr Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 17/27] v4l2-ctrls: new strings and props must be accessed through the new field Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 18/27] v4l2-ctrls: prepare for matrix support Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 19/27] v4l2-ctrls: type_ops can handle matrix elements Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 20/27] v4l2-ctrls: add matrix support Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 21/27] videodev2.h: rename reserved2 to config_store in v4l2_buffer Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 22/27] v4l2-ctrls: add ctrl64 event Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 23/27] videodev2.h: add new property types Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 24/27] v4l2-controls.h: add new property class and new properties Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 25/27] v4l2-ctrls: add support for u8, u16 and prop_selection types Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 26/27] v4l2-common.h: add new target Hans Verkuil
2014-01-06 14:21 ` [RFCv1 PATCH 27/27] vivi: add matrix and selection test code Hans Verkuil
2014-01-06 14:22 ` [RFCv1 PATCH 00/27] Add property & configuration store support Hans Verkuil

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.