__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* SPDX-License-Identifier: GPL-2.0-only */ /* * V4L2 JPEG helpers header * * Copyright (C) 2019 Pengutronix, Philipp Zabel <[email protected]> * * For reference, see JPEG ITU-T.81 (ISO/IEC 10918-1) */ #ifndef _V4L2_JPEG_H #define _V4L2_JPEG_H #include <linux/v4l2-controls.h> #define V4L2_JPEG_MAX_COMPONENTS 4 #define V4L2_JPEG_MAX_TABLES 4 /* * Prefixes used to generate huffman table class and destination identifiers as * described below: * * V4L2_JPEG_LUM_HT | V4L2_JPEG_DC_HT : Prefix for Luma DC coefficients * huffman table * V4L2_JPEG_LUM_HT | V4L2_JPEG_AC_HT : Prefix for Luma AC coefficients * huffman table * V4L2_JPEG_CHR_HT | V4L2_JPEG_DC_HT : Prefix for Chroma DC coefficients * huffman table * V4L2_JPEG_CHR_HT | V4L2_JPEG_AC_HT : Prefix for Chroma AC coefficients * huffman table */ #define V4L2_JPEG_LUM_HT 0x00 #define V4L2_JPEG_CHR_HT 0x01 #define V4L2_JPEG_DC_HT 0x00 #define V4L2_JPEG_AC_HT 0x10 /* Length of reference huffman tables as provided in Table K.3 of ITU-T.81 */ #define V4L2_JPEG_REF_HT_AC_LEN 178 #define V4L2_JPEG_REF_HT_DC_LEN 28 /* Array size for 8x8 block of samples or DCT coefficient */ #define V4L2_JPEG_PIXELS_IN_BLOCK 64 /** * struct v4l2_jpeg_reference - reference into the JPEG buffer * @start: pointer to the start of the referenced segment or table * @length: size of the referenced segment or table * * Wnen referencing marker segments, start points right after the marker code, * and length is the size of the segment parameters, excluding the marker code. */ struct v4l2_jpeg_reference { u8 *start; size_t length; }; /* B.2.2 Frame header syntax */ /** * struct v4l2_jpeg_frame_component_spec - frame component-specification * @component_identifier: C[i] * @horizontal_sampling_factor: H[i] * @vertical_sampling_factor: V[i] * @quantization_table_selector: quantization table destination selector Tq[i] */ struct v4l2_jpeg_frame_component_spec { u8 component_identifier; u8 horizontal_sampling_factor; u8 vertical_sampling_factor; u8 quantization_table_selector; }; /** * struct v4l2_jpeg_frame_header - JPEG frame header * @height: Y * @width: X * @precision: P * @num_components: Nf * @component: component-specification, see v4l2_jpeg_frame_component_spec * @subsampling: decoded subsampling from component-specification */ 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; }; /* B.2.3 Scan header syntax */ /** * struct v4l2_jpeg_scan_component_spec - scan component-specification * @component_selector: Cs[j] * @dc_entropy_coding_table_selector: Td[j] * @ac_entropy_coding_table_selector: Ta[j] */ struct v4l2_jpeg_scan_component_spec { u8 component_selector; u8 dc_entropy_coding_table_selector; u8 ac_entropy_coding_table_selector; }; /** * struct v4l2_jpeg_scan_header - JPEG scan header * @num_components: Ns * @component: component-specification, see v4l2_jpeg_scan_component_spec */ struct v4l2_jpeg_scan_header { u8 num_components; /* Ns */ struct v4l2_jpeg_scan_component_spec component[V4L2_JPEG_MAX_COMPONENTS]; /* Ss, Se, Ah, and Al are not used by any driver */ }; /** * enum v4l2_jpeg_app14_tf - APP14 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: * @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 present */ enum v4l2_jpeg_app14_tf { V4L2_JPEG_APP14_TF_CMYK_RGB = 0, V4L2_JPEG_APP14_TF_YCBCR = 1, V4L2_JPEG_APP14_TF_YCCK = 2, V4L2_JPEG_APP14_TF_UNKNOWN = -1, }; /** * struct v4l2_jpeg_header - parsed JPEG header * @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 * * 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. */ 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; }; int v4l2_jpeg_parse_header(void *buf, size_t len, struct v4l2_jpeg_header *out); int v4l2_jpeg_parse_frame_header(void *buf, size_t len, struct v4l2_jpeg_frame_header *frame_header); int v4l2_jpeg_parse_scan_header(void *buf, size_t len, struct v4l2_jpeg_scan_header *scan_header); int v4l2_jpeg_parse_quantization_tables(void *buf, size_t len, u8 precision, struct v4l2_jpeg_reference *q_tables); int v4l2_jpeg_parse_huffman_tables(void *buf, size_t len, struct v4l2_jpeg_reference *huffman_tables); extern const u8 v4l2_jpeg_zigzag_scan_index[V4L2_JPEG_PIXELS_IN_BLOCK]; extern const u8 v4l2_jpeg_ref_table_luma_qt[V4L2_JPEG_PIXELS_IN_BLOCK]; extern const u8 v4l2_jpeg_ref_table_chroma_qt[V4L2_JPEG_PIXELS_IN_BLOCK]; extern const u8 v4l2_jpeg_ref_table_luma_dc_ht[V4L2_JPEG_REF_HT_DC_LEN]; extern const u8 v4l2_jpeg_ref_table_luma_ac_ht[V4L2_JPEG_REF_HT_AC_LEN]; extern const u8 v4l2_jpeg_ref_table_chroma_dc_ht[V4L2_JPEG_REF_HT_DC_LEN]; extern const u8 v4l2_jpeg_ref_table_chroma_ac_ht[V4L2_JPEG_REF_HT_AC_LEN]; #endif
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| davinci | Folder | 0755 |
|
|
| drv-intf | Folder | 0755 |
|
|
| i2c | Folder | 0755 |
|
|
| tpg | Folder | 0755 |
|
|
| cec-notifier.h | File | 5.03 KB | 0644 |
|
| cec-pin.h | File | 2.79 KB | 0644 |
|
| cec.h | File | 17.88 KB | 0644 |
|
| demux.h | File | 22.69 KB | 0644 |
|
| dmxdev.h | File | 5.87 KB | 0644 |
|
| dvb-usb-ids.h | File | 19.46 KB | 0644 |
|
| dvb_ca_en50221.h | File | 4.35 KB | 0644 |
|
| dvb_demux.h | File | 10.77 KB | 0644 |
|
| dvb_frontend.h | File | 30.42 KB | 0644 |
|
| dvb_net.h | File | 2.43 KB | 0644 |
|
| dvb_ringbuffer.h | File | 8.32 KB | 0644 |
|
| dvb_vb2.h | File | 7.65 KB | 0644 |
|
| dvbdev.h | File | 14.77 KB | 0644 |
|
| frame_vector.h | File | 1.42 KB | 0644 |
|
| imx.h | File | 190 B | 0644 |
|
| ipu-bridge.h | File | 4.3 KB | 0644 |
|
| ipu6-pci-table.h | File | 876 B | 0644 |
|
| jpeg.h | File | 500 B | 0644 |
|
| media-dev-allocator.h | File | 2.21 KB | 0644 |
|
| media-device.h | File | 17.65 KB | 0644 |
|
| media-devnode.h | File | 5.29 KB | 0644 |
|
| media-entity.h | File | 47.13 KB | 0644 |
|
| media-request.h | File | 11.95 KB | 0644 |
|
| mipi-csi2.h | File | 1.46 KB | 0644 |
|
| rc-core.h | File | 12.08 KB | 0644 |
|
| rc-map.h | File | 14.53 KB | 0644 |
|
| rcar-fcp.h | File | 1.1 KB | 0644 |
|
| tuner-types.h | File | 7.54 KB | 0644 |
|
| tuner.h | File | 8.46 KB | 0644 |
|
| tveeprom.h | File | 3.3 KB | 0644 |
|
| v4l2-async.h | File | 11.78 KB | 0644 |
|
| v4l2-cci.h | File | 4.75 KB | 0644 |
|
| v4l2-common.h | File | 19.96 KB | 0644 |
|
| v4l2-ctrls.h | File | 54.48 KB | 0644 |
|
| v4l2-dev.h | File | 20.42 KB | 0644 |
|
| v4l2-device.h | File | 18.61 KB | 0644 |
|
| v4l2-dv-timings.h | File | 10.64 KB | 0644 |
|
| v4l2-event.h | File | 6.01 KB | 0644 |
|
| v4l2-fh.h | File | 4.22 KB | 0644 |
|
| v4l2-flash-led-class.h | File | 5.75 KB | 0644 |
|
| v4l2-fwnode.h | File | 15.57 KB | 0644 |
|
| v4l2-h264.h | File | 3.1 KB | 0644 |
|
| v4l2-image-sizes.h | File | 827 B | 0644 |
|
| v4l2-ioctl.h | File | 33.52 KB | 0644 |
|
| v4l2-jpeg.h | File | 6.43 KB | 0644 |
|
| v4l2-mc.h | File | 7.78 KB | 0644 |
|
| v4l2-mediabus.h | File | 9.65 KB | 0644 |
|
| v4l2-mem2mem.h | File | 29.48 KB | 0644 |
|
| v4l2-rect.h | File | 5.71 KB | 0644 |
|
| v4l2-subdev.h | File | 74.55 KB | 0644 |
|
| v4l2-vp9.h | File | 8.32 KB | 0644 |
|
| videobuf2-core.h | File | 52.05 KB | 0644 |
|
| videobuf2-dma-contig.h | File | 883 B | 0644 |
|
| videobuf2-dma-sg.h | File | 698 B | 0644 |
|
| videobuf2-dvb.h | File | 1.81 KB | 0644 |
|
| videobuf2-memops.h | File | 1.09 KB | 0644 |
|
| videobuf2-v4l2.h | File | 14.48 KB | 0644 |
|
| videobuf2-vmalloc.h | File | 509 B | 0644 |
|
| vsp1.h | File | 3.62 KB | 0644 |
|