2025-05-08 18:01:52 +08:00

67 lines
1.6 KiB
C
Executable File

/*----------------------------------------------------------------------------/
/ TJpgDec - Tiny JPEG Decompressor R0.03 include file (C)ChaN, 2021
/----------------------------------------------------------------------------*/
#ifndef DEF_TJPGDEC
#define DEF_TJPGDEC
#include "driver/media_types.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum{
JD_FORMAT_RGB888 = 0,
JD_FORMAT_RGB565 = 1,
JD_FORMAT_Grayscale = 2,
JD_FORMAT_YUYV,
JD_FORMAT_VYUY,
JD_FORMAT_VUYY,
}JD_FORMAT_OUTPUT;
/* Specifies output pixel format.
/ 0: RGB888 (24-bit/pix)
/ 1: RGB565 (16-bit/pix)
/ 2: Grayscale (8-bit/pix)
/ 3: VYUY (16-bit/pix)
/ 4: YUYV (16-bit/pix)
*/
typedef enum{
JD_LITTLE_ENDIAN = 0,
JD_BIG_ENDIAN
} JD_BYTE_ORDER;
/* Specifies output byte order
/ 0: LITTLE_ENDIAN
/ 1: BIG_ENDIAN
*/
typedef enum{
JD_NO_BUFFER_COPY = 0,
JD_SINGLE_BUFFER_COPY,
JD_DOUBLE_BUFFER_COPY,
} JD_COPY_TYPE_T;
typedef struct{
JD_FORMAT_OUTPUT format;
JD_BYTE_ORDER byte_order;
uint8_t scale;
} jd_output_format;
void jd_set_output_format(jd_output_format *output_format);
void jd_set_format(JD_FORMAT_OUTPUT format);
JD_FORMAT_OUTPUT jd_get_format(void);
void jd_set_scale(uint8_t scale);
int jd_get_scale(void);
void jd_set_byte_order(JD_BYTE_ORDER byte_order);
JD_BYTE_ORDER jd_get_byte_order(void);
media_rotate_t jd_get_rotate(void);
void jd_set_rotate(media_rotate_t rotate_angle, uint8_t *rotate_buf);
void jd_set_jpg_copy_func(uint8_t *copy_buffer_1, uint8_t *copy_buffer_2, uint32_t copy_buffer_size, void *jpg_copy_func, JD_COPY_TYPE_T type);
#ifdef __cplusplus
}
#endif
#endif /* _TJPGDEC */