Ethereal-dev: [Ethereal-dev] Problems saving RTP payload

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: "Peter Kjellerstedt" <peter.kjellerstedt@xxxxxxxx>
Date: Fri, 30 Jan 2004 18:31:07 +0100
Hello,

I am currently working on a project that sends data
over RTP using a dynamically assigned payload type.
I needed to capture what is sent and recalled that 
Ethereal had some mean to save the RTP payload. As 
it turned out this feature was only for saving 
audio data. However, not to be discouraged I figured 
I could hack the code to save the raw payload data
instead.

A couple of tries later, and it seemed to save the 
data, but after further analysis it turned out it 
only saved the first packet over and over again...
After a lot of debugging I think I have reached some
understanding as to what is happening.

The current code in gtk/rtp_analysis.c uses cfile.pd
to access the raw packet data. However, after a change
to file.c (revision 1.339), process_specific_packets()
uses a local pd buffer which means that
rtp_packet_save_payload() no longer accesses the correct
data.

After some more investigation I found the real 
data in edt->tvb (which wasn't passed on to
rtp_packet_save_payload()).

I have attached a patch for gtk/rtp_analysis.c that
shows what I had to do to get it to work. It should
not be applied as is (I took some shortcuts regarding
the saving of the raw payload data), but I hope it
can be useful to anyone looking into understanding 
why saving the RTP payload does not work any more (at
least I assume it will not work for the current audio
code either).

Best regards,
//Peter

Attachment: rtp_analysis.patch
Description: rtp_analysis.patch