初版
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
#ifndef ENCODER_NODE_MGR_H
|
||||
#define ENCODER_NODE_MGR_H
|
||||
|
||||
#include "jlstream.h"
|
||||
#include "media/audio_base.h"
|
||||
|
||||
struct encoder_plug_ops {
|
||||
int coding_type;
|
||||
void *(*init)(void *priv);
|
||||
int (*run)(void *);
|
||||
int (*ioctl)(void *, int, int);
|
||||
void (*release)(void *);
|
||||
};
|
||||
|
||||
struct encoder_fmt {
|
||||
u8 quality;
|
||||
u8 complexity;
|
||||
u8 sw_hw_option;
|
||||
u8 ch_num;
|
||||
u8 format;
|
||||
u8 bit_width;
|
||||
u16 frame_dms;
|
||||
u32 bit_rate;
|
||||
u32 sample_rate;
|
||||
};
|
||||
|
||||
|
||||
enum change_file_step {
|
||||
SEAMLESS_OPEN_FILE,
|
||||
SEAMLESS_CHANGE_FILE,
|
||||
};
|
||||
|
||||
/*
|
||||
* 无缝录音配置, 支持配置录制多长时间(秒)后切换文件
|
||||
* advance_time: 提前多少秒调用change_file(priv, SEAMLESS_OPEN_FILE), 用于提前创建新文件
|
||||
* time: 单个文件录音时长(秒)
|
||||
*/
|
||||
struct seamless_recording {
|
||||
u8 advance_time;
|
||||
u16 time;
|
||||
void *priv;
|
||||
/*
|
||||
* 此回调函数在音频流任务中调用,不能执行耗时长的操作,否则可能导致音频播放卡顿
|
||||
*/
|
||||
int (*change_file)(void *priv, enum change_file_step step);
|
||||
};
|
||||
|
||||
#define REGISTER_ENCODER_PLUG(plug) \
|
||||
const struct encoder_plug_ops plug sec(.encoder_plug)
|
||||
|
||||
int encoder_plug_output_data(void *_hdl, u8 *data, u16 len);
|
||||
|
||||
int encoder_plug_read_data(void *_hdl, u8 *data, u16 len);
|
||||
|
||||
struct stream_frame *encoder_plug_pull_frame(void *_hdl);
|
||||
|
||||
struct stream_frame *encoder_plug_get_output_frame(void *_hdl, u16);
|
||||
|
||||
void encoder_plug_put_output_frame(void *_hdl, struct stream_frame *);
|
||||
|
||||
void encoder_plug_free_frame(void *_hdl, struct stream_frame *);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user