Patch to be applied on rtpproxy-1.2.1 notls ********************************* diff -urp ../rtpproxy-1.2.1/rtp_resizer.c ./rtp_resizer.c --- ../rtpproxy-1.2.1/rtp_resizer.c 2009-01-12 12:36:40.000000000 +0100 +++ ./rtp_resizer.c 2010-06-17 14:20:30.000000000 +0200 @@ -245,7 +245,7 @@ rtp_resizer_get(struct rtp_resizer *this ret = rtp_packet_alloc(); if (ret == NULL) break; - memcpy(ret, p, offsetof(struct rtp_packet, data.buf)); + memcpy(ret, p, offsetof(struct rtp_packet, data.buf) + sizeof(rtp_hdr_t)); move_chunk(ret, p, &chunk); ++split; }
******************************* Fixes the bug described above: Hi all. I am having trouble with repacking. Occurs when : - target packet size is smaller than received size, e.g : received packets are 120ms, repack size is 30ms AND - " received_size / target_size " is a round integer: 120/30 = 4, or 100/20=5 , etc... I have no problem with ratio like 100/60 or 100/40, that is to say, anytime their is a residual chunck, it works fine. Symptoms are: - all the repacked packets are incorrect except the last one, e.g when 120ms->30ms : repacking generates three incorrect 30ms packet followed by the last 30ms - correct. - incorrect packets have a correct IP/UDP part but RTP header and RTP payload is all zero or nothing at all Is there any workaround for this problem? Or am I doing something wrong ? rtpproxy is running in bridge mode, driven by nathelper / openSips, using force_trp_proxy( ) with the "zNN" option Occurs with 723.1 and also 729 codecs. ********** Reason was "move_chunck()" did not memcpy the rtp_hdr_t from src chunck to newly allocated rtp packet Following repacks now work well: - G729 100ms into 20ms 200ms into 10ms -G723.1 120ms into 60ms 180ms into 30ms Still to be tested on extra codec (711, etc). Please let me know if you have further results. Regards, Samuel
_______________________________________________ Users mailing list Users@rtpproxy.org http://lists.rtpproxy.org/mailman/listinfo/users