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; }
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; }