linux/drivers/media/platform/imagination/e5010-jpeg-enc.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Imagination E5010 JPEG Encoder driver.
 *
 * Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
 *
 * Author: David Huang <[email protected]>
 * Author: Devarsh Thakkar <[email protected]>
 */

#include <media/v4l2-ctrls.h>
#include <media/v4l2-device.h>
#include <media/v4l2-fh.h>

#ifndef _E5010_JPEG_ENC_H
#define _E5010_JPEG_ENC_H

#define MAX_PLANES
#define HEADER_SIZE
#define MIN_DIMENSION
#define MAX_DIMENSION
#define DEFAULT_WIDTH
#define DEFAULT_HEIGHT
#define E5010_MODULE_NAME
#define JPEG_MAX_BYTES_PER_PIXEL

/* JPEG marker definitions */
#define START_OF_IMAGE
#define SOF_BASELINE_DCT
#define END_OF_IMAGE
#define START_OF_SCAN

/* Definitions for the huffman table specification in the Marker segment */
#define DHT_MARKER
#define LH_DC
#define LH_AC

/* Definitions for the quantization table specification in the Marker segment */
#define DQT_MARKER
#define ACMAX
#define DCMAX

/* Length and precision of the quantization table parameters */
#define LQPQ
#define QMAX

/* Misc JPEG header definitions */
#define UC_NUM_COMP
#define PRECISION
#define HORZ_SAMPLING_FACTOR
#define VERT_SAMPLING_FACTOR_422
#define VERT_SAMPLING_FACTOR_420
#define COMPONENTS_IN_SCAN
#define PELS_IN_BLOCK

/* Used for Qp table generation */
#define LUMINOSITY
#define CONTRAST
#define INCREASE
#define QP_TABLE_SIZE
#define QP_TABLE_FIELD_OFFSET

/*
 * vb2 queue structure
 * contains queue data information
 *
 * @fmt: format info
 * @width: frame width
 * @height: frame height
 * @bytesperline: bytes per line in memory
 * @size_image: image size in memory
 */
struct e5010_q_data {};

/*
 * Driver device structure
 * Holds all memory handles and global parameters
 * Shared by all instances
 */
struct e5010_dev {};

/*
 * Driver context structure
 * One of these exists for every m2m context
 * Holds context specific data
 */
struct e5010_context {};

/*
 * Buffer structure
 * Contains info for all buffers
 */
struct e5010_buffer {};

enum {};

enum {};

/*
 * e5010 format structure
 * contains format information
 */
struct e5010_fmt {};

/*
 * struct e5010_ctrl - contains info for each supported v4l2 control
 */
struct e5010_ctrl {};

#endif