Ethereal-dev: [Ethereal-dev] RTP Analysis: How to get raw RTP packet offset and size
Hi,
I'm trying to solve the problem reported by Arsen Chaloyan
(ref. http://www.ethereal.com/lists/ethereal-dev/200311/msg00346.html)
concerning the rtpdump output of RTP Analysis.
The problem is that the offset calculation for the RTP packets gets skrewed
up for packets containing padding in lower protocol layers.
In this context, i would appreciate some help in order to know the meaning
of some length fields:
what exactly are
typedef struct _frame_data {
...
guint32 pkt_len; /* Packet length */
guint32 cap_len; /* Amount actually captured */
..
} frame_data;
and
struct _rtp_info {
...
guint info_data_len;
guint info_payload_offset;
guint info_payload_len;
};
in packet-rtp.c, info_data_len is defined as
rtp_info.info_data_len = tvb_reported_length_remaining( tvb, offset );
currently, i'm getting a pointer to the raw RTP packet by doing a
sample.frame = cfile.pd + pinfo->fd->pkt_len - rtpinfo->info_data_len;
but this seems to be wrong when there is padding somewhere.
And what about fragmentation?
Any hints?
Lars Ruoff.