Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f4d33337 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull media updates from Mauro Carvalho Chehab:
 - removal of sn9c102.  This device driver was replaced a long time ago
   by gspca
 - solo6x10 and go7007 webcam drivers moved from staging into
   mainstream.  They were waiting for an API to allow setting the image
   detection matrix
 - SDR drivers moved from staging into mainstream: sdr-msi3101 (renamed
   as msi2500) and rtl2832
 - added SDR driver for airspy
 - added demux driver: si2165
 - rework at several RC subsystem, making the code for RC-5 SZ variant
   to be added at the standard RC5 decoder
 - added decoder for the XMP IR protocol
 - tuner driver moved from staging into mainstream: msi3101 (renamed as
   msi001)
 - added documentation for some additional SDR pixfmt
 - some device tree bindings documented
 - added support for exynos3250 at s5p-jpeg
 - remove the obsolete, unmaintained and broken mx1_camera driver
 - added support for remote controllers at au0828 driver
 - added a RC driver: sunxi-cir
 - several driver fixes, enhancements and cleanups.

* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (455 commits)
  [media] cx23885: fix UNSET/TUNER_ABSENT confusion
  [media] coda: fix build error by making reset control optional
  [media] radio-miropcm20: fix sparse NULL pointer warning
  [media] MAINTAINERS: Update go7007 pattern
  [media] MAINTAINERS: Update solo6x10 patterns
  [media] media: atmel-isi: add primary DT support
  [media] media: atmel-isi: convert the pdata from pointer to structure
  [media] media: atmel-isi: add v4l2 async probe support
  [media] rcar_vin: add devicetree support
  [media] media: pxa_camera device-tree support
  [media] media: mt9m111: add device-tree suppport
  [media] soc_camera: add support for dt binding soc_camera drivers
  [media] media: soc_camera: pxa_camera documentation device-tree support
  [media] media: mt9m111: add device-tree documentation
  [media] s5p-mfc: remove unnecessary calling to function video_devdata()
  [media] s5p-jpeg: add chroma subsampling adjustment for Exynos3250
  [media] s5p-jpeg: Prevent erroneous downscaling for Exynos3250 SoC
  [media] s5p-jpeg: Assure proper crop rectangle initialization
  [media] s5p-jpeg: fix g_selection op
  [media] s5p-jpeg: Adjust jpeg_bound_align_image to Exynos3250 needs
  ...
parents 91c2ff77 0f3bf3dc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ FILENAME = \
DOCUMENTED = \
	-e "s/\(enum *\)v4l2_mpeg_cx2341x_video_\([a-z]*_spatial_filter_type\)/\1<link linkend=\"\2\">v4l2_mpeg_cx2341x_video_\2<\/link>/g" \
	-e "s/\(\(enum\|struct\) *\)\(v4l2_[a-zA-Z0-9_]*\)/\1<link linkend=\"\3\">\3<\/link>/g" \
	-e "s/\(V4L2_PIX_FMT_[A-Z0-9_]\+\) /<link linkend=\"\1\">\1<\/link> /g" \
	-e "s/\(V4L2_PIX_FMT_[A-Z0-9_]\+\)\(\s\+v4l2_fourcc\)/<link linkend=\"\1\">\1<\/link>\2/g" \
	-e ":a;s/\(linkend=\".*\)_\(.*\">\)/\1-\2/;ta" \
	-e "s/v4l2\-mpeg\-vbi\-ITV0/v4l2-mpeg-vbi-itv0-1/g"

