📄 avsync.h
字号:
#ifndef __AVSYNC_H__#define __AVSYNC_H__#include <pthread.h>#include <sys/time.h>#include <time.h>#include <sys/types.h>#include <unistd.h>#include "hi_rtp.h"#include "avcommon.h"/*定义vo显示时间,单位ms*/#define VO_DISPLAY_TIME 80/*定义音频解码时间,单位ms*/#define AUDIO_DECODE_TIME 0/*定义视频丢帧最小间隔*/#define MIN_FRAME_DISCARD_INTERVAL 24/*定义同步状态变迁门限,单位ms*/#define MAX_V2A_SYNC 160#define MIN_V2A_SYNC -160#define MAX_V2A_OUTSYNC 300#define MIN_V2A_OUTSYNC -300/*定义重新校正基准时间(音频pts)的间隔*/#define AUDIO_RECHECK_COUNT 1000/*定义同步状态*/typedef enum { VIDEO_SYNC = 1, VIDEO_SLIGHT_QUICK = 2, VIDEO_SLIGHT_SLOW = 3, VIDEO_OUTSYNC_QUICK = 4, VIDEO_OUTSYNC_SLOW = 5}AVSYNC_STATUS_E;typedef struct{ /*记录音频pts和对应系统时间*/ HI_U64 system_time;/*单位us*/ HI_U32 audio_pts;/*单位ms*/}AVSYNC_TIMER_S;HI_S32 audio_onrecv(IN struct hiRTP_RECV_S * pRtpStream, unsigned char * pBuff, unsigned int len, int *ext_args);/*timeval结构转化为U64的us数*/static inline HI_U64 AVSYNC_Get_Time_Inusec(struct timeval tv) { HI_U64 systime; systime = tv.tv_sec*1000000 + tv.tv_usec; return systime;}void AVSYNC_Start(void);void AVSYNC_Stop(void);void AVSYNC_Frame2Vo_Start(VDEC_CHN ChanID);void AVSYNC_Frame2Vo_Stop();#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -