doubao_chat/include_lib/driver/cpu/wl82/asm/image_enc.h

61 lines
2.0 KiB
C

#ifndef _IMAGE_ENC_H_
#define _IMAGE_ENC_H_
#include "video/video.h"
#include "asm/jpeg_codec.h"
/*
#define JPEG_ENC_CMD_BASE 0x00300000
#define JPEG_ENC_SET_Q_VAL (JPEG_ENC_CMD_BASE + 1)
#define JPEG_ENC_SET_ABR (JPEG_ENC_CMD_BASE + 2)
#define SET_IMAGE_AUXILIARY_BUF (JPEG_ENC_CMD_BASE + 3)
#define JPEG_ENC_SET_CYC_TIME (JPEG_ENC_CMD_BASE + 4)
#define JPEG_ENC_SET_Q_TABLE (JPEG_ENC_CMD_BASE + 5)
struct icap_auxiliary_mem {
u8 *addr;
u32 size;
};
*/
/*
struct jpg_q_table {
u16 YQT_DCT[0x40] ;
u16 UVQT_DCT[0x40];
u8 DQT[138]; //file header
};
*/
struct image_enc_s_attr {
u16 width;
u16 height;
u8 *buf;
u16 src_width;
u16 src_height;
u8 *src_addr;
u32 src_size;
};
void *image_enc_open(struct video_format *f, u8 multi_scale, int max_width);
void *image_enc_force_open(struct video_format *f, u8 multi_scale, int max_width, int id);
int image_enc_set_fmt(void *_fh, struct video_format *f, u8 multi_scale, int max_width);
int image_handl2ch(void *_fh);
int image_enc_set_scale_handler(void *_fh, void *priv, int (*handler)(void *, struct image_scale_data *));
int image_enc_get_s_attr(void *_fh, struct image_s_attr *attr);
int image_enc_set_s_attr(void *_fh, struct image_s_attr *attr);
int image_capture_enc_start(void *_fh, struct image_capture_info *info);
bool image_enc_other_streamon(void *_fh);
int image_enc_pause_other_stream(void *_fh);
int image_enc_resume_other_stream(void *_fh);
int image_enc_set_scale_mode(void *_fh, u8 mode);
int image_enc_get_source_attr(void *_fh, struct yuv_image *image);
int image_enc_set_source_attr(void *_fh, struct yuv_image *image);
int image_enc_set_input_buf(void *_fh, struct video_cap_buffer *b);
void image_enc_set_output_buf_ops(void *_fh, void *priv, const struct mjpg_user_ops *ops);
int image_enc_get_osd_attr(void *_fh, struct video_osd_attr *attr);
int image_enc_set_osd_attr(void *_fh, struct video_osd_attr *attr);
int image_enc_close(void *_fh);
#endif