Ethereal-dev: [Ethereal-dev] [PATCH] descriptive RTP Payload Type
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Thomas Anders <thomas.anders@xxxxxxxxxxxxx>
Date: Tue, 01 Jun 2004 13:49:55 +0200
With the attached patches packet-sdp.c dissects the RTP Payload Type (if media protocol is RTP/AVP) with its descriptive name rather than the raw value string, much like packet-rtp.c does already. To avoid duplicate definitions, I moved the existing rtp_payload_type_vals[] definition from packet-rtp.c and gtk/rtp_stream_dlg.c to rtp_pt.h and used that everywhere. Works for me. Please apply. +Thomas -- Thomas Anders (thomas.anders at blue-cable.de)
--- packet-sdp.c.v145 2004-01-16 20:51:55.000000000 +0100 +++ packet-sdp.c 2004-06-01 13:46:31.000000000 +0200 @@ -48,6 +48,7 @@ #include <epan/packet.h> #include <epan/conversation.h> #include <epan/strutil.h> +#include "rtp_pt.h" static dissector_handle_t rtp_handle=NULL; static dissector_handle_t rtcp_handle=NULL; @@ -774,6 +775,7 @@ transport_info_t *transport_info){ proto_tree *sdp_media_tree; gint offset, next_offset, tokenlen; + guint8 *media_format; offset = 0; next_offset = 0; @@ -854,8 +856,14 @@ tokenlen = next_offset - offset; } - proto_tree_add_item(sdp_media_tree, hf_media_format, tvb, - offset, tokenlen, FALSE); + media_format = tvb_get_string(tvb, offset, tokenlen); + if (!strcmp(transport_info->media_proto[transport_info->media_count], "RTP/AVP")) { + proto_tree_add_string(sdp_media_tree, hf_media_format, tvb, + offset, tokenlen, val_to_str(atol(media_format), rtp_payload_type_vals, "%u")); + } else { + proto_tree_add_item(sdp_media_tree, hf_media_format, tvb, + offset, tokenlen, FALSE); + } } while (next_offset != -1); /* Increase the count of media channels, but don't walk off the end @@ -1033,7 +1041,7 @@ { &hf_bandwidth_value, { "Bandwidth Value", "sdp.bandwidth.value",FT_STRING, BASE_NONE, NULL, 0x0, - "Bandwidth Value", HFILL }}, + "Bandwidth Value (in kbits/s)", HFILL }}, { &hf_time_start, { "Session Start Time", "sdp.time.start",FT_STRING, BASE_NONE, NULL, 0x0, @@ -1093,7 +1101,7 @@ { &hf_media_proto, { "Media Proto", "sdp.media.proto",FT_STRING, BASE_NONE, NULL, 0x0, - "Media Proto", HFILL }}, + "Media Protocol", HFILL }}, { &hf_media_format, { "Media Format", "sdp.media.format",FT_STRING, BASE_NONE, NULL, 0x0,
--- rtp_pt.h.v12 2003-09-25 21:35:02.000000000 +0200 +++ rtp_pt.h 2004-06-01 11:31:23.000000000 +0200 @@ -25,6 +25,8 @@ #ifndef __RTP_PT_H__ #define __RTP_PT_H__ +#include "epan/value_string.h" + /* * RTP Payload types * Table B.2 / H.225.0 @@ -60,4 +62,35 @@ #define PT_MP2T 33 /* RFC 2250 */ #define PT_H263 34 /* from Chunrong Zhu of Intel; see the Web page */ +static const value_string rtp_payload_type_vals[] = +{ + { PT_PCMU, "ITU-T G.711 PCMU" }, + { PT_1016, "USA Federal Standard FS-1016" }, + { PT_G721, "ITU-T G.721" }, + { PT_GSM, "GSM 06.10" }, + { PT_G723, "ITU-T G.723" }, + { PT_DVI4_8000, "DVI4 8000 samples/s" }, + { PT_DVI4_16000, "DVI4 16000 samples/s" }, + { PT_LPC, "Experimental linear predictive encoding from Xerox PARC" }, + { PT_PCMA, "ITU-T G.711 PCMA" }, + { PT_G722, "ITU-T G.722" }, + { PT_L16_STEREO, "16-bit uncompressed audio, stereo" }, + { PT_L16_MONO, "16-bit uncompressed audio, monaural" }, + { PT_QCELP, "Qualcomm Code Excited Linear Predictive coding" }, + { PT_CN, "Comfort noise" }, + { PT_MPA, "MPEG-I/II Audio"}, + { PT_G728, "ITU-T G.728" }, + { PT_DVI4_11025, "DVI4 11025 samples/s" }, + { PT_DVI4_22050, "DVI4 22050 samples/s" }, + { PT_G729, "ITU-T G.729" }, + { PT_CELB, "Sun CellB video encoding" }, + { PT_JPEG, "JPEG-compressed video" }, + { PT_NV, "'nv' program" }, + { PT_H261, "ITU-T H.261" }, + { PT_MPV, "MPEG-I/II Video"}, + { PT_MP2T, "MPEG-II transport streams"}, + { PT_H263, "ITU-T H.263" }, + { 0, NULL }, +}; + #endif
--- packet-rtp.c.v145 2004-02-14 23:48:53.000000000 +0100 +++ packet-rtp.c 2004-06-01 11:05:34.000000000 +0200 @@ -138,36 +138,7 @@ /* Payload type is the last 7 bits */ #define RTP_PAYLOAD_TYPE(octet) ((octet) & 0x7F) -static const value_string rtp_payload_type_vals[] = -{ - { PT_PCMU, "ITU-T G.711 PCMU" }, - { PT_1016, "USA Federal Standard FS-1016" }, - { PT_G721, "ITU-T G.721" }, - { PT_GSM, "GSM 06.10" }, - { PT_G723, "ITU-T G.723" }, - { PT_DVI4_8000, "DVI4 8000 samples/s" }, - { PT_DVI4_16000, "DVI4 16000 samples/s" }, - { PT_LPC, "Experimental linear predictive encoding from Xerox PARC" }, - { PT_PCMA, "ITU-T G.711 PCMA" }, - { PT_G722, "ITU-T G.722" }, - { PT_L16_STEREO, "16-bit uncompressed audio, stereo" }, - { PT_L16_MONO, "16-bit uncompressed audio, monaural" }, - { PT_QCELP, "Qualcomm Code Excited Linear Predictive coding" }, - { PT_CN, "Comfort noise" }, - { PT_MPA, "MPEG-I/II Audio"}, - { PT_G728, "ITU-T G.728" }, - { PT_DVI4_11025, "DVI4 11025 samples/s" }, - { PT_DVI4_22050, "DVI4 22050 samples/s" }, - { PT_G729, "ITU-T G.729" }, - { PT_CELB, "Sun CellB video encoding" }, - { PT_JPEG, "JPEG-compressed video" }, - { PT_NV, "'nv' program" }, - { PT_H261, "ITU-T H.261" }, - { PT_MPV, "MPEG-I/II Video"}, - { PT_MP2T, "MPEG-II transport streams"}, - { PT_H263, "ITU-T H.263" }, - { 0, NULL }, -}; +/* rtp_payload_type_vals[] defined in rtp_pt.h */ static address fake_addr; static int heur_init = FALSE;
--- gtk/rtp_stream_dlg.c.v120 2004-04-12 20:01:27.000000000 +0200 +++ gtk/rtp_stream_dlg.c 2004-06-01 11:35:28.000000000 +0200 @@ -51,37 +51,7 @@ extern GtkWidget *main_display_filter_widget; -static const value_string rtp_payload_type_vals[] = -{ - { PT_PCMU, "ITU-T G.711 PCMU" }, - { PT_1016, "USA Federal Standard FS-1016" }, - { PT_G721, "ITU-T G.721" }, - { PT_GSM, "GSM 06.10" }, - { PT_G723, "ITU-T G.723" }, - { PT_DVI4_8000, "DVI4 8000 samples/s" }, - { PT_DVI4_16000, "DVI4 16000 samples/s" }, - { PT_LPC, "Experimental linear predictive encoding from Xerox PARC" }, - { PT_PCMA, "ITU-T G.711 PCMA" }, - { PT_G722, "ITU-T G.722" }, - { PT_L16_STEREO, "16-bit uncompressed audio, stereo" }, - { PT_L16_MONO, "16-bit uncompressed audio, monaural" }, - { PT_QCELP, "Qualcomm Code Excited Linear Predictive coding" }, - { PT_CN, "Comfort noise" }, - { PT_MPA, "MPEG-I/II Audio"}, - { PT_G728, "ITU-T G.728" }, - { PT_DVI4_11025, "DVI4 11025 samples/s" }, - { PT_DVI4_22050, "DVI4 22050 samples/s" }, - { PT_G729, "ITU-T G.729" }, - { PT_CELB, "Sun CellB video encoding" }, - { PT_JPEG, "JPEG-compressed video" }, - { PT_NV, "'nv' program" }, - { PT_H261, "ITU-T H.261" }, - { PT_MPV, "MPEG-I/II Video"}, - { PT_MP2T, "MPEG-II transport streams"}, - { PT_H263, "ITU-T H.263" }, - { 0, NULL }, -}; - +/* rtp_payload_type_vals[] defined in rtp_pt.h */ typedef const guint8 * ip_addr_p;
- Follow-Ups:
- Re: [Ethereal-dev] [PATCH] descriptive RTP Payload Type
- From: Guy Harris
- Re: [Ethereal-dev] [PATCH] descriptive RTP Payload Type
- Prev by Date: Re: [Ethereal-dev] How to use the doxygen stuff
- Next by Date: [Ethereal-dev] UNKUUID in DCE RPC dissector side-effect with Windows UUID resolution
- Previous by thread: RE: [Ethereal-dev] How to use the doxygen stuff
- Next by thread: Re: [Ethereal-dev] [PATCH] descriptive RTP Payload Type
- Index(es):