avsync.h

来自「sample on embedded linux」· C头文件 代码 · 共 68 行

H
68
字号
#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 + =
减小字号Ctrl + -
显示快捷键?