doubao_chat/include_lib/server/video_dec_server.h

197 lines
3.0 KiB
C

#ifndef VIDEO_DECODE_SERVER_H
#define VIDEO_DECODE_SERVER_H
#include "server/server_core.h"
#include "fs/fs.h"
#define VIDEO_DEC_EVENT_END 0x20
#define VIDEO_DEC_EVENT_CURR_TIME 0x21
#define VIDEO_DEC_EVENT_ERR 0x22
/*struct jpeg_file {
const char *name;
};
struct jpeg_data {
u8 *data;
u32 data_len;
};
enum {
JPEG_INPUT_TYPE_FILE,
JPEG_INPUT_TYPE_DATA,
};
struct jpeg_decode_req {
u8 input_type;
union {
struct jpeg_file file;
struct jpeg_data data;
} input;
u8 *buf_y;
u8 *buf_u;
u8 *buf_v;
u16 buf_width;
u16 buf_height;
u16 buf_xoffset;
u16 buf_yoffset;
u16 output_width;
u16 output_height;
u16 output_xoffset;
u16 output_yoffset;
void *priv;
void (*stream_end)(void *priv);
};
enum {
VIDEO_DECODE_REQ_START,
};
union video_decode_req {
struct jpeg_decode_req jpeg;
};*/
struct vds_video_info {
u16 width;
u16 height;
u32 total_time;
};
struct vds_audio_param {
void *buf;
int buf_len;
u32 volume;
};
struct vds_image_info {
u8 *buf;
u32 size;
u8 *aux_buf;
u32 aux_buf_size;
};
struct video_dec_param {
u16 left;
u16 top;
u16 width;
u16 height;
u16 border_left;
u16 border_top;
u16 border_right;
u16 border_bottom;
u8 preview;
u8 thm_first;
u8 volume;
FILE *file;
const char *ftype;
const char *fb;
struct vds_image_info image;
struct vds_video_info info;
struct imc_presca_ctl *pctl;
int (*get_yuv)(void *hdl, void *frame);
};
struct video_dec_preview {
u8 show_mode; // 0: 裁剪, 1: 缩放
u8 rotate;
u16 left;
u16 top;
u16 width;
u16 height;
u16 src_width;
u16 src_height;
u16 border_left;
u16 border_top;
u16 border_right;
u16 border_bottom;
u16 dst_left;
u16 dst_top;
u32 backcolor;
FILE *file;
const char *fb;
struct vds_image_info image;
struct vds_video_info info;
struct imc_presca_ctl *pctl;
};
struct video_dec_ff_fr {
u8 on;
u8 once;
u8 times;
u16 msec_step;
};
/*
* video_decoder server支持的请求列表
*/
enum {
VIDEO_REQ_DEC_STOP,
VIDEO_REQ_DEC_START,
VIDEO_REQ_DEC_PLAY_PAUSE,
VIDEO_REQ_DEC_RESUME,
VIDEO_REQ_DEC_FF,
VIDEO_REQ_DEC_FR,
VIDEO_REQ_DEC_IMAGE,
VIDEO_REQ_DEC_PREVIEW_OPEN,
VIDEO_REQ_DEC_PREVIEW,
VIDEO_REQ_DEC_PREVIEW_CLEAR,
VIDEO_REQ_DEC_PREVIEW_MOVE,
VIDEO_REQ_DEC_PREVIEW_FLUSH,
VIDEO_REQ_DEC_PREVIEW_CLOSE,
};
union video_dec_req {
struct video_dec_param dec;
struct video_dec_ff_fr f;
struct video_dec_preview preview;
};
struct dec_ram_device {
u8 enable;
const char *name;
u32 video_addr;
u32 video_size;
u32 audio_addr;
u32 audio_size;
};
struct video_dec_arg {
const char *dev_name;
int audio_buf_size;
int video_buf_size;
u8 *audio_buf;
u8 *video_buf;
struct dec_ram_device ram_dev;
};
#endif