MT#63317 select kernel output group from PT

Change-Id: Ia818c42ffa8db916c37df87d239187bec1646d9f
rfuchs/dtls-ice
Richard Fuchs 6 months ago
parent 607866ed13
commit e3a9eeea00

@ -6303,6 +6303,7 @@ static unsigned int rtpengine46(struct sk_buff *skb, struct sk_buff *oskb,
unsigned int start_idx, end_idx;
enum {NOT_RTCP = 0, RTCP, RTCP_FORWARD} is_rtcp;
ktime_t packet_ts;
unsigned int output_group_idx = 0;
struct rtpengine_output_group *output_group;
skb_reset_transport_header(skb);
@ -6411,10 +6412,14 @@ static unsigned int rtpengine46(struct sk_buff *skb, struct sk_buff *oskb,
if (g->target.pt_filter)
goto out;
}
else if (ssrc_idx >= 0 && g->target.ssrc_stats[ssrc_idx]) {
atomic_set(&g->target.ssrc_stats[ssrc_idx]->last_pt,
g->target.pt_stats[rtp_pt_idx]->payload_type);
atomic64_set(&g->target.ssrc_stats[ssrc_idx]->last_packet_us, packet_ts);
else {
output_group_idx = g->target.pt_media_idx[rtp_pt_idx];
if (ssrc_idx >= 0 && g->target.ssrc_stats[ssrc_idx]) {
atomic_set(&g->target.ssrc_stats[ssrc_idx]->last_pt,
g->target.pt_stats[rtp_pt_idx]->payload_type);
atomic64_set(&g->target.ssrc_stats[ssrc_idx]->last_packet_us, packet_ts);
}
}
errstr = "SRTP decryption failed";
@ -6474,7 +6479,7 @@ static unsigned int rtpengine46(struct sk_buff *skb, struct sk_buff *oskb,
}
// output
output_group = &g->target.media_output_idxs[0];
output_group = &g->target.media_output_idxs[output_group_idx];
start_idx = (is_rtcp != NOT_RTCP) ? output_group->rtcp_start_idx : output_group->rtp_start_idx;
end_idx = (is_rtcp != NOT_RTCP) ? output_group->rtcp_end_idx : output_group->rtp_end_idx;

Loading…
Cancel
Save