82 lines
1.4 KiB
C
82 lines
1.4 KiB
C
|
|
#ifndef __CAMERA_EFFECT_H_
|
|
#define __CAMERA_EFFECT_H_
|
|
|
|
typedef enum {
|
|
EM_FLIP_LR,//左右对称
|
|
EM_QUADRATE,//正方形
|
|
EM_QUADRATE_UNIFROM,
|
|
EM_VERTICAL_STRIPE,
|
|
EM_DOWN_SAMP,
|
|
EM_REFLECTION_P,
|
|
EM_FOUR_CORNER,
|
|
EM_ROTATE_180,
|
|
EM_END,
|
|
} effect_mode_t;
|
|
|
|
|
|
typedef enum {
|
|
DST_AS_DST,
|
|
SRC_AS_DST,
|
|
} effect_dst_indicator_t;
|
|
|
|
|
|
typedef enum {
|
|
RESULOTION_320,
|
|
RESULOTION_720,
|
|
RESULOTION_272,
|
|
RESULOTION_600,
|
|
} resulotion_t;
|
|
|
|
|
|
typedef struct {
|
|
int w;
|
|
int h;
|
|
int wh_mode;
|
|
int mode_full;
|
|
u8 *buffer;
|
|
} effect_t;
|
|
|
|
|
|
struct camera_effect_config {
|
|
u8 enable;
|
|
|
|
effect_t eff_t;
|
|
effect_mode_t mode;
|
|
resulotion_t resulotion;
|
|
effect_dst_indicator_t indicator;
|
|
u8 *dst_buf;
|
|
void *fb;
|
|
};
|
|
|
|
|
|
int effect_init(effect_t *e, int wh_mode, int width, int height, effect_mode_t *indicator);
|
|
|
|
void process_effect(effect_t *e, unsigned char *src, unsigned char *dst, effect_mode_t *mode, effect_dst_indicator_t *indicator);
|
|
|
|
int effect_free(effect_t *e);
|
|
|
|
|
|
|
|
void camera_effect_init(struct camera_effect_config *cam_eff_cfg);
|
|
|
|
void camera_effect_start(struct camera_effect_config *cam_eff_cfg);
|
|
|
|
void camera_effect_stop(struct camera_effect_config *cam_eff_cfg);
|
|
|
|
void camera_effect_switch_mode(struct camera_effect_config *cam_eff_cfg, int mode);
|
|
|
|
void camera_effect_uninit(struct camera_effect_config *cam_eff_cfg);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|