Commit 071408b6 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

[media] DocBook validation fixes

More validation fixes as reported by xmllint.

There are still three xmllint errors after this remaining regarding SVG file support.
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 34affc6a
...@@ -300,7 +300,7 @@ $(MEDIA_OBJ_DIR)/media-entities.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml ...@@ -300,7 +300,7 @@ $(MEDIA_OBJ_DIR)/media-entities.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml
@( \ @( \
for ident in $(IOCTLS) ; do \ for ident in $(IOCTLS) ; do \
entity=`echo $$ident | tr _ -` ; \ entity=`echo $$ident | tr _ -` ; \
id=`grep "<refname>$$ident" $(MEDIA_OBJ_DIR)/vidioc-*.xml | sed -r s,"^.*/(.*).xml.*","\1",` ; \ id=`grep "<refname>$$ident" $(MEDIA_OBJ_DIR)/vidioc-*.xml $(MEDIA_OBJ_DIR)/media-ioc-*.xml | sed -r s,"^.*/(.*).xml.*","\1",` ; \
echo "<!ENTITY $$entity \"<link" \ echo "<!ENTITY $$entity \"<link" \
"linkend='$$id'><constant>$$ident</constant></link>\">" \ "linkend='$$id'><constant>$$ident</constant></link>\">" \
>>$@ ; \ >>$@ ; \
......
...@@ -569,33 +569,33 @@ typedef enum fe_delivery_system { ...@@ -569,33 +569,33 @@ typedef enum fe_delivery_system {
<title><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></title> <title><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></title>
<para>RS frame mode.</para> <para>RS frame mode.</para>
<para>Possible values are:</para> <para>Possible values are:</para>
<section id="atscmh-rs-frame-mode"> <para id="atscmh-rs-frame-mode">
<programlisting> <programlisting>
typedef enum atscmh_rs_frame_mode { typedef enum atscmh_rs_frame_mode {
ATSCMH_RSFRAME_PRI_ONLY = 0, ATSCMH_RSFRAME_PRI_ONLY = 0,
ATSCMH_RSFRAME_PRI_SEC = 1, ATSCMH_RSFRAME_PRI_SEC = 1,
} atscmh_rs_frame_mode_t; } atscmh_rs_frame_mode_t;
</programlisting> </programlisting>
</section> </para>
</section> </section>
<section id="DTV-ATSCMH-RS-FRAME-ENSEMBLE"> <section id="DTV-ATSCMH-RS-FRAME-ENSEMBLE">
<title><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></title> <title><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></title>
<para>RS frame ensemble.</para> <para>RS frame ensemble.</para>
<para>Possible values are:</para> <para>Possible values are:</para>
<section id="atscmh-rs-frame-ensemble"> <para id="atscmh-rs-frame-ensemble">
<programlisting> <programlisting>
typedef enum atscmh_rs_frame_ensemble { typedef enum atscmh_rs_frame_ensemble {
ATSCMH_RSFRAME_ENS_PRI = 0, ATSCMH_RSFRAME_ENS_PRI = 0,
ATSCMH_RSFRAME_ENS_SEC = 1, ATSCMH_RSFRAME_ENS_SEC = 1,
} atscmh_rs_frame_ensemble_t; } atscmh_rs_frame_ensemble_t;
</programlisting> </programlisting>
</section> </para>
</section> </section>
<section id="DTV-ATSCMH-RS-CODE-MODE-PRI"> <section id="DTV-ATSCMH-RS-CODE-MODE-PRI">
<title><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></title> <title><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></title>
<para>RS code mode (primary).</para> <para>RS code mode (primary).</para>
<para>Possible values are:</para> <para>Possible values are:</para>
<section id="atscmh-rs-code-mode"> <para id="atscmh-rs-code-mode">
<programlisting> <programlisting>
typedef enum atscmh_rs_code_mode { typedef enum atscmh_rs_code_mode {
ATSCMH_RSCODE_211_187 = 0, ATSCMH_RSCODE_211_187 = 0,
...@@ -603,7 +603,7 @@ typedef enum atscmh_rs_code_mode { ...@@ -603,7 +603,7 @@ typedef enum atscmh_rs_code_mode {
ATSCMH_RSCODE_235_187 = 2, ATSCMH_RSCODE_235_187 = 2,
} atscmh_rs_code_mode_t; } atscmh_rs_code_mode_t;
</programlisting> </programlisting>
</section> </para>
</section> </section>
<section id="DTV-ATSCMH-RS-CODE-MODE-SEC"> <section id="DTV-ATSCMH-RS-CODE-MODE-SEC">
<title><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></title> <title><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></title>
...@@ -621,27 +621,27 @@ typedef enum atscmh_rs_code_mode { ...@@ -621,27 +621,27 @@ typedef enum atscmh_rs_code_mode {
<title><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></title> <title><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></title>
<para>Series Concatenated Convolutional Code Block Mode.</para> <para>Series Concatenated Convolutional Code Block Mode.</para>
<para>Possible values are:</para> <para>Possible values are:</para>
<section id="atscmh-sccc-block-mode"> <para id="atscmh-sccc-block-mode">
<programlisting> <programlisting>
typedef enum atscmh_sccc_block_mode { typedef enum atscmh_sccc_block_mode {
ATSCMH_SCCC_BLK_SEP = 0, ATSCMH_SCCC_BLK_SEP = 0,
ATSCMH_SCCC_BLK_COMB = 1, ATSCMH_SCCC_BLK_COMB = 1,
} atscmh_sccc_block_mode_t; } atscmh_sccc_block_mode_t;
</programlisting> </programlisting>
</section> </para>
</section> </section>
<section id="DTV-ATSCMH-SCCC-CODE-MODE-A"> <section id="DTV-ATSCMH-SCCC-CODE-MODE-A">
<title><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></title> <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></title>
<para>Series Concatenated Convolutional Code Rate.</para> <para>Series Concatenated Convolutional Code Rate.</para>
<para>Possible values are:</para> <para>Possible values are:</para>
<section id="atscmh-sccc-code-mode"> <para id="atscmh-sccc-code-mode">
<programlisting> <programlisting>
typedef enum atscmh_sccc_code_mode { typedef enum atscmh_sccc_code_mode {
ATSCMH_SCCC_CODE_HLF = 0, ATSCMH_SCCC_CODE_HLF = 0,
ATSCMH_SCCC_CODE_QTR = 1, ATSCMH_SCCC_CODE_QTR = 1,
} atscmh_sccc_code_mode_t; } atscmh_sccc_code_mode_t;
</programlisting> </programlisting>
</section> </para>
</section> </section>
<section id="DTV-ATSCMH-SCCC-CODE-MODE-B"> <section id="DTV-ATSCMH-SCCC-CODE-MODE-B">
<title><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></title> <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></title>
...@@ -817,7 +817,7 @@ typedef enum fe_hierarchy { ...@@ -817,7 +817,7 @@ typedef enum fe_hierarchy {
</section> </section>
<section id="DTV-INTERLEAVING"> <section id="DTV-INTERLEAVING">
<title><constant>DTV_INTERLEAVING</constant></title> <title><constant>DTV_INTERLEAVING</constant></title>
<para>Interleaving mode</para> <para id="fe-interleaving">Interleaving mode</para>
<programlisting> <programlisting>
enum fe_interleaving { enum fe_interleaving {
INTERLEAVING_NONE, INTERLEAVING_NONE,
......
...@@ -264,7 +264,7 @@ and to add newer delivery systems.</para> ...@@ -264,7 +264,7 @@ and to add newer delivery systems.</para>
<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in <constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in
order to be able to support the newer System Delivery like DVB-S2, DVB-T2, order to be able to support the newer System Delivery like DVB-S2, DVB-T2,
DVB-C2, ISDB, etc.</para> DVB-C2, ISDB, etc.</para>
<para>All kinds of parameters are combined as an union in the FrontendParameters structure:</para> <para>All kinds of parameters are combined as an union in the FrontendParameters structure:
<programlisting> <programlisting>
struct dvb_frontend_parameters { struct dvb_frontend_parameters {
uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/ uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/
...@@ -277,12 +277,13 @@ struct dvb_frontend_parameters { ...@@ -277,12 +277,13 @@ struct dvb_frontend_parameters {
struct dvb_vsb_parameters vsb; struct dvb_vsb_parameters vsb;
} u; } u;
}; };
</programlisting> </programlisting></para>
<para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate <para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate
frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz. OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz.
</para> </para>
<section id="dvb-qpsk-parameters"> <section id="dvb-qpsk-parameters">
<title>QPSK parameters</title> <title>QPSK parameters</title>
<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para> <para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
...@@ -347,8 +348,8 @@ itself. ...@@ -347,8 +348,8 @@ itself.
<section id="fe-code-rate-t"> <section id="fe-code-rate-t">
<title>frontend code rate</title> <title>frontend code rate</title>
<para>The possible values for the <constant>fec_inner</constant> field used on <para>The possible values for the <constant>fec_inner</constant> field used on
<link refend="dvb-qpsk-parameters"><constant>struct dvb_qpsk_parameters</constant></link> and <link linkend="dvb-qpsk-parameters"><constant>struct dvb_qpsk_parameters</constant></link> and
<link refend="dvb-qam-parameters"><constant>struct dvb_qam_parameters</constant></link> are: <link linkend="dvb-qam-parameters"><constant>struct dvb_qam_parameters</constant></link> are:
</para> </para>
<programlisting> <programlisting>
typedef enum fe_code_rate { typedef enum fe_code_rate {
...@@ -373,9 +374,9 @@ detection. ...@@ -373,9 +374,9 @@ detection.
<section id="fe-modulation-t"> <section id="fe-modulation-t">
<title>frontend modulation type for QAM, OFDM and VSB</title> <title>frontend modulation type for QAM, OFDM and VSB</title>
<para>For cable and terrestrial frontends, e. g. for <para>For cable and terrestrial frontends, e. g. for
<link refend="dvb-qam-parameters"><constant>struct dvb_qpsk_parameters</constant></link>, <link linkend="dvb-qam-parameters"><constant>struct dvb_qpsk_parameters</constant></link>,
<link refend="dvb-ofdm-parameters"><constant>struct dvb_qam_parameters</constant></link> and <link linkend="dvb-ofdm-parameters"><constant>struct dvb_qam_parameters</constant></link> and
<link refend="dvb-vsb-parameters"><constant>struct dvb_qam_parameters</constant></link>, <link linkend="dvb-vsb-parameters"><constant>struct dvb_qam_parameters</constant></link>,
it needs to specify the quadrature modulation mode which can be one of the following: it needs to specify the quadrature modulation mode which can be one of the following:
</para> </para>
<programlisting> <programlisting>
...@@ -396,8 +397,8 @@ it needs to specify the quadrature modulation mode which can be one of the follo ...@@ -396,8 +397,8 @@ it needs to specify the quadrature modulation mode which can be one of the follo
} fe_modulation_t; } fe_modulation_t;
</programlisting> </programlisting>
</section> </section>
<para>Finally, there are several more parameters for OFDM: <section>
</para> <title>More OFDM parameters</title>
<section id="fe-transmit-mode-t"> <section id="fe-transmit-mode-t">
<title>Number of carriers per channel</title> <title>Number of carriers per channel</title>
<programlisting> <programlisting>
...@@ -453,6 +454,7 @@ typedef enum fe_hierarchy { ...@@ -453,6 +454,7 @@ typedef enum fe_hierarchy {
} fe_hierarchy_t; } fe_hierarchy_t;
</programlisting> </programlisting>
</section> </section>
</section>
</section> </section>
......
...@@ -374,29 +374,29 @@ ...@@ -374,29 +374,29 @@
rectangle --- if it is supported by the hardware.</para> rectangle --- if it is supported by the hardware.</para>
<orderedlist> <orderedlist>
<listitem>Sink pad format. The user configures the sink pad <listitem><para>Sink pad format. The user configures the sink pad
format. This format defines the parameters of the image the format. This format defines the parameters of the image the
entity receives through the pad for further processing.</listitem> entity receives through the pad for further processing.</para></listitem>
<listitem>Sink pad actual crop selection. The sink pad crop <listitem><para>Sink pad actual crop selection. The sink pad crop
defines the crop performed to the sink pad format.</listitem> defines the crop performed to the sink pad format.</para></listitem>
<listitem>Sink pad actual compose selection. The size of the <listitem><para>Sink pad actual compose selection. The size of the
sink pad compose rectangle defines the scaling ratio compared sink pad compose rectangle defines the scaling ratio compared
to the size of the sink pad crop rectangle. The location of to the size of the sink pad crop rectangle. The location of
the compose rectangle specifies the location of the actual the compose rectangle specifies the location of the actual
sink compose rectangle in the sink compose bounds sink compose rectangle in the sink compose bounds
rectangle.</listitem> rectangle.</para></listitem>
<listitem>Source pad actual crop selection. Crop on the source <listitem><para>Source pad actual crop selection. Crop on the source
pad defines crop performed to the image in the sink compose pad defines crop performed to the image in the sink compose
bounds rectangle.</listitem> bounds rectangle.</para></listitem>
<listitem>Source pad format. The source pad format defines the <listitem><para>Source pad format. The source pad format defines the
output pixel format of the subdev, as well as the other output pixel format of the subdev, as well as the other
parameters with the exception of the image width and height. parameters with the exception of the image width and height.
Width and height are defined by the size of the source pad Width and height are defined by the size of the source pad
actual crop selection.</listitem> actual crop selection.</para></listitem>
</orderedlist> </orderedlist>
<para>Accessing any of the above rectangles not supported by the <para>Accessing any of the above rectangles not supported by the
......
...@@ -22,8 +22,7 @@ ...@@ -22,8 +22,7 @@
with 10 bits per colour compressed to 8 bits each, using DPCM with 10 bits per colour compressed to 8 bits each, using DPCM
compression. DPCM, differential pulse-code modulation, is lossy. compression. DPCM, differential pulse-code modulation, is lossy.
Each colour component consumes 8 bits of memory. In other respects Each colour component consumes 8 bits of memory. In other respects
this format is similar to <xref this format is similar to <xref linkend="pixfmt-srggb10" />.</para>
linkend="pixfmt-srggb10">.</xref></para>
</refsect1> </refsect1>
</refentry> </refentry>
...@@ -40,6 +40,7 @@ cropping and composing rectangles have the same size.</para> ...@@ -40,6 +40,7 @@ cropping and composing rectangles have the same size.</para>
<section> <section>
<title>Selection targets</title> <title>Selection targets</title>
<para>
<figure id="sel-targets-capture"> <figure id="sel-targets-capture">
<title>Cropping and composing targets</title> <title>Cropping and composing targets</title>
<mediaobject> <mediaobject>
...@@ -52,12 +53,12 @@ cropping and composing rectangles have the same size.</para> ...@@ -52,12 +53,12 @@ cropping and composing rectangles have the same size.</para>
</textobject> </textobject>
</mediaobject> </mediaobject>
</figure> </figure>
</para>
<para>See <xref linkend="v4l2-selection-targets" /> for more
information.</para>
</section> </section>
See <xref linkend="v4l2-selection-targets" /> for more
information.
<section> <section>
<title>Configuration</title> <title>Configuration</title>
...@@ -216,18 +217,17 @@ composing and cropping operations by setting the appropriate targets. The V4L2 ...@@ -216,18 +217,17 @@ composing and cropping operations by setting the appropriate targets. The V4L2
API lacks any support for composing to and cropping from an image inside a API lacks any support for composing to and cropping from an image inside a
memory buffer. The application could configure a capture device to fill only a memory buffer. The application could configure a capture device to fill only a
part of an image by abusing V4L2 API. Cropping a smaller image from a larger part of an image by abusing V4L2 API. Cropping a smaller image from a larger
one is achieved by setting the field <structfield> one is achieved by setting the field
&v4l2-pix-format;::bytesperline </structfield>. Introducing an image offsets &v4l2-pix-format;<structfield>::bytesperline</structfield>. Introducing an image offsets
could be done by modifying field <structfield> &v4l2-buffer;::m:userptr could be done by modifying field &v4l2-buffer;<structfield>::m_userptr</structfield>
</structfield> before calling <constant> VIDIOC_QBUF </constant>. Those before calling <constant> VIDIOC_QBUF </constant>. Those
operations should be avoided because they are not portable (endianness), and do operations should be avoided because they are not portable (endianness), and do
not work for macroblock and Bayer formats and mmap buffers. The selection API not work for macroblock and Bayer formats and mmap buffers. The selection API
deals with configuration of buffer cropping/composing in a clear, intuitive and deals with configuration of buffer cropping/composing in a clear, intuitive and
portable way. Next, with the selection API the concepts of the padded target portable way. Next, with the selection API the concepts of the padded target
and constraints flags are introduced. Finally, <structname> &v4l2-crop; and constraints flags are introduced. Finally, &v4l2-crop; and &v4l2-cropcap;
</structname> and <structname> &v4l2-cropcap; </structname> have no reserved have no reserved fields. Therefore there is no way to extend their functionality.
fields. Therefore there is no way to extend their functionality. The new The new &v4l2-selection; provides a lot of place for future
<structname> &v4l2-selection; </structname> provides a lot of place for future
extensions. Driver developers are encouraged to implement only selection API. extensions. Driver developers are encouraged to implement only selection API.
The former cropping API would be simulated using the new one. </para> The former cropping API would be simulated using the new one. </para>
......
...@@ -152,12 +152,10 @@ satisfactory parameters have been negotiated. If constraints flags have to be ...@@ -152,12 +152,10 @@ satisfactory parameters have been negotiated. If constraints flags have to be
violated at then ERANGE is returned. The error indicates that <emphasis> there violated at then ERANGE is returned. The error indicates that <emphasis> there
exist no rectangle </emphasis> that satisfies the constraints.</para> exist no rectangle </emphasis> that satisfies the constraints.</para>
</refsect1>
<para>Selection targets and flags are documented in <xref <para>Selection targets and flags are documented in <xref
linkend="v4l2-selections-common"/>.</para> linkend="v4l2-selections-common"/>.</para>
<section> <para>
<figure id="sel-const-adjust"> <figure id="sel-const-adjust">
<title>Size adjustments with constraint flags.</title> <title>Size adjustments with constraint flags.</title>
<mediaobject> <mediaobject>
...@@ -170,9 +168,9 @@ exist no rectangle </emphasis> that satisfies the constraints.</para> ...@@ -170,9 +168,9 @@ exist no rectangle </emphasis> that satisfies the constraints.</para>
</textobject> </textobject>
</mediaobject> </mediaobject>
</figure> </figure>
</section> </para>
<refsect1> <para>
<table pgwide="1" frame="none" id="v4l2-selection"> <table pgwide="1" frame="none" id="v4l2-selection">
<title>struct <structname>v4l2_selection</structname></title> <title>struct <structname>v4l2_selection</structname></title>
<tgroup cols="3"> <tgroup cols="3">
...@@ -208,6 +206,7 @@ exist no rectangle </emphasis> that satisfies the constraints.</para> ...@@ -208,6 +206,7 @@ exist no rectangle </emphasis> that satisfies the constraints.</para>
</tbody> </tbody>
</tgroup> </tgroup>
</table> </table>
</para>
</refsect1> </refsect1>
<refsect1> <refsect1>
......
...@@ -155,6 +155,8 @@ or no buffers have been allocated yet, or the ...@@ -155,6 +155,8 @@ or no buffers have been allocated yet, or the
<structfield>userptr</structfield> or <structfield>userptr</structfield> or
<structfield>length</structfield> are invalid.</para> <structfield>length</structfield> are invalid.</para>
</listitem> </listitem>
</varlistentry>
<varlistentry>
<term><errorcode>EIO</errorcode></term> <term><errorcode>EIO</errorcode></term>
<listitem> <listitem>
<para><constant>VIDIOC_DQBUF</constant> failed due to an <para><constant>VIDIOC_DQBUF</constant> failed due to an
......
...@@ -69,23 +69,22 @@ ...@@ -69,23 +69,22 @@
more information on how each selection target affects the image more information on how each selection target affects the image
processing pipeline inside the subdevice.</para> processing pipeline inside the subdevice.</para>
<section> <refsect2>
<title>Types of selection targets</title> <title>Types of selection targets</title>
<para>There are two types of selection targets: actual and bounds. The <para>There are two types of selection targets: actual and bounds. The
actual targets are the targets which configure the hardware. The BOUNDS actual targets are the targets which configure the hardware. The BOUNDS
target will return a rectangle that contain all possible actual target will return a rectangle that contain all possible actual
rectangles.</para> rectangles.</para>
</section> </refsect2>
<section> <refsect2>
<title>Discovering supported features</title> <title>Discovering supported features</title>
<para>To discover which targets are supported, the user can <para>To discover which targets are supported, the user can
perform <constant>VIDIOC_SUBDEV_G_SELECTION</constant> on them. perform <constant>VIDIOC_SUBDEV_G_SELECTION</constant> on them.
Any unsupported target will return Any unsupported target will return
<constant>EINVAL</constant>.</para> <constant>EINVAL</constant>.</para>
</section>
<para>Selection targets and flags are documented in <xref <para>Selection targets and flags are documented in <xref
linkend="v4l2-selections-common"/>.</para> linkend="v4l2-selections-common"/>.</para>
...@@ -132,6 +131,7 @@ ...@@ -132,6 +131,7 @@
</tbody> </tbody>
</tgroup> </tgroup>
</table> </table>
</refsect2>
</refsect1> </refsect1>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment