61 lines
2.0 KiB
C
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
|