aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-02-05 11:08:24 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-02-05 11:08:24 +0000
commit84d4f0e508ce2876a19515a13c983314b1cfeff2 (patch)
tree9d24f5ee8db7ff41dfc54addf63808bfcb8c4d2a
parentc00014119d15d8f5253e4c005a0b16b76aad823d (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.c9
-rw-r--r--epan/dissectors/packet-rtp.h1
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.