⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interface_n.h

📁 linux环境下的全内插汇编程序
💻 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 + -