diff options
author | Anders Broman <anders.broman@ericsson.com> | 2005-02-05 11:08:24 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2005-02-05 11:08:24 +0000 |
commit | 84d4f0e508ce2876a19515a13c983314b1cfeff2 (patch) | |
tree | 9d24f5ee8db7ff41dfc54addf63808bfcb8c4d2a | |
parent | c00014119d15d8f5253e4c005a0b16b76aad823d (diff) |
From Alejandro Vaquero:
a patch that to shows the RTP streams in the Graph. Now
using an RTP tap (not using the rtp_stream).
svn path=/trunk/; revision=13300
-rw-r--r-- | epan/dissectors/packet-rtp.c | 9 | ||||
-rw-r--r-- | epan/dissectors/packet-rtp.h | 1 |
2 files changed, 7 insertions, 3 deletions
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c index c53b09bc36..ff158262dc 100644 --- a/epan/dissectors/packet-rtp.c +++ b/epan/dissectors/packet-rtp.c @@ -353,6 +353,8 @@ dissect_rtp_data( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_tree_add_item( rtp_tree, hf_rtp_data, newtvb, 0, -1, FALSE ); } +static struct _rtp_info rtp_info; + static void dissect_rtp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree ) { @@ -377,8 +379,6 @@ dissect_rtp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree ) guint32 sync_src; guint32 csrc_item; - static struct _rtp_info rtp_info; - /* Get the fields in the first octet */ octet1 = tvb_get_guint8( tvb, offset ); version = RTP_VERSION( octet1 ); @@ -430,6 +430,7 @@ dissect_rtp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree ) rtp_info.info_seq_num = seq_num; rtp_info.info_timestamp = timestamp; rtp_info.info_sync_src = sync_src; + rtp_info.info_setup_frame_num = 0; /* * Do we have all the data? @@ -517,6 +518,7 @@ dissect_rtp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree ) proto_tree_add_uint( rtp_tree, hf_rtp_ssrc, tvb, offset, 4, sync_src ); offset += 4; } else { + show_setup_info(tvb, pinfo, NULL); offset += 12; } /* CSRC list*/ @@ -653,7 +655,7 @@ dissect_rtp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree ) /* Look for conversation info and display any setup info found */ -void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +static void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { /* Conversation and current data */ conversation_t *p_conv = NULL; @@ -705,6 +707,7 @@ void show_setup_info(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) tvb, 0, 0, p_conv_data->method); PROTO_ITEM_SET_GENERATED(item); } + rtp_info.info_setup_frame_num = p_conv_data->frame_number; } } diff --git a/epan/dissectors/packet-rtp.h b/epan/dissectors/packet-rtp.h index b6cff9b5ff..2f8e852b3b 100644 --- a/epan/dissectors/packet-rtp.h +++ b/epan/dissectors/packet-rtp.h @@ -40,6 +40,7 @@ struct _rtp_info { gboolean info_all_data_present; /* FALSE if data is cut off */ guint info_payload_offset; /* start of payload relative to info_data */ guint info_payload_len; /* length of payload (incl padding) */ + guint32 info_setup_frame_num; /* the frame num of the packet that set this RTP connection */ const guint8* info_data; /* pointer to raw rtp data */ /* * info_data: pointer to raw rtp data = header + payload incl. padding. |