sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget./translations/zh_CN/driver-api/media/v4l2-jpegmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/zh_TW/driver-api/media/v4l2-jpegmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/it_IT/driver-api/media/v4l2-jpegmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/ja_JP/driver-api/media/v4l2-jpegmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/ko_KR/driver-api/media/v4l2-jpegmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/sp_SP/driver-api/media/v4l2-jpegmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhH/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg.rsthKubhsection)}(hhh](htitle)}(h6V4L2 JPEG header related functions and data structuresh]h6V4L2 JPEG header related functions and data structures}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singlev4l2_jpeg_reference (C struct)c.v4l2_jpeg_referencehNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hv4l2_jpeg_referenceh]hdesc_signature_line)}(hstruct v4l2_jpeg_referenceh](hdesc_sig_keyword)}(hstructh]hstruct}(hhhhhNhNubah}(h]h ]kah"]h$]h&]uh1hhhhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKubhdesc_sig_space)}(h h]h }(hhhhhNhNubah}(h]h ]wah"]h$]h&]uh1hhhhhhhhKubh desc_name)}(hv4l2_jpeg_referenceh]h desc_sig_name)}(hhh]hv4l2_jpeg_reference}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhhhhhhhKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1hsphinx_line_type declaratorhhhhhhhKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhhhKhhhhubh desc_content)}(hhh]h paragraph)}(hreference into the JPEG bufferh]hreference into the JPEG buffer}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK+hjBhhubah}(h]h ]h"]h$]h&]uh1j@hhhhhhhKubeh}(h]h ](cstructeh"]h$]h&]domainj_objtypej`desctypej`noindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(hX **Definition**:: struct v4l2_jpeg_reference { u8 *start; size_t length; }; **Members** ``start`` pointer to the start of the referenced segment or table ``length`` size of the referenced segment or table **Description** Wnen referencing marker segments, start points right after the marker code, and length is the size of the segment parameters, excluding the marker code.h](h block_quote)}(h`**Definition**:: struct v4l2_jpeg_reference { u8 *start; size_t length; }; h](jF)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjvubh:}(hjvhhhNhNubeh}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK/hjrubh literal_block)}(hEstruct v4l2_jpeg_reference { u8 *start; size_t length; };h]hEstruct v4l2_jpeg_reference { u8 *start; size_t length; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK1hjrubeh}(h]h ]h"]h$]h&]uh1jphjhK/hjlubjF)}(h **Members**h]j{)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK6hjlubhdefinition_list)}(hhh](hdefinition_list_item)}(hB``start`` pointer to the start of the referenced segment or table h](hterm)}(h ``start``h]hliteral)}(hjh]hstart}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK-hjubh definition)}(hhh]jF)}(h7pointer to the start of the referenced segment or tableh]h7pointer to the start of the referenced segment or table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhK-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK-hjubj)}(h4``length`` size of the referenced segment or table h](j)}(h ``length``h]j)}(hjh]hlength}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK/hj ubj)}(hhh]jF)}(h'size of the referenced segment or tableh]h'size of the referenced segment or table}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK.hj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj%hK/hjubeh}(h]h ]h"]h$]h&]uh1jhjlubjF)}(h**Description**h]j{)}(hjLh]h Description}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjJubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK1hjlubjF)}(hWnen referencing marker segments, start points right after the marker code, and length is the size of the segment parameters, excluding the marker code.h]hWnen referencing marker segments, start points right after the marker code, and length is the size of the segment parameters, excluding the marker code.}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK.hjlubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌)v4l2_jpeg_frame_component_spec (C struct) c.v4l2_jpeg_frame_component_spechNtauh1hhhhhhNhNubh)}(hhh](h)}(hv4l2_jpeg_frame_component_spech]h)}(h%struct v4l2_jpeg_frame_component_spech](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK4ubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhK4ubj)}(hv4l2_jpeg_frame_component_spech]j)}(hjh]hv4l2_jpeg_frame_component_spec}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhjhhhjhK4ubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hjhhhjhK4ubah}(h]jah ](j8j9eh"]h$]h&]j=j>)j?huh1hhjhK4hjhhubjA)}(hhh]jF)}(hframe component-specificationh]hframe component-specification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK:hjhhubah}(h]h ]h"]h$]h&]uh1j@hjhhhjhK4ubeh}(h]h ](j_structeh"]h$]h&]jdj_jejjfjjgjhjiuh1hhhhhhNhNubjk)}(hX **Definition**:: struct v4l2_jpeg_frame_component_spec { u8 component_identifier; u8 horizontal_sampling_factor; u8 vertical_sampling_factor; u8 quantization_table_selector; }; **Members** ``component_identifier`` C[i] ``horizontal_sampling_factor`` H[i] ``vertical_sampling_factor`` V[i] ``quantization_table_selector`` quantization table destination selector Tq[i]h](jq)}(h**Definition**:: struct v4l2_jpeg_frame_component_spec { u8 component_identifier; u8 horizontal_sampling_factor; u8 vertical_sampling_factor; u8 quantization_table_selector; }; h](jF)}(h**Definition**::h](j{)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK>hjubj)}(hstruct v4l2_jpeg_frame_component_spec { u8 component_identifier; u8 horizontal_sampling_factor; u8 vertical_sampling_factor; u8 quantization_table_selector; };h]hstruct v4l2_jpeg_frame_component_spec { u8 component_identifier; u8 horizontal_sampling_factor; u8 vertical_sampling_factor; u8 quantization_table_selector; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK@hjubeh}(h]h ]h"]h$]h&]uh1jphjhK>hjubjF)}(h **Members**h]j{)}(hj+h]hMembers}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj)ubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKGhjubj)}(hhh](j)}(h``component_identifier`` C[i] h](j)}(h``component_identifier``h]j)}(hjJh]hcomponent_identifier}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhjubj)}(hhh]jF)}(hV[i]h]hV[i]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhK>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK>hjAubj)}(hM``quantization_table_selector`` quantization table destination selector Tq[i]h](j)}(h``quantization_table_selector``h]j)}(hjh]hquantization_table_selector}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK>hjubj)}(hhh]jF)}(h-quantization table destination selector Tq[i]h]h-quantization table destination selector Tq[i]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK?hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hK>hjAubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌!v4l2_jpeg_frame_header (C struct)c.v4l2_jpeg_frame_headerhNtauh1hhhhhhNhNubh)}(hhh](h)}(hv4l2_jpeg_frame_headerh]h)}(hstruct v4l2_jpeg_frame_headerh](h)}(hhh]hstruct}(hjOhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjKhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKEubh)}(h h]h }(hj]hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjKhhhj\hKEubj)}(hv4l2_jpeg_frame_headerh]j)}(hjIh]hv4l2_jpeg_frame_header}(hjohhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjkubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhjKhhhj\hKEubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hjGhhhj\hKEubah}(h]jBah ](j8j9eh"]h$]h&]j=j>)j?huh1hhj\hKEhjDhhubjA)}(hhh]jF)}(hJPEG frame headerh]hJPEG frame header}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKHhjhhubah}(h]h ]h"]h$]h&]uh1j@hjDhhhj\hKEubeh}(h]h ](j_structeh"]h$]h&]jdj_jejjfjjgjhjiuh1hhhhhhNhNubjk)}(hX **Definition**:: struct v4l2_jpeg_frame_header { u16 height; u16 width; u8 precision; u8 num_components; struct v4l2_jpeg_frame_component_spec component[V4L2_JPEG_MAX_COMPONENTS]; enum v4l2_jpeg_chroma_subsampling subsampling; }; **Members** ``height`` Y ``width`` X ``precision`` P ``num_components`` Nf ``component`` component-specification, see v4l2_jpeg_frame_component_spec ``subsampling`` decoded subsampling from component-specificationh](jq)}(hX**Definition**:: struct v4l2_jpeg_frame_header { u16 height; u16 width; u8 precision; u8 num_components; struct v4l2_jpeg_frame_component_spec component[V4L2_JPEG_MAX_COMPONENTS]; enum v4l2_jpeg_chroma_subsampling subsampling; }; h](jF)}(h**Definition**::h](j{)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKLhjubj)}(hstruct v4l2_jpeg_frame_header { u16 height; u16 width; u8 precision; u8 num_components; struct v4l2_jpeg_frame_component_spec component[V4L2_JPEG_MAX_COMPONENTS]; enum v4l2_jpeg_chroma_subsampling subsampling; };h]hstruct v4l2_jpeg_frame_header { u16 height; u16 width; u8 precision; u8 num_components; struct v4l2_jpeg_frame_component_spec component[V4L2_JPEG_MAX_COMPONENTS]; enum v4l2_jpeg_chroma_subsampling subsampling; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKNhjubeh}(h]h ]h"]h$]h&]uh1jphjhKLhjubjF)}(h **Members**h]j{)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKWhjubj)}(hhh](j)}(h ``height`` Y h](j)}(h ``height``h]j)}(hjh]hheight}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKJhjubj)}(hhh]jF)}(hYh]hY}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhKJhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKJhjubj)}(h ``width`` X h](j)}(h ``width``h]j)}(hjAh]hwidth}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKKhj;ubj)}(hhh]jF)}(hXh]hX}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjVhKKhjWubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhjVhKKhjubj)}(h``precision`` P h](j)}(h ``precision``h]j)}(hjzh]h precision}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKLhjtubj)}(hhh]jF)}(hPh]hP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhKLhjubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjhKLhjubj)}(h``num_components`` Nf h](j)}(h``num_components``h]j)}(hjh]hnum_components}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKMhjubj)}(hhh]jF)}(hNfh]hNf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhKMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKMhjubj)}(hJ``component`` component-specification, see v4l2_jpeg_frame_component_spec h](j)}(h ``component``h]j)}(hjh]h component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKNhjubj)}(hhh]jF)}(h;component-specification, see v4l2_jpeg_frame_component_spech]h;component-specification, see v4l2_jpeg_frame_component_spec}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhKNhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKNhjubj)}(h@``subsampling`` decoded subsampling from component-specificationh](j)}(h``subsampling``h]j)}(hj%h]h subsampling}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKNhjubj)}(hhh]jF)}(h0decoded subsampling from component-specificationh]h0decoded subsampling from component-specification}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKOhj;ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj:hKNhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌(v4l2_jpeg_scan_component_spec (C struct)c.v4l2_jpeg_scan_component_spechNtauh1hhhhhhNhNubh)}(hhh](h)}(hv4l2_jpeg_scan_component_spech]h)}(h$struct v4l2_jpeg_scan_component_spech](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj{hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKUubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj{hhhjhKUubj)}(hv4l2_jpeg_scan_component_spech]j)}(hjyh]hv4l2_jpeg_scan_component_spec}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhj{hhhjhKUubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hjwhhhjhKUubah}(h]jrah ](j8j9eh"]h$]h&]j=j>)j?huh1hhjhKUhjthhubjA)}(hhh]jF)}(hscan component-specificationh]hscan component-specification}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK\hjhhubah}(h]h ]h"]h$]h&]uh1j@hjthhhjhKUubeh}(h]h ](j_structeh"]h$]h&]jdj_jejjfjjgjhjiuh1hhhhhhNhNubjk)}(hXM **Definition**:: struct v4l2_jpeg_scan_component_spec { u8 component_selector; u8 dc_entropy_coding_table_selector; u8 ac_entropy_coding_table_selector; }; **Members** ``component_selector`` Cs[j] ``dc_entropy_coding_table_selector`` Td[j] ``ac_entropy_coding_table_selector`` Ta[j]h](jq)}(h**Definition**:: struct v4l2_jpeg_scan_component_spec { u8 component_selector; u8 dc_entropy_coding_table_selector; u8 ac_entropy_coding_table_selector; }; h](jF)}(h**Definition**::h](j{)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK`hjubj)}(hstruct v4l2_jpeg_scan_component_spec { u8 component_selector; u8 dc_entropy_coding_table_selector; u8 ac_entropy_coding_table_selector; };h]hstruct v4l2_jpeg_scan_component_spec { u8 component_selector; u8 dc_entropy_coding_table_selector; u8 ac_entropy_coding_table_selector; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKbhjubeh}(h]h ]h"]h$]h&]uh1jphjhK`hjubjF)}(h **Members**h]j{)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhhjubj)}(hhh](j)}(h``component_selector`` Cs[j] h](j)}(h``component_selector``h]j)}(hj8h]hcomponent_selector}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK^hj2ubj)}(hhh]jF)}(hCs[j]h]hCs[j]}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjMhK^hjNubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhjMhK^hj/ubj)}(h+``dc_entropy_coding_table_selector`` Td[j] h](j)}(h$``dc_entropy_coding_table_selector``h]j)}(hjqh]h dc_entropy_coding_table_selector}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK_hjkubj)}(hhh]jF)}(hTd[j]h]hTd[j]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhK_hjubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1jhjhK_hj/ubj)}(h*``ac_entropy_coding_table_selector`` Ta[j]h](j)}(h$``ac_entropy_coding_table_selector``h]j)}(hjh]h ac_entropy_coding_table_selector}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK_hjubj)}(hhh]jF)}(hTa[j]h]hTa[j]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK_hj/ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌ v4l2_jpeg_scan_header (C struct)c.v4l2_jpeg_scan_headerhNtauh1hhhhhhNhNubh)}(hhh](h)}(hv4l2_jpeg_scan_headerh]h)}(hstruct v4l2_jpeg_scan_headerh](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjhhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKfubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhKfubj)}(hv4l2_jpeg_scan_headerh]j)}(hjh]hv4l2_jpeg_scan_header}(hj$hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhjhhhjhKfubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hjhhhjhKfubah}(h]jah ](j8j9eh"]h$]h&]j=j>)j?huh1hhjhKfhjhhubjA)}(hhh]jF)}(hJPEG scan headerh]hJPEG scan header}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhhjChhubah}(h]h ]h"]h$]h&]uh1j@hjhhhjhKfubeh}(h]h ](j_structeh"]h$]h&]jdj_jej^jfj^jgjhjiuh1hhhhhhNhNubjk)}(hX  **Definition**:: struct v4l2_jpeg_scan_header { u8 num_components; struct v4l2_jpeg_scan_component_spec component[V4L2_JPEG_MAX_COMPONENTS]; }; **Members** ``num_components`` Ns ``component`` component-specification, see v4l2_jpeg_scan_component_spech](jq)}(h**Definition**:: struct v4l2_jpeg_scan_header { u8 num_components; struct v4l2_jpeg_scan_component_spec component[V4L2_JPEG_MAX_COMPONENTS]; }; h](jF)}(h**Definition**::h](j{)}(h**Definition**h]h Definition}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjjubh:}(hjjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKlhjfubj)}(hstruct v4l2_jpeg_scan_header { u8 num_components; struct v4l2_jpeg_scan_component_spec component[V4L2_JPEG_MAX_COMPONENTS]; };h]hstruct v4l2_jpeg_scan_header { u8 num_components; struct v4l2_jpeg_scan_component_spec component[V4L2_JPEG_MAX_COMPONENTS]; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKnhjfubeh}(h]h ]h"]h$]h&]uh1jphjhKlhjbubjF)}(h **Members**h]j{)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKshjbubj)}(hhh](j)}(h``num_components`` Ns h](j)}(h``num_components``h]j)}(hjh]hnum_components}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKjhjubj)}(hhh]jF)}(hNsh]hNs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhKjhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKjhjubj)}(hH``component`` component-specification, see v4l2_jpeg_scan_component_spech](j)}(h ``component``h]j)}(hjh]h component}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKjhjubj)}(hhh]jF)}(h:component-specification, see v4l2_jpeg_scan_component_spech]h:component-specification, see v4l2_jpeg_scan_component_spec}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKkhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hKjhjubeh}(h]h ]h"]h$]h&]uh1jhjbubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌v4l2_jpeg_app14_tf (C enum)c.v4l2_jpeg_app14_tfhNtauh1hhhhhhNhNubh)}(hhh](h)}(hv4l2_jpeg_app14_tfh]h)}(henum v4l2_jpeg_app14_tfh](h)}(henumh]henum}(hjP hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjL hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKqubh)}(h h]h }(hj_ hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjL hhhj^ hKqubj)}(hv4l2_jpeg_app14_tfh]j)}(hjJ h]hv4l2_jpeg_app14_tf}(hjq hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjm ubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhjL hhhj^ hKqubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hjH hhhj^ hKqubah}(h]jC ah ](j8j9eh"]h$]h&]j=j>)j?huh1hhj^ hKqhjE hhubjA)}(hhh]jF)}(hAPP14 transform flag According to Rec. ITU-T T.872 (06/2012) 6.5.3 APP14 segment is for color encoding, it contains a transform flag, which may have values of 0, 1 and 2 and are interpreted as follows:h]hAPP14 transform flag According to Rec. ITU-T T.872 (06/2012) 6.5.3 APP14 segment is for color encoding, it contains a transform flag, which may have values of 0, 1 and 2 and are interpreted as follows:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKshj hhubah}(h]h ]h"]h$]h&]uh1j@hjE hhhj^ hKqubeh}(h]h ](j_enumeh"]h$]h&]jdj_jej jfj jgjhjiuh1hhhhhhNhNubjk)}(hXo**Constants** ``V4L2_JPEG_APP14_TF_CMYK_RGB`` CMYK for images encoded with four components RGB for images encoded with three components ``V4L2_JPEG_APP14_TF_YCBCR`` an image encoded with three components using YCbCr ``V4L2_JPEG_APP14_TF_YCCK`` an image encoded with four components using YCCK ``V4L2_JPEG_APP14_TF_UNKNOWN`` indicate app14 is not presenth](jF)}(h **Constants**h]j{)}(hj h]h Constants}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj ubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKwhj ubj)}(hhh](j)}(hz``V4L2_JPEG_APP14_TF_CMYK_RGB`` CMYK for images encoded with four components RGB for images encoded with three components h](j)}(h``V4L2_JPEG_APP14_TF_CMYK_RGB``h]j)}(hj h]hV4L2_JPEG_APP14_TF_CMYK_RGB}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK{hj ubj)}(hhh]jF)}(hYCMYK for images encoded with four components RGB for images encoded with three componentsh]hYCMYK for images encoded with four components RGB for images encoded with three components}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKzhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hK{hj ubj)}(hP``V4L2_JPEG_APP14_TF_YCBCR`` an image encoded with three components using YCbCr h](j)}(h``V4L2_JPEG_APP14_TF_YCBCR``h]j)}(hj h]hV4L2_JPEG_APP14_TF_YCBCR}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhK~hj ubj)}(hhh]jF)}(h2an image encoded with three components using YCbCrh]h2an image encoded with three components using YCbCr}(hj' hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj# hK~hj$ ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj# hK~hj ubj)}(hM``V4L2_JPEG_APP14_TF_YCCK`` an image encoded with four components using YCCK h](j)}(h``V4L2_JPEG_APP14_TF_YCCK``h]j)}(hjG h]hV4L2_JPEG_APP14_TF_YCCK}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhjA ubj)}(hhh]jF)}(h0an image encoded with four components using YCCKh]h0an image encoded with four components using YCCK}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj\ hKhj] ubah}(h]h ]h"]h$]h&]uh1jhjA ubeh}(h]h ]h"]h$]h&]uh1jhj\ hKhj ubj)}(h<``V4L2_JPEG_APP14_TF_UNKNOWN`` indicate app14 is not presenth](j)}(h``V4L2_JPEG_APP14_TF_UNKNOWN``h]j)}(hj h]hV4L2_JPEG_APP14_TF_UNKNOWN}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj~ ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhjz ubj)}(hhh]jF)}(hindicate app14 is not presenth]hindicate app14 is not present}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhjz ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌v4l2_jpeg_header (C struct)c.v4l2_jpeg_headerhNtauh1hhhhhhNhNubh)}(hhh](h)}(hv4l2_jpeg_headerh]h)}(hstruct v4l2_jpeg_headerh](h)}(hhh]hstruct}(hj hhhNhNubah}(h]h ]hah"]h$]h&]uh1hhj hhhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKubh)}(h h]h }(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj hhhj hKubj)}(hv4l2_jpeg_headerh]j)}(hj h]hv4l2_jpeg_header}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhj ubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhj hhhj hKubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hj hhhj hKubah}(h]j ah ](j8j9eh"]h$]h&]j=j>)j?huh1hhj hKhj hhubjA)}(hhh]jF)}(hparsed JPEG headerh]hparsed JPEG header}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj hhubah}(h]h ]h"]h$]h&]uh1j@hj hhhj hKubeh}(h]h ](j_structeh"]h$]h&]jdj_jej4 jfj4 jgjhjiuh1hhhhhhNhNubjk)}(hX **Definition**:: struct v4l2_jpeg_header { struct v4l2_jpeg_reference sof; struct v4l2_jpeg_reference sos; unsigned int num_dht; struct v4l2_jpeg_reference dht[V4L2_JPEG_MAX_TABLES]; unsigned int num_dqt; struct v4l2_jpeg_reference dqt[V4L2_JPEG_MAX_TABLES]; struct v4l2_jpeg_frame_header frame; struct v4l2_jpeg_scan_header *scan; struct v4l2_jpeg_reference *quantization_tables; struct v4l2_jpeg_reference *huffman_tables; u16 restart_interval; size_t ecs_offset; enum v4l2_jpeg_app14_tf app14_tf; }; **Members** ``sof`` pointer to frame header and size ``sos`` pointer to scan header and size ``num_dht`` number of entries in **dht** ``dht`` pointers to huffman tables and sizes ``num_dqt`` number of entries in **dqt** ``dqt`` pointers to quantization tables and sizes ``frame`` parsed frame header ``scan`` pointer to parsed scan header, optional ``quantization_tables`` references to four quantization tables, optional ``huffman_tables`` references to four Huffman tables in DC0, DC1, AC0, AC1 order, optional ``restart_interval`` number of MCU per restart interval, Ri ``ecs_offset`` buffer offset in bytes to the entropy coded segment ``app14_tf`` transform flag from app14 data **Description** When this structure is passed to v4l2_jpeg_parse_header, the optional scan, quantization_tables, and huffman_tables pointers must be initialized to NULL or point at valid memory.h](jq)}(hXd**Definition**:: struct v4l2_jpeg_header { struct v4l2_jpeg_reference sof; struct v4l2_jpeg_reference sos; unsigned int num_dht; struct v4l2_jpeg_reference dht[V4L2_JPEG_MAX_TABLES]; unsigned int num_dqt; struct v4l2_jpeg_reference dqt[V4L2_JPEG_MAX_TABLES]; struct v4l2_jpeg_frame_header frame; struct v4l2_jpeg_scan_header *scan; struct v4l2_jpeg_reference *quantization_tables; struct v4l2_jpeg_reference *huffman_tables; u16 restart_interval; size_t ecs_offset; enum v4l2_jpeg_app14_tf app14_tf; }; h](jF)}(h**Definition**::h](j{)}(h**Definition**h]h Definition}(hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj@ ubh:}(hj@ hhhNhNubeh}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj< ubj)}(hX3struct v4l2_jpeg_header { struct v4l2_jpeg_reference sof; struct v4l2_jpeg_reference sos; unsigned int num_dht; struct v4l2_jpeg_reference dht[V4L2_JPEG_MAX_TABLES]; unsigned int num_dqt; struct v4l2_jpeg_reference dqt[V4L2_JPEG_MAX_TABLES]; struct v4l2_jpeg_frame_header frame; struct v4l2_jpeg_scan_header *scan; struct v4l2_jpeg_reference *quantization_tables; struct v4l2_jpeg_reference *huffman_tables; u16 restart_interval; size_t ecs_offset; enum v4l2_jpeg_app14_tf app14_tf; };h]hX3struct v4l2_jpeg_header { struct v4l2_jpeg_reference sof; struct v4l2_jpeg_reference sos; unsigned int num_dht; struct v4l2_jpeg_reference dht[V4L2_JPEG_MAX_TABLES]; unsigned int num_dqt; struct v4l2_jpeg_reference dqt[V4L2_JPEG_MAX_TABLES]; struct v4l2_jpeg_frame_header frame; struct v4l2_jpeg_scan_header *scan; struct v4l2_jpeg_reference *quantization_tables; struct v4l2_jpeg_reference *huffman_tables; u16 restart_interval; size_t ecs_offset; enum v4l2_jpeg_app14_tf app14_tf; };}hj] sbah}(h]h ]h"]h$]h&]hhuh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj< ubeh}(h]h ]h"]h$]h&]uh1jphj\ hKhj8 ubjF)}(h **Members**h]j{)}(hjt h]hMembers}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjr ubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj8 ubj)}(hhh](j)}(h)``sof`` pointer to frame header and size h](j)}(h``sof``h]j)}(hj h]hsof}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj ubj)}(hhh]jF)}(h pointer to frame header and sizeh]h pointer to frame header and size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h(``sos`` pointer to scan header and size h](j)}(h``sos``h]j)}(hj h]hsos}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj ubj)}(hhh]jF)}(hpointer to scan header and sizeh]hpointer to scan header and size}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h)``num_dht`` number of entries in **dht** h](j)}(h ``num_dht``h]j)}(hj h]hnum_dht}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj ubj)}(hhh]jF)}(hnumber of entries in **dht**h](hnumber of entries in }(hj hhhNhNubj{)}(h**dht**h]hdht}(hj& hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj ubeh}(h]h ]h"]h$]h&]uh1jEhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h-``dht`` pointers to huffman tables and sizes h](j)}(h``dht``h]j)}(hjL h]hdht}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhjF ubj)}(hhh]jF)}(h$pointers to huffman tables and sizesh]h$pointers to huffman tables and sizes}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhja hKhjb ubah}(h]h ]h"]h$]h&]uh1jhjF ubeh}(h]h ]h"]h$]h&]uh1jhja hKhj ubj)}(h)``num_dqt`` number of entries in **dqt** h](j)}(h ``num_dqt``h]j)}(hj h]hnum_dqt}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj ubj)}(hhh]jF)}(hnumber of entries in **dqt**h](hnumber of entries in }(hj hhhNhNubj{)}(h**dqt**h]hdqt}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj ubeh}(h]h ]h"]h$]h&]uh1jEhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h2``dqt`` pointers to quantization tables and sizes h](j)}(h``dqt``h]j)}(hj h]hdqt}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj ubj)}(hhh]jF)}(h)pointers to quantization tables and sizesh]h)pointers to quantization tables and sizes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h``frame`` parsed frame header h](j)}(h ``frame``h]j)}(hj h]hframe}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj ubj)}(hhh]jF)}(hparsed frame headerh]hparsed frame header}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h1``scan`` pointer to parsed scan header, optional h](j)}(h``scan``h]j)}(hj> h]hscan}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj< ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj8 ubj)}(hhh]jF)}(h'pointer to parsed scan header, optionalh]h'pointer to parsed scan header, optional}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjS hKhjT ubah}(h]h ]h"]h$]h&]uh1jhj8 ubeh}(h]h ]h"]h$]h&]uh1jhjS hKhj ubj)}(hI``quantization_tables`` references to four quantization tables, optional h](j)}(h``quantization_tables``h]j)}(hjw h]hquantization_tables}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhjq ubj)}(hhh]jF)}(h0references to four quantization tables, optionalh]h0references to four quantization tables, optional}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhjq ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h[``huffman_tables`` references to four Huffman tables in DC0, DC1, AC0, AC1 order, optional h](j)}(h``huffman_tables``h]j)}(hj h]hhuffman_tables}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj ubj)}(hhh]jF)}(hGreferences to four Huffman tables in DC0, DC1, AC0, AC1 order, optionalh]hGreferences to four Huffman tables in DC0, DC1, AC0, AC1 order, optional}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h<``restart_interval`` number of MCU per restart interval, Ri h](j)}(h``restart_interval``h]j)}(hj h]hrestart_interval}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj ubj)}(hhh]jF)}(h&number of MCU per restart interval, Rih]h&number of MCU per restart interval, Ri}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj hKhjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(hC``ecs_offset`` buffer offset in bytes to the entropy coded segment h](j)}(h``ecs_offset``h]j)}(hj#h]h ecs_offset}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhjubj)}(hhh]jF)}(h3buffer offset in bytes to the entropy coded segmenth]h3buffer offset in bytes to the entropy coded segment}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj8hKhj9ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj8hKhj ubj)}(h-``app14_tf`` transform flag from app14 data h](j)}(h ``app14_tf``h]j)}(hj\h]happ14_tf}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1jhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhjVubj)}(hhh]jF)}(htransform flag from app14 datah]htransform flag from app14 data}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhjrubah}(h]h ]h"]h$]h&]uh1jhjVubeh}(h]h ]h"]h$]h&]uh1jhjqhKhj ubeh}(h]h ]h"]h$]h&]uh1jhj8 ubjF)}(h**Description**h]j{)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj8 ubjF)}(hWhen this structure is passed to v4l2_jpeg_parse_header, the optional scan, quantization_tables, and huffman_tables pointers must be initialized to NULL or point at valid memory.h]hWhen this structure is passed to v4l2_jpeg_parse_header, the optional scan, quantization_tables, and huffman_tables pointers must be initialized to NULL or point at valid memory.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhc/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:6: ./include/media/v4l2-jpeg.hhKhj8 ubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h֌#v4l2_jpeg_parse_header (C function)c.v4l2_jpeg_parse_headerhNtauh1hhhhhhNhNubh)}(hhh](h)}(hPint v4l2_jpeg_parse_header (void *buf, size_t len, struct v4l2_jpeg_header *out)h]h)}(hOint v4l2_jpeg_parse_header(void *buf, size_t len, struct v4l2_jpeg_header *out)h](hdesc_sig_keyword_type)}(hinth]hint}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhhm/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:9: ./drivers/media/v4l2-core/v4l2-jpeg.chMVubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjhhhjhMVubj)}(hv4l2_jpeg_parse_headerh]j)}(hv4l2_jpeg_parse_headerh]hv4l2_jpeg_parse_header}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ](j'j(eh"]h$]h&]hhuh1jhjhhhjhMVubhdesc_parameterlist)}(h5(void *buf, size_t len, struct v4l2_jpeg_header *out)h](hdesc_parameter)}(h void *bufh](j)}(hvoidh]hvoid}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(h h]h }(hj/hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubhdesc_sig_punctuation)}(h*h]h*}(hj?hhhNhNubah}(h]h ]pah"]h$]h&]uh1j=hjubj)}(hbufh]hbuf}(hjNhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(h size_t lenh](h)}(hhh]j)}(hsize_th]hsize_t}(hjjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&] refdomainj_reftype identifier reftargetjlmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jjsbc.v4l2_jpeg_parse_headerasbuh1hhjcubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjcubj)}(hlenh]hlen}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjcubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hstruct v4l2_jpeg_header *outh](h)}(hhh]hstruct}(hjhhhNhNubah}(h]h ]hah"]h$]h&]uh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubh)}(hhh]j)}(hv4l2_jpeg_headerh]hv4l2_jpeg_header}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj_reftypej reftargetjmodnameN classnameNjj)}j]jc.v4l2_jpeg_parse_headerasbuh1hhjubh)}(h h]h }(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj>)}(hjAh]h*}(hjhhhNhNubah}(h]h ]jJah"]h$]h&]uh1j=hjubj)}(houth]hout}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhMVubeh}(h]h ]h"]h$]h&]hhj2uh1hj3j4hjhhhjhMVubah}(h]jah ](j8j9eh"]h$]h&]j=j>)j?huh1hhjhMVhjhhubjA)}(hhh]jF)}(h3locate marker segments and optionally parse headersh]h3locate marker segments and optionally parse headers}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhm/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:9: ./drivers/media/v4l2-core/v4l2-jpeg.chMVhj7hhubah}(h]h ]h"]h$]h&]uh1j@hjhhhjhMVubeh}(h]h ](j_functioneh"]h$]h&]jdj_jejRjfjRjgjhjiuh1hhhhhhNhNubjk)}(hX7**Parameters** ``void *buf`` address of the JPEG buffer, should start with a SOI marker ``size_t len`` length of the JPEG buffer ``struct v4l2_jpeg_header *out`` returns marker segment positions and optionally parsed headers **Description** The out->scan_header pointer must be initialized to NULL or point to a valid v4l2_jpeg_scan_header structure. The out->huffman_tables and out->quantization_tables pointers must be initialized to NULL or point to a valid array of 4 v4l2_jpeg_reference structures each. Returns 0 or negative error if parsing failed.h](jF)}(h**Parameters**h]j{)}(hj\h]h Parameters}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhjZubah}(h]h ]h"]h$]h&]uh1jEhm/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:9: ./drivers/media/v4l2-core/v4l2-jpeg.chMZhjVubj)}(hhh](j)}(hI``void *buf`` address of the JPEG buffer, should start with a SOI marker h](j)}(h ``void *buf``h]j)}(hj{h]h void *buf}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:9: ./drivers/media/v4l2-core/v4l2-jpeg.chMWhjuubj)}(hhh]jF)}(h:address of the JPEG buffer, should start with a SOI markerh]h:address of the JPEG buffer, should start with a SOI marker}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhMWhjubah}(h]h ]h"]h$]h&]uh1jhjuubeh}(h]h ]h"]h$]h&]uh1jhjhMWhjrubj)}(h)``size_t len`` length of the JPEG buffer h](j)}(h``size_t len``h]j)}(hjh]h size_t len}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:9: ./drivers/media/v4l2-core/v4l2-jpeg.chMXhjubj)}(hhh]jF)}(hlength of the JPEG bufferh]hlength of the JPEG buffer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhMXhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMXhjrubj)}(h```struct v4l2_jpeg_header *out`` returns marker segment positions and optionally parsed headers h](j)}(h ``struct v4l2_jpeg_header *out``h]j)}(hjh]hstruct v4l2_jpeg_header *out}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhm/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:9: ./drivers/media/v4l2-core/v4l2-jpeg.chMYhjubj)}(hhh]jF)}(h>returns marker segment positions and optionally parsed headersh]h>returns marker segment positions and optionally parsed headers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjhMYhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhMYhjrubeh}(h]h ]h"]h$]h&]uh1jhjVubjF)}(h**Description**h]j{)}(hj(h]h Description}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jzhj&ubah}(h]h ]h"]h$]h&]uh1jEhm/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:9: ./drivers/media/v4l2-core/v4l2-jpeg.chM[hjVubjF)}(hX The out->scan_header pointer must be initialized to NULL or point to a valid v4l2_jpeg_scan_header structure. The out->huffman_tables and out->quantization_tables pointers must be initialized to NULL or point to a valid array of 4 v4l2_jpeg_reference structures each.h]hX The out->scan_header pointer must be initialized to NULL or point to a valid v4l2_jpeg_scan_header structure. The out->huffman_tables and out->quantization_tables pointers must be initialized to NULL or point to a valid array of 4 v4l2_jpeg_reference structures each.}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhm/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:9: ./drivers/media/v4l2-core/v4l2-jpeg.chMZhjVubjF)}(h.Returns 0 or negative error if parsing failed.h]h.Returns 0 or negative error if parsing failed.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhm/var/lib/git/docbuild/linux/Documentation/driver-api/media/v4l2-jpeg:9: ./drivers/media/v4l2-core/v4l2-jpeg.chM_hjVubeh}(h]h ] kernelindentah"]h$]h&]uh1jjhhhhhNhNubeh}(h]6v4l2-jpeg-header-related-functions-and-data-structuresah ]h"]6v4l2 jpeg header related functions and data structuresah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}jhjes nametypes}jhsh}(jehhhjjjBjGjrjwjjjC jH j j jju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.