|
|
|
@ -2070,10 +2070,11 @@ static void codec_add_raw_packet_common(struct media_packet *mp, unsigned int cl |
|
|
|
if (!p->rtp) |
|
|
|
p->rtp = mp->rtp; |
|
|
|
} |
|
|
|
t_queue_push_tail(&mp->packets_out, p); |
|
|
|
t_queue_push_tail_link(&mp->packets_out, &p->link); |
|
|
|
} |
|
|
|
void codec_add_raw_packet(struct media_packet *mp, unsigned int clockrate) { |
|
|
|
struct codec_packet *p = g_new0(__typeof(*p), 1); |
|
|
|
p->link.data = p; |
|
|
|
p->s = mp->raw; |
|
|
|
p->free_func = NULL; |
|
|
|
codec_add_raw_packet_common(mp, clockrate, p); |
|
|
|
@ -2081,6 +2082,7 @@ void codec_add_raw_packet(struct media_packet *mp, unsigned int clockrate) { |
|
|
|
#ifdef WITH_TRANSCODING |
|
|
|
static void codec_add_raw_packet_dup(struct media_packet *mp, unsigned int clockrate) { |
|
|
|
struct codec_packet *p = g_new0(__typeof(*p), 1); |
|
|
|
p->link.data = p; |
|
|
|
// don't just duplicate the string. need to ensure enough room |
|
|
|
// if encryption is enabled on this stream |
|
|
|
p->s.s = bufferpool_alloc(media_bufferpool, mp->raw.len + RTP_BUFFER_TAIL_ROOM); |
|
|
|
@ -2396,6 +2398,7 @@ void codec_output_rtp(struct media_packet *mp, struct codec_scheduler *csch, |
|
|
|
|
|
|
|
// add to output queue |
|
|
|
struct codec_packet *p = g_new0(__typeof(*p), 1); |
|
|
|
p->link.data = p; |
|
|
|
p->s.s = buf; |
|
|
|
p->s.len = payload_len + sizeof(struct rtp_header); |
|
|
|
payload_tracker_add(&ssrc_out->tracker, handler->dest_pt.payload_type); |
|
|
|
@ -2472,7 +2475,7 @@ send: |
|
|
|
(long unsigned) p->ttq_entry.when.tv_sec, |
|
|
|
(long unsigned) p->ttq_entry.when.tv_usec); |
|
|
|
|
|
|
|
t_queue_push_tail(&mp->packets_out, p); |
|
|
|
t_queue_push_tail_link(&mp->packets_out, &p->link); |
|
|
|
} |
|
|
|
|
|
|
|
// returns new reference |
|
|
|
@ -2812,8 +2815,9 @@ bool codec_packet_copy(struct codec_packet *p) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
struct codec_packet *codec_packet_dup(struct codec_packet *p) { |
|
|
|
struct codec_packet *dup = g_new0(__typeof(*p), 1); |
|
|
|
struct codec_packet *dup = g_new(__typeof(*p), 1); |
|
|
|
*dup = *p; |
|
|
|
dup->link.data = dup; // XXX obsolete this |
|
|
|
codec_packet_copy(dup); |
|
|
|
if (dup->ssrc_out) |
|
|
|
ssrc_ctx_hold(dup->ssrc_out); |
|
|
|
|