📄 interface_n.h
字号:
#ifndef _ENCODE_INTERFACE_H
#define _ENCODE_INTERFACE_H
#include "xvid.h"
/****************************************************
视频分辨率固定:320 x 240,不提供分辨率设置接口
**************************************************/
#define MD_AREA_NUM (22 * 18 + 8)
typedef struct _motionDective
{
int write_flag; //1:enable ,0:disable
int result[MD_AREA_NUM]; //运动大小的数据
}vMotionDect ;
typedef struct _vBitSteramBuf{
unsigned char *BitstreamBuf;
unsigned int length;
unsigned int codeType;
} vBitBuf;
/****************************************
返回:-1 失败
0 成功
****************************************/
int forceIFrame(void );
/****************************************
返回:-1 失败
0 成功
入口: 时间间隔,单位秒,默认3s
****************************************/
int setKeyFrameInterval (int interval);
/****************************************
返回:-1 失败
0 成功
入口: mode=1:CBR,0:VBR, 默认CBR
##这个码率控制侧罗暂时只有默认CBR
****************************************/
int setCBRorVBR( int mode );
/****************************************
返回:-1 失败
0 成功
入口: rate,最小64*1024b,单位1024b
****************************************/
int setVideoMinBitRate(int rate);
/****************************************
返回:-1 失败
0 成功
入口: rate,最小最大值256*1024b,单位1024b。
cbr时候rate是目标码率
****************************************/
int setMaxBitRate(int rate );
/******************************************************************
返回:-1 失败
0 成功
入口: 帧率类型,实际帧率是基本帧率/inc
以SAA7113为例:基本帧率pal 25fps,那么// 1:25fps , 2:12.5fps, 4:6.25fps , 8: 3.125fps , 16:1.5625fps
ov7225的基础帧率实际要计算一下
********************************************************************************************/
int setVideoFrameRate(int inc);
/****************************************
返回:-1 失败
0 成功
内部包含初始化
****************************************/
int enableMotionDetective(void);
/****************************************
返回:-1 失败
0 成功
内部包含释放资源
****************************************/
int disableMotionDetective(void);
/****************************************
返回:-1 失败
0 成功
入口:返回运动的数据结构指针
****************************************/
vMotionDect * getMotionDetective( );
/****************************************
返回:-1 失败
0 成功
****************************************/
extern int encoder_init(int width,int height);
/****************************************
返回:-1 失败
0 成功
###暂时没有测试
****************************************/
extern int encoder_realse();
/****************************************
返回:-1 失败
0 成功
输出: vSteramBuf* out 码流输出
vBuf* inimage 输入视频,地址要求字对齐
**********************************************/
int startEncodeFrame(vBuf * inimage, vBitBuf * out);
/****************************************
返回:-1 失败
0 成功
作用:不再调用视频编码startEncodeFrame后,调用此函数
重新一个视频对话
##没有实现, 现在如果停止取码流,再采集编码数据的时候,先强制I帧
初始化编码参数,就可以startEncodeFrame取数据了
**********************************************/
extern int stopEncodeFrame();
//强制I帧,立即生效
extern int ForceIFrame();
//在编码阶段,修改编码参数立即生效,在多线程可能存在同步的问题
//新编码器取消这个接口,修改编码参数立即生效
//void updateRCParam();
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -