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.