//pushh264中调用此方法将rtp包发送给p2p对端。
int32_t yang_send_avpacket(YangRtcSession *session, YangRtpPacket *pkt, YangBuffer *pbuf) {int32_t err = Yang_Ok;//获取到pbuf的size作为要加密的sizeint32_t nn_encrypt = yang_buffer_pos(pbuf);//将pbuf中的数据根据sequence存到nack的cache中,以便接收端丢包时发送给发送端一个nack,发送端收到nack后重传丢失的包。if (session->push) session->push->cache_nack(session->push->pubStream, pkt, pbuf->data,nn_encrypt);#if Yang_Enable_Dtls//对pbuf的数据使用srtp库进行dtls的加密,加密后的数据自动替换pbuf。if ((err = yang_enc_rtp(&session->context.srtp, pbuf->data, &nn_encrypt)) != Yang_Ok) {return yang_error_wrap(err, "srtp protect");}
#endif//调用senData函数将pbuf中的数据发送出去,session中保存着对端的ip地址和端口号return session->context.udp->sendData(&session->context.udp->session, pbuf->data, nn_encrypt);
}