diff options
author | Anders Broman <anders.broman@ericsson.com> | 2005-10-02 20:59:54 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2005-10-02 20:59:54 +0000 |
commit | 093040a179e3e8b1e6acd1070f9748ea4ea08dad (patch) | |
tree | a6eb40ef64a4d9137d4766cf588e95f8c5aee8e6 /epan/dissectors/packet-amr.c | |
parent | e11c4aac89754263c91d3aca19bd67a42a155bf7 (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.c | 10 |
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); } |