示例#1
0
static void rtp_stream_on_packet_done(void *cbk, GF_RTPHeader *header)
{
	GF_RTPStreamer *rtp = cbk;
	GF_Err e = gf_rtp_send_packet(rtp->channel, header, rtp->buffer+12, rtp->payload_len, 1);
	
#ifndef GPAC_DISABLE_LOG
	if (e) {
		GF_LOG(GF_LOG_ERROR, GF_LOG_RTP, ("Error %s sending RTP packet\n", gf_error_to_string(e)));
	} else {
		GF_LOG(GF_LOG_DEBUG, GF_LOG_RTP, ("RTP SN %u - TS %u - M %u - Size %u\n", header->SequenceNumber, header->TimeStamp, header->Marker, rtp->payload_len + 12));
	}
#endif
	rtp->payload_len = 0;
}
示例#2
0
GF_Err PNC_SendRTP(PNC_CallbackData *data, char *payload, int payloadSize)
{
	GF_Err e;
	unsigned char feedback_buffer[250];

	if (!data->hdr->TimeStamp)
		data->hdr->TimeStamp = ((PNC_CallbackExt * )data->extension)->lastTS;

	((PNC_CallbackExt * )data->extension)->lastTS = data->hdr->TimeStamp;

	e = gf_rtp_send_packet(data->chan, data->hdr, payload, payloadSize, 0);
	dprintf(DEBUG_RTP_serv_sender, "SendPacket : %d, TimeStamp RTP = %d, sz= %d\n",
			e, data->hdr->TimeStamp, payloadSize);

	// sending feedback bytes
	memset(feedback_buffer, 0, sizeof(feedback_buffer));
	sprintf((char *) feedback_buffer, "DataSent=%d\nRAPsent=%d\n", payloadSize, data->RAPsent);
	e = gf_sk_send(data->feedback_socket, feedback_buffer, strlen((char *) feedback_buffer));
	dprintf(DEBUG_RTP_serv_packetizer, "Sent feedback data %d byte, return %d\n", payloadSize, e);

	return GF_OK;
}