diff --git a/daemon/media_socket.c b/daemon/media_socket.c index cc149f27c..dabdecea4 100644 --- a/daemon/media_socket.c +++ b/daemon/media_socket.c @@ -1641,8 +1641,6 @@ static void media_packet_rtp(struct packet_handler_ctx *phc) return; if (G_LIKELY(!phc->rtcp && !rtp_payload(&phc->mp.rtp, &phc->mp.payload, &phc->s))) { - rtp_padding(phc->mp.rtp, &phc->mp.payload); - if (G_LIKELY(phc->out_srtp != NULL)) __stream_ssrc(phc->in_srtp, phc->out_srtp, phc->mp.rtp->ssrc, phc); @@ -2115,6 +2113,8 @@ static int stream_packet(struct packet_handler_ctx *phc) { handler_ret = media_packet_decrypt(phc); + rtp_padding(phc->mp.rtp, &phc->mp.payload); + // If recording pcap dumper is set, then we record the call. if (phc->mp.call->recording) dump_packet(&phc->mp, &phc->s); diff --git a/lib/rtplib.c b/lib/rtplib.c index 4c90b4ae9..cf04767f3 100644 --- a/lib/rtplib.c +++ b/lib/rtplib.c @@ -107,6 +107,8 @@ error: int rtp_padding(struct rtp_header *header, str *payload) { + if (!header || payload->s) + return 0; if (!(header->v_p_x_cc & 0x20)) return 0; // no padding if (payload->len == 0)