void yang_create_ipc(YangIpc* ipc){
if(ipc==NULL) return;
YangIpcSession* session=&ipc->session;
YangIni ini;
//使用yang_config.ini配置的参数初始化ini
yang_create_ini(&ini,(char*)"yang_config.ini");
//使用ini初始化session的avinfo。
ini.initAvinfo(ini.filename,&session->avinfo);
//销毁ini
yang_destroy_ini(&ini);
//设置视频编码格式为yuv420
session->avinfo.video.videoEncoderFormat=YangI420;
session->avinfo.enc.createMeta=0;
//程序代码初始化部分avinfo。
yang_ipc_initAvinfo(session);
//根据ini配置设置logLevel和logFile
yang_setLogLevel(session->avinfo.sys.logLevel);
yang_setLogFile(session->avinfo.sys.enableLogFile);
//设置http端口号
session->avinfo.sys.httpPort=1988;
//设置服务器类型为P2P
session->avinfo.sys.mediaServer=Yang_Server_P2p;//Yang_Server_Srs/Yang_Server_Zlm/Yang_Server_P2p
//随机生成一个本地端口号。
session->avinfo.sys.rtcLocalPort=10000+yang_random()%15000;
//获取本地ip地址到avinfo中。
memset(session->avinfo.sys.localIp,0,sizeof(session->avinfo.sys.localIp));
yang_getLocalInfo(session->avinfo.sys.localIp);
//如果ice使用本地ip,则设置本地ip
if(session->avinfo.rtc.iceUsingLocalIp){
char ipstr[32]={0};
strcpy(ipstr,session->avinfo.rtc.iceLocalIP);
memset(session->avinfo.rtc.iceLocalIP,0,sizeof(session->avinfo.rtc.iceLocalIP));
yang_getIp(ipstr,session->avinfo.rtc.iceLocalIP);
}
//设置支持Audio
session->hasAudio=yangtrue;
//设置视频编码为h264编码
session->avinfo.video.videoEncoderType=Yang_VED_264;//Yang_VED_265;
session->avinfo.audio.enableAec=1;
//激活数据通道。
session->avinfo.rtc.enableDatachannel=1;
//设置iceServerIP和端口号,设置iceCandidate类型。
strcpy(session->avinfo.rtc.iceServerIP,"182.92.163.143");
session->avinfo.rtc.iceServerPort=3478;
session->avinfo.rtc.iceCandidateType=0;
//创建视频编码buffer并初始化。
session->videoBuffer = (YangVideoEncoderBuffer2*)calloc(sizeof(YangVideoEncoderBuffer2),1);
yang_create_videoEncoderBuffer2(session->videoBuffer,2);
//初始化rtc
yang_ipc_initRtc(session);
//设置ipc的start,init,checklive方法。
ipc->start=yang_ipc_listen;
ipc->init=yang_ipc_init;
ipc->checkAlive=yang_ipc_checkAlive;
}
metartc5_jz源码阅读-yang_create_ipc
于 2023-12-29 22:12:54 首次发布