ENDPT_410_CnxVhdEventCallback

本文深入探讨了音视频直播流媒体的核心技术,包括流媒体协议、WebRTC直播视频会议、流媒体直播转发服务器、P2P点对点直播等关键组件与应用。详细解释了如何实现高效的音视频传输、实时互动以及跨平台兼容性。
cnx = GetCnxStateFromVHD( evtp->hsxdevhdl );	//获取CNX对象

switch( evtp->hsxevt )
case HAPINET_INGRESSRTPPKT:	//向外待发送RTP
	endptState = GetEndptState( cnx->lineId );	//获取ENDPT对象
	//我们当前来显不是这种模式,暂不看
	if ( endptState->classState.classType == CLASS_MSG_OFFHOOK_CLID )
		if ( classStmIsIdle( &endptState->classState ) == VRG_FALSE )
			return;
	//如果非静音传送
	if ( (cnx->bMuteAudio == VRG_FALSE) && (cnx->bMuteT38 == VRG_FALSE) )
		if (endptState->testMode == TESTMODE_PACKETLOOPBACK)//环回测试,暂不看
			……
		else
			//使用回调函数将RTP包放在接近上层的包队列中,由于上层用户任务来取
			epPacket.packetp = (RTPPACKET*) evtp->hsxop2.ref;
			epPacket.mediaType = EPMEDIATYPE_RTP;
 (*endptConfig.packet)( endptState->endptArchive, cnx->cnxId, &epPacket, evtp->hsxop1 );
	
case HAPINET_INGRESSRTCPPKT:	//向外待发送RTCP
	endptState = GetEndptState( cnx->lineId );	//获取ENDPT对象
	if (endptState->testMode == TESTMODE_PACKETLOOPBACK)//环回测试,暂不看
		……
	else
		//使用回调函数将RTCP包放在接近上层的包队列中,由于上层用户任务来取
		epPacket.packetp = (RTPPACKET*) evtp->hsxop2.ref;
		epPacket.mediaType = EPMEDIATYPE_RTCP;
 (*endptConfig.packet)( endptState->endptArchive, cnx->cnxId, &epPacket, evtp->hsxop1 );
		
case HAPIT38_INGRESSPACKET:	//向外等发送T38
	endptState = GetEndptState( cnx->lineId );	//获取ENDPT对象
	//我们当前来显不是这种模式,暂不看
	if ( endptState->classState.classType == CLASS_MSG_OFFHOOK_CLID )
		if ( classStmIsIdle( &endptState->classState ) == VRG_FALSE )
			return;
	//如果非静音传送
	if ( (cnx->bMuteAudio == VRG_FALSE) && (cnx->bMuteT38 == VRG_FALSE) )
		if (endptState->testMode == TESTMODE_PACKETLOOPBACK) //环回测试,暂不看
			……
		else
			//使用回调函数将T38包放在接近上层的包队列中,由于上层用户任务来取
			if (( ModeCheck( cnx->mode, SENDMODE )) || ( cnx->activeSignal ))
				epPacket.packetp = (RTPPACKET*) evtp->hsxop2.ref;
				epPacket.mediaType = EPMEDIATYPE_T38;
 (*endptConfig.packet)( endptState->endptArchive, cnx->cnxId, &epPacket, evtp->hsxop1 );
		
//将资源相关事件放入事件队列中,让事件队理处理任务来处理,包括各种传真信号的检测
//,以及VAD的自动控制都在事件处理任务中完成,流程的后续处理放在//VrgDispatcherTaskMain任务的HapiCnxEventProcess函数中介绍。
PostHapiEvent( VRG_EVT_TYPE_HAPI_CNX, evtp, dspNum );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值