Ethereal-dev: Re: [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: Guy Harris <guy@xxxxxxxxxxxx>
Date: Sat, 31 Jan 2004 01:51:44 -0800
On Fri, Jan 30, 2004 at 06:31:07PM +0100, Peter Kjellerstedt wrote:
> 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.

The code in gtk/rtp_stream.c doesn't do that; I've changed
gtk/rtp_analysis.c not to do so, but, instead, to use the "info_data"
pointer in the "_rtp_info" structure, just as the code in
gtk/rtp_stream.c does.

Try that.

(I've also added an "info_all_data_present" flag to the "_rtp_info"
structure, which is TRUE if the packet isn't cut short by a snapshot
length and FALSE otherwise, and made the gtk/rtp_analysis.c code check
that flag and fail if it's false; the gtk/rtp_stream.c code should do so
as well.)

> 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).

If by "the current audio code" you're referring to the code in the "RTP
Streams" dialog box, that code should currently work, as it was using
the "info_data" pointer.