示例#1
0
static apt_bool_t mpf_rtp_socket_pair_create(mpf_rtp_stream_t *stream, mpf_rtp_media_descriptor_t *local_media)
{
	stream->rtp_socket = mpf_socket_create(&stream->rtp_l_sockaddr,local_media->ip.buf,local_media->port,stream->pool);
	if(!stream->rtp_socket) {
		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Failed to Create RTP Socket");
		return FALSE;
	}

	stream->rtcp_socket = mpf_socket_create(&stream->rtcp_l_sockaddr,local_media->ip.buf,local_media->port+1,stream->pool);
	if(!stream->rtcp_socket) {
		apt_log(APT_LOG_MARK,APT_PRIO_DEBUG,"Failed to Create RTCP Socket");
	}
	return TRUE;
}
示例#2
0
/* Create RTP/RTCP sockets */
static apt_bool_t mpf_rtp_socket_pair_create(mpf_rtp_stream_t *stream, mpf_rtp_media_descriptor_t *local_media, apt_bool_t bind)
{
	/* Create and optionally bind RTP socket. Return FALSE in case of an error. */
	if(mpf_socket_create(stream->pool,&stream->rtp_socket) == FALSE) {
		return FALSE;
	}
	if(bind == TRUE) {
		if(mpf_socket_bind(stream->rtp_socket,local_media->ip.buf,local_media->port,stream->pool,&stream->rtp_l_sockaddr) == FALSE) {
			apr_socket_close(stream->rtp_socket);
			stream->rtp_socket = NULL;
			return FALSE;
		}
	}

	/* Create and optionally bind RCTP socket. Continue in either way. */
	if(mpf_socket_create(stream->pool,&stream->rtcp_socket) == TRUE && bind == TRUE) {
		if(mpf_socket_bind(stream->rtcp_socket,local_media->ip.buf,local_media->port+1,stream->pool,&stream->rtcp_l_sockaddr) == FALSE) {
			apr_socket_close(stream->rtcp_socket);
			stream->rtcp_socket = NULL;
		}
	}
	return TRUE;
}