xref: /OK3568_Linux_fs/kernel/drivers/media/platform/sti/delta/delta-mjpeg.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (C) STMicroelectronics SA 2013
4*4882a593Smuzhiyun  * Author: Hugues Fruchet <hugues.fruchet@st.com> for STMicroelectronics.
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef DELTA_MJPEG_H
8*4882a593Smuzhiyun #define DELTA_MJPEG_H
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #include "delta.h"
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun struct mjpeg_component {
13*4882a593Smuzhiyun 	unsigned int id;/* 1=Y, 2=Cb, 3=Cr, 4=L, 5=Q */
14*4882a593Smuzhiyun 	unsigned int h_sampling_factor;
15*4882a593Smuzhiyun 	unsigned int v_sampling_factor;
16*4882a593Smuzhiyun 	unsigned int quant_table_index;
17*4882a593Smuzhiyun };
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #define MJPEG_MAX_COMPONENTS 5
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun struct mjpeg_header {
22*4882a593Smuzhiyun 	unsigned int length;
23*4882a593Smuzhiyun 	unsigned int sample_precision;
24*4882a593Smuzhiyun 	unsigned int frame_width;
25*4882a593Smuzhiyun 	unsigned int frame_height;
26*4882a593Smuzhiyun 	unsigned int nb_of_components;
27*4882a593Smuzhiyun 	struct mjpeg_component components[MJPEG_MAX_COMPONENTS];
28*4882a593Smuzhiyun };
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun int delta_mjpeg_read_header(struct delta_ctx *pctx,
31*4882a593Smuzhiyun 			    unsigned char *data, unsigned int size,
32*4882a593Smuzhiyun 			    struct mjpeg_header *header,
33*4882a593Smuzhiyun 			    unsigned int *data_offset);
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun #endif /* DELTA_MJPEG_H */
36