<refentry id="vidioc-g-jpegcomp">
  <refmeta>
    <refentrytitle>ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>VIDIOC_G_JPEGCOMP</refname>
    <refname>VIDIOC_S_JPEGCOMP</refname>
    <refpurpose></refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>v4l2_jpegcompression *<parameter>argp</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>const v4l2_jpegcompression *<parameter>argp</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Arguments</title>

    <variablelist>
      <varlistentry>
	<term><parameter>fd</parameter></term>
	<listitem>
	  <para>&fd;</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>request</parameter></term>
	<listitem>
	  <para>VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>argp</parameter></term>
	<listitem>
	  <para></para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <para>[to do]</para>

    <para>Ronald Bultje elaborates:</para>

    <!-- See video4linux-list@redhat.com on 16 Oct 2002, subject
"Re: [V4L] Re: v4l2 api / Zoran v4l2_jpegcompression" -->

    <para>APP is some application-specific information. The
application can set it itself, and it'll be stored in the JPEG-encoded
fields (eg; interlacing information for in an AVI or so). COM is the
same, but it's comments, like 'encoded by me' or so.</para>

    <para>jpeg_markers describes whether the huffman tables,
quantization tables and the restart interval information (all
JPEG-specific stuff) should be stored in the JPEG-encoded fields.
These define how the JPEG field is encoded. If you omit them,
applications assume you've used standard encoding. You usually do want
to add them.</para>

    <!-- NB VIDIOC_S_JPEGCOMP is w/o. -->

    <table pgwide="1" frame="none" id="v4l2-jpegcompression">
      <title>struct <structname>v4l2_jpegcompression</structname></title>
      <tgroup cols="3">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>int</entry>
	    <entry><structfield>quality</structfield></entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry>int</entry>
	    <entry><structfield>APPn</structfield></entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry>int</entry>
	    <entry><structfield>APP_len</structfield></entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry>char</entry>
	    <entry><structfield>APP_data</structfield>[60]</entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry>int</entry>
	    <entry><structfield>COM_len</structfield></entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry>char</entry>
	    <entry><structfield>COM_data</structfield>[60]</entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>jpeg_markers</structfield></entry>
	    <entry>See <xref linkend="jpeg-markers" />.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>

    <table pgwide="1" frame="none" id="jpeg-markers">
      <title>JPEG Markers Flags</title>
      <tgroup cols="3">
	&cs-def;
	<tbody valign="top">
	  <row>
	    <entry><constant>V4L2_JPEG_MARKER_DHT</constant></entry>
	    <entry>(1&lt;&lt;3)</entry>
	    <entry>Define Huffman Tables</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_JPEG_MARKER_DQT</constant></entry>
	    <entry>(1&lt;&lt;4)</entry>
	    <entry>Define Quantization Tables</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_JPEG_MARKER_DRI</constant></entry>
	    <entry>(1&lt;&lt;5)</entry>
	    <entry>Define Restart Interval</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_JPEG_MARKER_COM</constant></entry>
	    <entry>(1&lt;&lt;6)</entry>
	    <entry>Comment segment</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_JPEG_MARKER_APP</constant></entry>
	    <entry>(1&lt;&lt;7)</entry>
	    <entry>App segment, driver will always use APP0</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
  </refsect1>

  <refsect1>
    &return-value;

    <variablelist>
      <varlistentry>
	<term><errorcode>EINVAL</errorcode></term>
	<listitem>
	  <para>This ioctl is not supported.</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
</refentry>

<!--
Local Variables:
mode: sgml
sgml-parent-document: "v4l2.sgml"
indent-tabs-mode: nil
End:
-->
