aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-amr.c
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-10-02 20:59:54 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-10-02 20:59:54 +0000
commit093040a179e3e8b1e6acd1070f9748ea4ea08dad (patch)
treea6eb40ef64a4d9137d4766cf588e95f8c5aee8e6 /epan/dissectors/packet-amr.c
parente11c4aac89754263c91d3aca19bd67a42a155bf7 (diff)
From Jeff Snyder
00-iax.diff Modifications to the IAX2 dissector so that it offers desegmentation to subdissectors using the same API as TCP offers (pinfo->desegment_len etc) 01-amr.diff Modifications to the AMR dissector to allow AMR IF2 data to be dissected via call_dissector() from packet-h223.c. This patch also causes the AMR dissector to append the frame type string to the info column, so that the info column shows what protocols an H.223 frame contains. 02-h263-data.diff Modifications to packet-h263.c to separate the dissection of h.263 RTP encpasulation from the dissection of the actual h.263 data. The data dissection functions are added as a second dissector. This data-only dissector is used to dissect the video channel in our h.223 streams. As with the AMR modification, this makes the H.263 dissector append to the info column. svn path=/trunk/; revision=16068
Diffstat (limited to 'epan/dissectors/packet-amr.c')
-rw-r--r--epan/dissectors/packet-amr.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/epan/dissectors/packet-amr.c b/epan/dissectors/packet-amr.c
index 4710965fef..e582deb2bf 100644
--- a/epan/dissectors/packet-amr.c
+++ b/epan/dissectors/packet-amr.c
@@ -163,7 +163,7 @@ dissect_amr_if1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
static void
dissect_amr_if2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
- int offset =0;
+ int offset =0, i;
guint8 octet;
proto_tree_add_item(tree, hf_amr_if2_ft, tvb, offset, 1, FALSE);
@@ -178,6 +178,12 @@ dissect_amr_if2(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
return;
proto_tree_add_text(tree, tvb, offset+1, -1, "Speech data");
+ for(i=0;amr_codec_mode_request_vals[i].value != 0 || amr_codec_mode_request_vals[i].strptr != NULL;++i) {
+ if(amr_codec_mode_request_vals[i].value == octet)
+ break;
+ }
+ if(amr_codec_mode_request_vals[i].strptr && check_col(pinfo->cinfo, COL_INFO))
+ col_append_fstr(pinfo->cinfo, COL_INFO, "%s ", amr_codec_mode_request_vals[i].strptr );
}
/* Code to actually dissect the packets */
@@ -451,6 +457,8 @@ proto_register_amr(void)
"Type of AMR encoding of the payload",
&amr_encoding_type, encoding_types, FALSE);
+ register_dissector("amr_if1", dissect_amr_if1, proto_amr);
+ register_dissector("amr_if2", dissect_amr_if2, proto_amr);
}