+40 −4
Original line number Diff line number Diff line
@@ -555,10 +555,46 @@ typedef enum fe_delivery_system {
		</section>
		<section id="DTV-ISDBT-LAYER-TIME-INTERLEAVING">
			<title><constant>DTV_ISDBT_LAYER*_TIME_INTERLEAVING</constant></title>
			<para>Possible values: 0, 1, 2, 3, -1 (AUTO)</para>
			<para>Note: The real inter-leaver depth-names depend on the mode (fft-size); the values
				here are referring to what can be found in the TMCC-structure -
				independent of the mode.</para>
			<para>Valid values: 0, 1, 2, 4, -1 (AUTO)</para>
			<para>when DTV_ISDBT_SOUND_BROADCASTING is active, value 8 is also valid.</para>
			<para>Note: The real time interleaving length depends on the mode (fft-size). The values
				here are referring to what can be found in the TMCC-structure, as shown in the table below.</para>
			<informaltable id="isdbt-layer-interleaving-table">
				<tgroup cols="4" align="center">
					<tbody>
						<row>
							<entry>DTV_ISDBT_LAYER*_TIME_INTERLEAVING</entry>
							<entry>Mode 1 (2K FFT)</entry>
							<entry>Mode 2 (4K FFT)</entry>
							<entry>Mode 3 (8K FFT)</entry>
						</row>
						<row>
							<entry>0</entry>
							<entry>0</entry>
							<entry>0</entry>
							<entry>0</entry>
						</row>
						<row>
							<entry>1</entry>
							<entry>4</entry>
							<entry>2</entry>
							<entry>1</entry>
						</row>
						<row>
							<entry>2</entry>
							<entry>8</entry>
							<entry>4</entry>
							<entry>2</entry>
						</row>
						<row>
							<entry>4</entry>
							<entry>16</entry>
							<entry>8</entry>
							<entry>4</entry>
						</row>
					</tbody>
				</tgroup>
			</informaltable>
		</section>
		<section id="DTV-ATSCMH-FIC-VER">
			<title><constant>DTV_ATSCMH_FIC_VER</constant></title>
+334 −74
Original line number Diff line number Diff line
@@ -13,6 +13,19 @@ correctly with any device.</para>
    <para>All controls are accessed using an ID value. V4L2 defines
several IDs for specific purposes. Drivers can also implement their
own custom controls using <constant>V4L2_CID_PRIVATE_BASE</constant>
<footnote><para>The use of <constant>V4L2_CID_PRIVATE_BASE</constant>
is problematic because different drivers may use the same
<constant>V4L2_CID_PRIVATE_BASE</constant> ID for different controls.
This makes it hard to programatically set such controls since the meaning
of the control with that ID is driver dependent. In order to resolve this
drivers use unique IDs and the <constant>V4L2_CID_PRIVATE_BASE</constant>
IDs are mapped to those unique IDs by the kernel. Consider these
<constant>V4L2_CID_PRIVATE_BASE</constant> IDs as aliases to the real
IDs.</para>
<para>Many applications today still use the <constant>V4L2_CID_PRIVATE_BASE</constant>
IDs instead of using &VIDIOC-QUERYCTRL; with the <constant>V4L2_CTRL_FLAG_NEXT_CTRL</constant>
flag to enumerate all IDs, so support for <constant>V4L2_CID_PRIVATE_BASE</constant>
is still around.</para></footnote>
and higher values. The pre-defined control IDs have the prefix
<constant>V4L2_CID_</constant>, and are listed in <xref
linkend="control-id" />. The ID is used when querying the attributes of
@@ -31,25 +44,22 @@ the current video input or output, tuner or modulator, or audio input
or output. Different in the sense of other bounds, another default and
current value, step size or other menu items. A control with a certain
<emphasis>custom</emphasis> ID can also change name and
type.<footnote>
	<para>It will be more convenient for applications if drivers
make use of the <constant>V4L2_CTRL_FLAG_DISABLED</constant> flag, but
that was never required.</para>
      </footnote> Control values are stored globally, they do not
type.</para>

    <para>If a control is not applicable to the current configuration
of the device (for example, it doesn't apply to the current video input)
drivers set the <constant>V4L2_CTRL_FLAG_INACTIVE</constant> flag.</para>

    <para>Control values are stored globally, they do not
change when switching except to stay within the reported bounds. They
also do not change &eg; when the device is opened or closed, when the
tuner radio frequency is changed or generally never without
application request. Since V4L2 specifies no event mechanism, panel
applications intended to cooperate with other panel applications (be
they built into a larger application, as a TV viewer) may need to
regularly poll control values to update their user
interface.<footnote>
	<para>Applications could call an ioctl to request events.
After another process called &VIDIOC-S-CTRL; or another ioctl changing
shared properties the &func-select; function would indicate
readability until any ioctl (querying the properties) is
called.</para>
      </footnote></para>
application request.</para>

    <para>V4L2 specifies an event mechanism to notify applications
when controls change value (see &VIDIOC-SUBSCRIBE-EVENT;, event
<constant>V4L2_EVENT_CTRL</constant>), panel applications might want to make
use of that in order to always reflect the correct control value.</para>

    <para>
      All controls use machine endianness.
@@ -398,14 +408,17 @@ to work.</entry>
	  <row id="v4l2-alpha-component">
	    <entry><constant>V4L2_CID_ALPHA_COMPONENT</constant></entry>
	    <entry>integer</entry>
	    <entry> Sets the alpha color component on the capture device or on
	    the capture buffer queue of a mem-to-mem device. When a mem-to-mem
	    device produces frame format that includes an alpha component
	    <entry>Sets the alpha color component. When a capture device (or
	    capture queue of a mem-to-mem device) produces a frame format that
	    includes an alpha component
	    (e.g. <link linkend="rgb-formats">packed RGB image formats</link>)
	    and the alpha value is not defined by the mem-to-mem input data
	    this control lets you select the alpha component value of all
	    pixels. It is applicable to any pixel format that contains an alpha
	    component.
	    and the alpha value is not defined by the device or the mem-to-mem
	    input data this control lets you select the alpha component value of
	    all pixels. When an output device (or output queue of a mem-to-mem
	    device) consumes a frame format that doesn't include an alpha
	    component and the device supports alpha channel processing this
	    control lets you set the alpha component value of all pixels for
	    further processing in the device.
	    </entry>
	  </row>
	  <row>
@@ -434,15 +447,14 @@ Drivers must implement <constant>VIDIOC_QUERYCTRL</constant>,
controls, <constant>VIDIOC_QUERYMENU</constant> when it has one or
more menu type controls.</para>

    <example>
      <title>Enumerating all controls</title>
    <example id="enum_all_controls">
      <title>Enumerating all user controls</title>

      <programlisting>
&v4l2-queryctrl; queryctrl;
&v4l2-querymenu; querymenu;

static void
enumerate_menu (void)
static void enumerate_menu(void)
{
	printf("  Menu items:\n");

@@ -501,6 +513,32 @@ for (queryctrl.id = V4L2_CID_PRIVATE_BASE;;
</programlisting>
    </example>

    <example>
      <title>Enumerating all user controls (alternative)</title>
	<programlisting>
memset(&amp;queryctrl, 0, sizeof(queryctrl));

queryctrl.id = V4L2_CTRL_CLASS_USER | V4L2_CTRL_FLAG_NEXT_CTRL;
while (0 == ioctl(fd, &VIDIOC-QUERYCTRL;, &amp;queryctrl)) {
	if (V4L2_CTRL_ID2CLASS(queryctrl.id) != V4L2_CTRL_CLASS_USER)
		break;
	if (queryctrl.flags &amp; V4L2_CTRL_FLAG_DISABLED)
		continue;

	printf("Control %s\n", queryctrl.name);

	if (queryctrl.type == V4L2_CTRL_TYPE_MENU)
		enumerate_menu();

	queryctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL;
}
if (errno != EINVAL) {
	perror("VIDIOC_QUERYCTRL");
	exit(EXIT_FAILURE);
}
</programlisting>
    </example>

    <example>
      <title>Changing controls</title>

@@ -551,7 +589,7 @@ if (0 == ioctl (fd, &VIDIOC-G-CTRL;, &amp;control)) {
}

control.id = V4L2_CID_AUDIO_MUTE;
control.value = TRUE; /* silence */
control.value = 1; /* silence */

/* Errors ignored */
ioctl(fd, VIDIOC_S_CTRL, &amp;control);
@@ -625,16 +663,29 @@ supported.</para>
&v4l2-control;, except for the fact that it also allows for 64-bit
values and pointers to be passed.</para>

      <para>Since the &v4l2-ext-control; supports pointers it is now
also possible to have controls with compound types such as N-dimensional arrays
and/or structures. You need to specify the <constant>V4L2_CTRL_FLAG_NEXT_COMPOUND</constant>
when enumerating controls to actually be able to see such compound controls.
In other words, these controls with compound types should only be used
programmatically.</para>

      <para>Since such compound controls need to expose more information
about themselves than is possible with &VIDIOC-QUERYCTRL; the
&VIDIOC-QUERY-EXT-CTRL; ioctl was added. In particular, this ioctl gives
the dimensions of the N-dimensional array if this control consists of more than
one element.</para>

      <para>It is important to realize that due to the flexibility of
controls it is necessary to check whether the control you want to set
actually is supported in the driver and what the valid range of values
is. So use the &VIDIOC-QUERYCTRL; and &VIDIOC-QUERYMENU; ioctls to
check this. Also note that it is possible that some of the menu
indices in a control of type <constant>V4L2_CTRL_TYPE_MENU</constant>
may not be supported (<constant>VIDIOC_QUERYMENU</constant> will
return an error). A good example is the list of supported MPEG audio
bitrates. Some drivers only support one or two bitrates, others
support a wider range.</para>
is. So use the &VIDIOC-QUERYCTRL; (or &VIDIOC-QUERY-EXT-CTRL;) and
&VIDIOC-QUERYMENU; ioctls to check this. Also note that it is possible
that some of the menu indices in a control of type
<constant>V4L2_CTRL_TYPE_MENU</constant> may not be supported
(<constant>VIDIOC_QUERYMENU</constant> will return an error). A good
example is the list of supported MPEG audio bitrates. Some drivers only
support one or two bitrates, others support a wider range.</para>

      <para>
	All controls use machine endianness.
@@ -700,7 +751,7 @@ ID based on a control ID.</para>
<constant>VIDIOC_QUERYCTRL</constant> will fail when used in
combination with <constant>V4L2_CTRL_FLAG_NEXT_CTRL</constant>. In
that case the old method of enumerating control should be used (see
1.8). But if it is supported, then it is guaranteed to enumerate over
<xref linkend="enum_all_controls" />). But if it is supported, then it is guaranteed to enumerate over
all controls, including driver-private controls.</para>
    </section>

@@ -3998,6 +4049,68 @@ in Annex E of <xref linkend="iec62106" />. The length of Radio Text strings depe
used to transmit it, either 32 (2A block) or 64 (2B block).  However, it is also possible
to find receivers which can scroll strings sized as 32 x N or 64 x N characters. So, this control must be configured
with steps of 32 or 64 characters. The result is it must always contain a string with size multiple of 32 or 64. </entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_TX_MONO_STEREO</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">Sets the Mono/Stereo bit of the Decoder Identification code. If set,
then the audio was recorded as stereo.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_TX_ARTIFICIAL_HEAD</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">Sets the
<ulink url="http://en.wikipedia.org/wiki/Artificial_head">Artificial Head</ulink> bit of the Decoder
Identification code. If set, then the audio was recorded using an artificial head.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_TX_COMPRESSED</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">Sets the Compressed bit of the Decoder Identification code. If set,
then the audio is compressed.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_TX_DYNAMIC_PTY</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">Sets the Dynamic PTY bit of the Decoder Identification code. If set,
then the PTY code is dynamically switched.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">If set, then a traffic announcement is in progress.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_TX_TRAFFIC_PROGRAM</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">If set, then the tuned programme carries traffic announcements.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_TX_MUSIC_SPEECH</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">If set, then this channel broadcasts music. If cleared, then it
broadcasts speech. If the transmitter doesn't make this distinction, then it should be set.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_TX_ALT_FREQS_ENABLE</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">If set, then transmit alternate frequencies.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_TX_ALT_FREQS</constant>&nbsp;</entry>
	    <entry>__u32 array</entry>
	  </row>
	  <row><entry spanname="descr">The alternate frequencies in kHz units. The RDS standard allows
for up to 25 frequencies to be defined. Drivers may support fewer frequencies so check
the array size.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_AUDIO_LIMITER_ENABLED</constant>&nbsp;</entry>
@@ -4975,6 +5088,57 @@ description of this control class.</entry>
            <entry>boolean</entry>
          </row><row><entry spanname="descr">Enables/disables RDS
	  reception by the radio tuner</entry>
          </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_RX_PTY</constant>&nbsp;</entry>
	    <entry>integer</entry>
	  </row>
	  <row><entry spanname="descr">Gets RDS Programme Type field.
This encodes up to 31 pre-defined programme types.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_RX_PS_NAME</constant>&nbsp;</entry>
	    <entry>string</entry>
	  </row>
	  <row><entry spanname="descr">Gets the Programme Service name (PS_NAME).
It is intended for static display on a receiver. It is the primary aid to listeners in programme service
identification and selection.  In Annex E of <xref linkend="iec62106" />, the RDS specification,
there is a full description of the correct character encoding for Programme Service name strings.
Also from RDS specification, PS is usually a single eight character text. However, it is also possible
to find receivers which can scroll strings sized as 8 x N characters. So, this control must be configured
with steps of 8 characters. The result is it must always contain a string with size multiple of 8.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_RX_RADIO_TEXT</constant>&nbsp;</entry>
	    <entry>string</entry>
	  </row>
	  <row><entry spanname="descr">Gets the Radio Text info. It is a textual description of
what is being broadcasted. RDS Radio Text can be applied when broadcaster wishes to transmit longer PS names,
programme-related information or any other text. In these cases, RadioText can be used in addition to
<constant>V4L2_CID_RDS_RX_PS_NAME</constant>. The encoding for Radio Text strings is also fully described
in Annex E of <xref linkend="iec62106" />. The length of Radio Text strings depends on which RDS Block is being
used to transmit it, either 32 (2A block) or 64 (2B block).  However, it is also possible
to find receivers which can scroll strings sized as 32 x N or 64 x N characters. So, this control must be configured
with steps of 32 or 64 characters. The result is it must always contain a string with size multiple of 32 or 64. </entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">If set, then a traffic announcement is in progress.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_RX_TRAFFIC_PROGRAM</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">If set, then the tuned programme carries traffic announcements.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_RDS_RX_MUSIC_SPEECH</constant>&nbsp;</entry>
	    <entry>boolean</entry>
	  </row>
	  <row><entry spanname="descr">If set, then this channel broadcasts music. If cleared, then it
broadcasts speech. If the transmitter doesn't make this distinction, then it will be set.</entry>
	  </row>
          <row>
	    <entry spanname="id"><constant>V4L2_CID_TUNE_DEEMPHASIS</constant>&nbsp;</entry>
@@ -5007,6 +5171,102 @@ defines possible values for de-emphasis. Here they are:</entry>
        </tbody>
      </tgroup>
      </table>
    </section>

    <section id="detect-controls">
      <title>Detect Control Reference</title>

      <para>The Detect class includes controls for common features of
      various motion or object detection capable devices.</para>

      <table pgwide="1" frame="none" id="detect-control-id">
      <title>Detect Control IDs</title>

      <tgroup cols="4">
        <colspec colname="c1" colwidth="1*" />
        <colspec colname="c2" colwidth="6*" />
        <colspec colname="c3" colwidth="2*" />
        <colspec colname="c4" colwidth="6*" />
        <spanspec namest="c1" nameend="c2" spanname="id" />
        <spanspec namest="c2" nameend="c4" spanname="descr" />
        <thead>
          <row>
            <entry spanname="id" align="left">ID</entry>
            <entry align="left">Type</entry>
          </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry>
          </row>
        </thead>
        <tbody valign="top">
          <row><entry></entry></row>
          <row>
            <entry spanname="id"><constant>V4L2_CID_DETECT_CLASS</constant>&nbsp;</entry>
            <entry>class</entry>
          </row><row><entry spanname="descr">The Detect class
descriptor. Calling &VIDIOC-QUERYCTRL; for this control will return a
description of this control class.</entry>
          </row>
          <row>
            <entry spanname="id"><constant>V4L2_CID_DETECT_MD_MODE</constant>&nbsp;</entry>
            <entry>menu</entry>
          </row><row><entry spanname="descr">Sets the motion detection mode.</entry>
          </row>
	  <row>
	    <entrytbl spanname="descr" cols="2">
	      <tbody valign="top">
		<row>
		  <entry><constant>V4L2_DETECT_MD_MODE_DISABLED</constant>
		  </entry><entry>Disable motion detection.</entry>
		</row>
		<row>
		  <entry><constant>V4L2_DETECT_MD_MODE_GLOBAL</constant>
		  </entry><entry>Use a single motion detection threshold.</entry>
		</row>
		<row>
		  <entry><constant>V4L2_DETECT_MD_MODE_THRESHOLD_GRID</constant>
		  </entry><entry>The image is divided into a grid, each cell with its own
		  motion detection threshold. These thresholds are set through the
		  <constant>V4L2_CID_DETECT_MD_THRESHOLD_GRID</constant> matrix control.</entry>
		</row>
		<row>
		  <entry><constant>V4L2_DETECT_MD_MODE_REGION_GRID</constant>
		  </entry><entry>The image is divided into a grid, each cell with its own
		  region value that specifies which per-region motion detection thresholds
		  should be used. Each region has its own thresholds. How these per-region
		  thresholds are set up is driver-specific. The region values for the grid are set
		  through the <constant>V4L2_CID_DETECT_MD_REGION_GRID</constant> matrix
		  control.</entry>
		</row>
	      </tbody>
	    </entrytbl>
	  </row>
          <row>
	    <entry spanname="id"><constant>V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD</constant>&nbsp;</entry>
	    <entry>integer</entry>
	  </row>
	  <row><entry spanname="descr">Sets the global motion detection threshold to be
	  used with the <constant>V4L2_DETECT_MD_MODE_GLOBAL</constant> motion detection mode.</entry>
          </row>
          <row>
	    <entry spanname="id"><constant>V4L2_CID_DETECT_MD_THRESHOLD_GRID</constant>&nbsp;</entry>
	    <entry>__u16 matrix</entry>
	  </row>
	  <row><entry spanname="descr">Sets the motion detection thresholds for each cell in the grid.
	  To be used with the <constant>V4L2_DETECT_MD_MODE_THRESHOLD_GRID</constant>
	  motion detection mode. Matrix element (0, 0) represents the cell at the top-left of the
	  grid.</entry>
          </row>
          <row>
	    <entry spanname="id"><constant>V4L2_CID_DETECT_MD_REGION_GRID</constant>&nbsp;</entry>
	    <entry>__u8 matrix</entry>
	  </row>
	  <row><entry spanname="descr">Sets the motion detection region value for each cell in the grid.
	  To be used with the <constant>V4L2_DETECT_MD_MODE_REGION_GRID</constant>
	  motion detection mode. Matrix element (0, 0) represents the cell at the top-left of the
	  grid.</entry>
          </row>
        </tbody>
      </tgroup>
      </table>

      </section>

+9 −3
Original line number Diff line number Diff line
@@ -150,9 +150,15 @@ signal. Drivers shall not convert the sample format by software.</para></entry>
	      <entry>This is the scanning system line number
associated with the first line of the VBI image, of the first and the
second field respectively. See <xref linkend="vbi-525" /> and
<xref linkend="vbi-625" /> for valid values. VBI input drivers can
return start values 0 if the hardware cannot reliable identify
scanning lines, VBI acquisition may not require this
<xref linkend="vbi-625" /> for valid values.
The <constant>V4L2_VBI_ITU_525_F1_START</constant>,
<constant>V4L2_VBI_ITU_525_F2_START</constant>,
<constant>V4L2_VBI_ITU_625_F1_START</constant> and
<constant>V4L2_VBI_ITU_625_F2_START</constant> defines give the start line
numbers for each field for each 525 or 625 line format as a convenience.
Don't forget that ITU line numbering starts at 1, not 0.
VBI input drivers can return start values 0 if the hardware cannot
reliable identify scanning lines, VBI acquisition may not require this
information.</entry>
	    </row>
	    <row>
+14 −4
Original line number Diff line number Diff line
@@ -72,9 +72,12 @@ To use the <link linkend="format">format</link> ioctls applications set the
<constant>V4L2_BUF_TYPE_SDR_CAPTURE</constant> and use the &v4l2-sdr-format;
<structfield>sdr</structfield> member of the <structfield>fmt</structfield>
union as needed per the desired operation.
Currently only the <structfield>pixelformat</structfield> field of
&v4l2-sdr-format; is used. The content of that field is the V4L2 fourcc code
of the data format.
Currently there is two fields, <structfield>pixelformat</structfield> and
<structfield>buffersize</structfield>, of struct &v4l2-sdr-format; which are
used. Content of the <structfield>pixelformat</structfield> is V4L2 FourCC
code of the data format. The <structfield>buffersize</structfield> field is
maximum buffer size in bytes required for data transfer, set by the driver in
order to inform application.
    </para>

    <table pgwide="1" frame="none" id="v4l2-sdr-format">
@@ -91,9 +94,16 @@ little endian <link linkend="v4l2-fourcc">four character code</link>.
V4L2 defines SDR formats in <xref linkend="sdr-formats" />.
           </entry>
          </row>
          <row>
            <entry>__u32</entry>
            <entry><structfield>buffersize</structfield></entry>
            <entry>
Maximum size in bytes required for data. Value is set by the driver.
           </entry>
          </row>
          <row>
            <entry>__u8</entry>
            <entry><structfield>reserved[28]</structfield></entry>
            <entry><structfield>reserved[24]</structfield></entry>
            <entry>This array is reserved for future extensions.
Drivers and applications must set it to zero.</entry>
          </row>
Loading