aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-amr.c77
-rw-r--r--epan/dissectors/packet-dvb-s2-bb.c46
-rw-r--r--epan/dissectors/packet-evs.c29
-rw-r--r--epan/dissectors/packet-h263p.c31
-rw-r--r--epan/dissectors/packet-h264.c50
-rw-r--r--epan/dissectors/packet-h265.c31
-rw-r--r--epan/dissectors/packet-ismacryp.c46
-rw-r--r--epan/dissectors/packet-iuup.c26
-rw-r--r--epan/dissectors/packet-lapd.c16
-rw-r--r--epan/dissectors/packet-mp4ves.c42
-rw-r--r--epan/dissectors/packet-mtp2.c29
-rw-r--r--epan/dissectors/packet-opus.c26
-rw-r--r--epan/dissectors/packet-rtp-events.c58
-rw-r--r--epan/dissectors/packet-rtp-midi.c28
-rw-r--r--epan/dissectors/packet-rtp.c74
-rw-r--r--epan/dissectors/packet-vp8.c25
-rw-r--r--epan/prefs.c23
17 files changed, 171 insertions, 486 deletions
diff --git a/epan/dissectors/packet-amr.c b/epan/dissectors/packet-amr.c
index da3827b440..1e5802d722 100644
--- a/epan/dissectors/packet-amr.c
+++ b/epan/dissectors/packet-amr.c
@@ -78,9 +78,6 @@ static expert_field ei_amr_padding_bits_not0 = EI_INIT;
static expert_field ei_amr_padding_bits_correct = EI_INIT;
static expert_field ei_amr_reserved = EI_INIT;
-/* The dynamic payload types which will be dissected as AMR */
-static range_t *global_amr_dynamic_payload_types;
-static range_t *global_amr_wb_dynamic_payload_types;
static gint amr_encoding_type = 0;
static gint pref_amr_mode = AMR_NB;
@@ -785,19 +782,10 @@ proto_register_amr(void)
expert_register_field_array(expert_amr, ei, array_length(ei));
/* Register a configuration option for port */
- amr_module = prefs_register_protocol(proto_amr, proto_reg_handoff_amr);
+ amr_module = prefs_register_protocol(proto_amr, NULL);
- prefs_register_range_preference(amr_module, "dynamic.payload.type",
- "AMR dynamic payload types",
- "Dynamic payload types which will be interpreted as AMR"
- "; values must be in the range 1 - 127",
- &global_amr_dynamic_payload_types, 127);
-
- prefs_register_range_preference(amr_module, "wb.dynamic.payload.type",
- "AMR-WB dynamic payload types",
- "Dynamic payload types which will be interpreted as AMR-WB"
- "; values must be in the range 1-127",
- &global_amr_wb_dynamic_payload_types, 127);
+ prefs_register_obsolete_preference(amr_module, "dynamic.payload.type");
+ prefs_register_obsolete_preference(amr_module, "wb.dynamic.payload.type");
prefs_register_enum_preference(amr_module, "encoding.version",
"Type of AMR encoding of the payload",
@@ -823,46 +811,29 @@ proto_register_amr(void)
void
proto_reg_handoff_amr(void)
{
- static range_t *amr_dynamic_payload_types;
- static range_t *amr_wb_dynamic_payload_types;
- static gboolean amr_prefs_initialized = FALSE;
-
- if (!amr_prefs_initialized) {
- dissector_handle_t amr_name_handle;
- amr_capability_t *ftr;
-
- dissector_add_string("rtp_dyn_payload_type","AMR", amr_handle);
- dissector_add_string("rtp_dyn_payload_type","AMR-WB", amr_wb_handle);
-
- /*
- * Register H.245 Generic parameter name(s)
- */
- amr_name_handle = create_dissector_handle(dissect_amr_name, proto_amr);
- for (ftr=amr_capability_tab; ftr->id; ftr++) {
- if (ftr->name)
- dissector_add_string("h245.gef.name", ftr->id, amr_name_handle);
- if (ftr->content_pdu)
- dissector_add_string("h245.gef.content", ftr->id,
- create_dissector_handle(ftr->content_pdu, proto_amr));
- }
- /* Activate the next line for testing with the randpkt tool
- dissector_add_uint_with_preference("udp.port", 55555, amr_handle);
- */
- amr_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint_range("rtp.pt", amr_dynamic_payload_types, amr_handle);
- dissector_delete_uint_range("rtp.pt", amr_wb_dynamic_payload_types, amr_wb_handle);
- wmem_free(wmem_epan_scope(), amr_dynamic_payload_types);
- wmem_free(wmem_epan_scope(), amr_wb_dynamic_payload_types);
- }
+ dissector_handle_t amr_name_handle;
+ amr_capability_t *ftr;
+
+ dissector_add_string("rtp_dyn_payload_type","AMR", amr_handle);
+ dissector_add_string("rtp_dyn_payload_type","AMR-WB", amr_wb_handle);
- amr_dynamic_payload_types = range_copy(wmem_epan_scope(), global_amr_dynamic_payload_types);
- amr_wb_dynamic_payload_types = range_copy(wmem_epan_scope(), global_amr_wb_dynamic_payload_types);
+ dissector_add_uint_range_with_preference("rtp.pt", "", amr_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", amr_wb_handle);
- range_remove_value(wmem_epan_scope(), &amr_dynamic_payload_types, 0);
- dissector_add_uint_range("rtp.pt", amr_dynamic_payload_types, amr_handle);
- range_remove_value(wmem_epan_scope(), &amr_wb_dynamic_payload_types, 0);
- dissector_add_uint_range("rtp.pt", amr_wb_dynamic_payload_types, amr_wb_handle);
+ /*
+ * Register H.245 Generic parameter name(s)
+ */
+ amr_name_handle = create_dissector_handle(dissect_amr_name, proto_amr);
+ for (ftr=amr_capability_tab; ftr->id; ftr++) {
+ if (ftr->name)
+ dissector_add_string("h245.gef.name", ftr->id, amr_name_handle);
+ if (ftr->content_pdu)
+ dissector_add_string("h245.gef.content", ftr->id,
+ create_dissector_handle(ftr->content_pdu, proto_amr));
+ }
+ /* Activate the next line for testing with the randpkt tool
+ dissector_add_uint_with_preference("udp.port", 55555, amr_handle);
+ */
}
/*
diff --git a/epan/dissectors/packet-dvb-s2-bb.c b/epan/dissectors/packet-dvb-s2-bb.c
index 9d1048193c..300d13df2c 100644
--- a/epan/dissectors/packet-dvb-s2-bb.c
+++ b/epan/dissectors/packet-dvb-s2-bb.c
@@ -109,9 +109,6 @@ static dissector_handle_t data_handle;
static dissector_handle_t mp2t_handle;
static dissector_handle_t dvb_s2_modeadapt_handle;
-/* The dynamic payload type range which will be dissected as H.264 */
-static range_t *temp_dynamic_payload_type_range = NULL;
-
void proto_register_dvb_s2_modeadapt(void);
void proto_reg_handoff_dvb_s2_modeadapt(void);
@@ -2547,7 +2544,7 @@ void proto_register_dvb_s2_modeadapt(void)
expert_dvb_s2_gse = expert_register_protocol(proto_dvb_s2_gse);
expert_register_field_array(expert_dvb_s2_gse, ei_gse, array_length(ei_gse));
- dvb_s2_modeadapt_module = prefs_register_protocol(proto_dvb_s2_modeadapt, proto_reg_handoff_dvb_s2_modeadapt);
+ dvb_s2_modeadapt_module = prefs_register_protocol(proto_dvb_s2_modeadapt, NULL);
prefs_register_obsolete_preference(dvb_s2_modeadapt_module, "enable");
@@ -2573,11 +2570,7 @@ void proto_register_dvb_s2_modeadapt(void)
" Frames with the preferred type",
&dvb_s2_try_all_modeadapt);
- prefs_register_range_preference(dvb_s2_modeadapt_module, "dynamic.payload.type",
- "DVB-S2 RTP dynamic payload types",
- "RTP Dynamic payload types which will be interpreted as DVB-S2"
- "; values must be in the range 1 - 127",
- &temp_dynamic_payload_type_range, 127);
+ prefs_register_obsolete_preference(dvb_s2_modeadapt_module, "dynamic.payload.type");
register_init_routine(dvb_s2_gse_defragment_init);
register_init_routine(&virtual_stream_init);
@@ -2589,30 +2582,17 @@ void proto_register_dvb_s2_modeadapt(void)
void proto_reg_handoff_dvb_s2_modeadapt(void)
{
- static range_t *dynamic_payload_type_range = NULL;
- static gboolean prefs_initialized = FALSE;
-
- if (!prefs_initialized) {
- heur_dissector_add("udp", dissect_dvb_s2_modeadapt_heur, "DVB-S2 over UDP", "dvb_s2_udp", proto_dvb_s2_modeadapt, HEURISTIC_DISABLE);
- dissector_add_for_decode_as("udp.port", dvb_s2_modeadapt_handle);
- ip_handle = find_dissector_add_dependency("ip", proto_dvb_s2_bb);
- ipv6_handle = find_dissector_add_dependency("ipv6", proto_dvb_s2_bb);
- dvb_s2_table_handle = find_dissector("dvb-s2_table");
- eth_withoutfcs_handle = find_dissector("eth_withoutfcs");
- data_handle = find_dissector("data");
- mp2t_handle = find_dissector_add_dependency("mp2t", proto_dvb_s2_bb);
-
- dissector_add_string("rtp_dyn_payload_type","DVB-S2", dvb_s2_modeadapt_handle);
-
- prefs_initialized = TRUE;
- } else {
- dissector_delete_uint_range("rtp.pt", dynamic_payload_type_range, dvb_s2_modeadapt_handle);
- wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
- }
-
- dynamic_payload_type_range = range_copy(wmem_epan_scope(), temp_dynamic_payload_type_range);
- range_remove_value(wmem_epan_scope(), &dynamic_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", dynamic_payload_type_range, dvb_s2_modeadapt_handle);
+ heur_dissector_add("udp", dissect_dvb_s2_modeadapt_heur, "DVB-S2 over UDP", "dvb_s2_udp", proto_dvb_s2_modeadapt, HEURISTIC_DISABLE);
+ dissector_add_for_decode_as("udp.port", dvb_s2_modeadapt_handle);
+ ip_handle = find_dissector_add_dependency("ip", proto_dvb_s2_bb);
+ ipv6_handle = find_dissector_add_dependency("ipv6", proto_dvb_s2_bb);
+ dvb_s2_table_handle = find_dissector("dvb-s2_table");
+ eth_withoutfcs_handle = find_dissector("eth_withoutfcs");
+ data_handle = find_dissector("data");
+ mp2t_handle = find_dissector_add_dependency("mp2t", proto_dvb_s2_bb);
+
+ dissector_add_string("rtp_dyn_payload_type","DVB-S2", dvb_s2_modeadapt_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", dvb_s2_modeadapt_handle);
}
/*
diff --git a/epan/dissectors/packet-evs.c b/epan/dissectors/packet-evs.c
index d8efa96f47..79abd34150 100644
--- a/epan/dissectors/packet-evs.c
+++ b/epan/dissectors/packet-evs.c
@@ -65,9 +65,6 @@ static int ett_evs_header = -1;
static int ett_evs_speech = -1;
static int ett_evs_voice_data = -1;
-/* The dynamic payload type range which will be dissected as EVS */
-static range_t *temp_dynamic_payload_type_range = NULL;
-
static const value_string evs_protected_payload_sizes_value[] = {
{ 48, "EVS Primary SID 2.4" },
{ 56, "Special case" },
@@ -1084,13 +1081,9 @@ proto_register_evs(void)
proto_register_field_array(proto_evs, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- evs_module = prefs_register_protocol(proto_evs, proto_reg_handoff_evs);
+ evs_module = prefs_register_protocol(proto_evs, NULL);
- prefs_register_range_preference(evs_module, "dynamic.payload.type",
- "EVS dynamic payload types",
- "Dynamic payload types which will be interpreted as EVS"
- "; values must be in the range 1 - 127",
- &temp_dynamic_payload_type_range, 127);
+ prefs_register_obsolete_preference(evs_module, "dynamic.payload.type");
evs_handle = register_dissector("evs", dissect_evs, proto_evs);
@@ -1099,22 +1092,8 @@ proto_register_evs(void)
void
proto_reg_handoff_evs(void)
{
- static range_t *dynamic_payload_type_range = NULL;
- static gboolean evs_prefs_initialized = FALSE;
-
- if (!evs_prefs_initialized) {
- dissector_add_string("rtp_dyn_payload_type", "EVS", evs_handle);
- evs_prefs_initialized = TRUE;
- }
- else {
- dissector_delete_uint_range("rtp.pt", dynamic_payload_type_range, evs_handle);
- wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
- }
-
- dynamic_payload_type_range = range_copy(wmem_epan_scope(), temp_dynamic_payload_type_range);
-
- range_remove_value(wmem_epan_scope(), &dynamic_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", dynamic_payload_type_range, evs_handle);
+ dissector_add_string("rtp_dyn_payload_type", "EVS", evs_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", evs_handle);
}
/*
diff --git a/epan/dissectors/packet-h263p.c b/epan/dissectors/packet-h263p.c
index baf965b611..64b0fa849f 100644
--- a/epan/dissectors/packet-h263p.c
+++ b/epan/dissectors/packet-h263p.c
@@ -49,10 +49,6 @@ static gint ett_h263P_extra_hdr = -1;
static gint ett_h263P_payload = -1;
static gint ett_h263P_data = -1;
-/* The dynamic payload type which will be dissected as H.263-1998/H.263-2000 */
-
-static range_t *temp_dynamic_payload_type_range = NULL;
-
static dissector_handle_t h263P_handle;
/* RFC 4629 */
@@ -192,21 +188,9 @@ dissect_h263P( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _
void
proto_reg_handoff_h263P(void)
{
- static range_t *dynamic_payload_type_range;
- static gboolean h263P_prefs_initialized = FALSE;
-
- if (!h263P_prefs_initialized) {
- dissector_add_string("rtp_dyn_payload_type","H263-1998", h263P_handle);
- dissector_add_string("rtp_dyn_payload_type","H263-2000", h263P_handle);
- h263P_prefs_initialized = TRUE;
- }
- else {
- dissector_delete_uint_range("rtp.pt", dynamic_payload_type_range, h263P_handle);
- wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
- }
- dynamic_payload_type_range = range_copy(wmem_epan_scope(), temp_dynamic_payload_type_range);
- range_remove_value(wmem_epan_scope(), &dynamic_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", dynamic_payload_type_range, h263P_handle);
+ dissector_add_string("rtp_dyn_payload_type","H263-1998", h263P_handle);
+ dissector_add_string("rtp_dyn_payload_type","H263-2000", h263P_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", h263P_handle);
}
@@ -385,14 +369,9 @@ proto_register_h263P(void)
proto_register_field_array(proto_h263P, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- h263P_module = prefs_register_protocol(proto_h263P, proto_reg_handoff_h263P);
+ h263P_module = prefs_register_protocol(proto_h263P, NULL);
- prefs_register_range_preference(h263P_module,
- "dynamic.payload.type",
- "H.263-1998 and H.263-2000 dynamic payload types",
- "Dynamic payload types which will be interpreted as H.263"
- "; values must be in the range 1 - 127",
- &temp_dynamic_payload_type_range, 127);
+ prefs_register_obsolete_preference(h263P_module, "dynamic.payload.type");
h263P_handle = register_dissector("h263P", dissect_h263P, proto_h263P);
}
diff --git a/epan/dissectors/packet-h264.c b/epan/dissectors/packet-h264.c
index 59e873eee9..92cb64c1bb 100644
--- a/epan/dissectors/packet-h264.c
+++ b/epan/dissectors/packet-h264.c
@@ -253,10 +253,6 @@ static expert_field ei_h264_nal_unit_type_unspecified = EI_INIT;
static dissector_handle_t h264_name_handle;
-/* The dynamic payload type range which will be dissected as H.264 */
-
-static range_t *temp_dynamic_payload_type_range = NULL;
-
static dissector_handle_t h264_handle;
/* syntax tables in subclause 7.3 is equal to
@@ -3749,14 +3745,9 @@ proto_register_h264(void)
/* Register a configuration option for port */
- h264_module = prefs_register_protocol(proto_h264, proto_reg_handoff_h264);
-
+ h264_module = prefs_register_protocol(proto_h264, NULL);
- prefs_register_range_preference(h264_module, "dynamic.payload.type",
- "H.264 dynamic payload types",
- "Dynamic payload types which will be interpreted as H.264"
- "; values must be in the range 1 - 127",
- &temp_dynamic_payload_type_range, 127);
+ prefs_register_obsolete_preference(h264_module, "dynamic.payload.type");
h264_handle = register_dissector("h264", dissect_h264, proto_h264);
}
@@ -3766,32 +3757,21 @@ proto_register_h264(void)
void
proto_reg_handoff_h264(void)
{
- static range_t *dynamic_payload_type_range = NULL;
- static gboolean h264_prefs_initialized = FALSE;
-
- if (!h264_prefs_initialized) {
- h264_capability_t *ftr;
-
- dissector_add_string("rtp_dyn_payload_type","H264", h264_handle);
- dissector_add_string("rtp_dyn_payload_type","H264-SVC", h264_handle);
- dissector_add_string("rtp_dyn_payload_type","X-H264UC", h264_handle);
-
- h264_name_handle = create_dissector_handle(dissect_h264_name, proto_h264);
- for (ftr=h264_capability_tab; ftr->id; ftr++) {
- if (ftr->name)
- dissector_add_string("h245.gef.name", ftr->id, h264_name_handle);
- if (ftr->content_pdu)
- dissector_add_string("h245.gef.content", ftr->id, create_dissector_handle(ftr->content_pdu, proto_h264));
- }
- h264_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint_range("rtp.pt", dynamic_payload_type_range, h264_handle);
- wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
+ h264_capability_t *ftr;
+
+ dissector_add_string("rtp_dyn_payload_type","H264", h264_handle);
+ dissector_add_string("rtp_dyn_payload_type","H264-SVC", h264_handle);
+ dissector_add_string("rtp_dyn_payload_type","X-H264UC", h264_handle);
+
+ h264_name_handle = create_dissector_handle(dissect_h264_name, proto_h264);
+ for (ftr=h264_capability_tab; ftr->id; ftr++) {
+ if (ftr->name)
+ dissector_add_string("h245.gef.name", ftr->id, h264_name_handle);
+ if (ftr->content_pdu)
+ dissector_add_string("h245.gef.content", ftr->id, create_dissector_handle(ftr->content_pdu, proto_h264));
}
- dynamic_payload_type_range = range_copy(wmem_epan_scope(), temp_dynamic_payload_type_range);
- range_remove_value(wmem_epan_scope(), &dynamic_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", dynamic_payload_type_range, h264_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", h264_handle);
}
diff --git a/epan/dissectors/packet-h265.c b/epan/dissectors/packet-h265.c
index 9a5142044c..c4f9b8e324 100644
--- a/epan/dissectors/packet-h265.c
+++ b/epan/dissectors/packet-h265.c
@@ -390,10 +390,6 @@ static expert_field ei_h265_format_specific_parameter = EI_INIT;
static expert_field ei_h265_oversized_exp_golomb_code = EI_INIT;
static expert_field ei_h265_value_to_large = EI_INIT;
-/* The dynamic payload type range which will be dissected as H.265 */
-
-static range_t *temp_dynamic_payload_type_range = NULL;
-
static dissector_handle_t h265_handle;
static gboolean dependent_slice_segments_enabled_flag = 0;
@@ -4663,14 +4659,9 @@ proto_register_h265(void)
/* Register a configuration option for port */
- h265_module = prefs_register_protocol(proto_h265, proto_reg_handoff_h265);
-
+ h265_module = prefs_register_protocol(proto_h265, NULL);
- prefs_register_range_preference(h265_module, "dynamic.payload.type",
- "H.265 dynamic payload types",
- "Dynamic payload types which will be interpreted as H.265"
- "; values must be in the range 1 - 127",
- &temp_dynamic_payload_type_range, 127);
+ prefs_register_obsolete_preference(h265_module, "dynamic.payload.type");
h265_handle = register_dissector("h265", dissect_h265, proto_h265);
}
@@ -4679,22 +4670,8 @@ proto_register_h265(void)
void
proto_reg_handoff_h265(void)
{
- static range_t *dynamic_payload_type_range = NULL;
- static gboolean h265_prefs_initialized = FALSE;
-
- if (!h265_prefs_initialized) {
- dissector_add_string("rtp_dyn_payload_type", "H265", h265_handle);
-
- h265_prefs_initialized = TRUE;
- }
- else {
- dissector_delete_uint_range("rtp.pt", dynamic_payload_type_range, h265_handle);
- wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
- }
-
- dynamic_payload_type_range = range_copy(wmem_epan_scope(), temp_dynamic_payload_type_range);
- range_remove_value(wmem_epan_scope(), &dynamic_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", dynamic_payload_type_range, h265_handle);
+ dissector_add_string("rtp_dyn_payload_type", "H265", h265_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", h265_handle);
}
/*
diff --git a/epan/dissectors/packet-ismacryp.c b/epan/dissectors/packet-ismacryp.c
index 1635eff44b..d8f1d77104 100644
--- a/epan/dissectors/packet-ismacryp.c
+++ b/epan/dissectors/packet-ismacryp.c
@@ -67,7 +67,6 @@ static int proto_ismacryp_v11 = -1;
static int proto_ismacryp_v20 = -1;
/* parameters set in preferences */
-static range_t *pref_dynamic_payload_type_range = NULL; /* RTP dynamic payload types */
static guint pref_au_size_length = DEFAULT_AU_SIZE_LENGTH; /* default Au size length */
static guint pref_au_index_length = DEFAULT_AU_INDEX_LENGTH; /* default Au index length */
static guint pref_au_index_delta_length = DEFAULT_AU_INDEX_DELTA_LENGTH; /* default Au index delta length */
@@ -854,14 +853,9 @@ void proto_register_ismacryp (void)
proto_register_subtree_array (ett, array_length (ett));
/* Register our configuration options for ismacryp */
- /* this registers our preferences, function proto_reg_handoff_ismacryp is called when preferences are applied */
- ismacryp_module = prefs_register_protocol(proto_ismacryp, proto_reg_handoff_ismacryp);
+ ismacryp_module = prefs_register_protocol(proto_ismacryp, NULL);
- prefs_register_range_preference(ismacryp_module, "dynamic.payload.type",
- "ISMACryp dynamic payload types",
- "Dynamic payload types which will be interpreted as ISMACryp"
- "; values must be in the range 1 - 127",
- &pref_dynamic_payload_type_range, 127);
+ prefs_register_obsolete_preference(ismacryp_module, "dynamic.payload.type");
prefs_register_enum_preference(ismacryp_module, "version",
"ISMACryp version",
@@ -993,31 +987,17 @@ void proto_register_ismacryp (void)
void proto_reg_handoff_ismacryp(void)
{
- static gboolean ismacryp_prefs_initialized = FALSE;
- static dissector_handle_t ismacryp_handle;
- static range_t *dynamic_payload_type_range;
-
- if (!ismacryp_prefs_initialized) {
- dissector_handle_t ismacryp_v11_handle;
- dissector_handle_t ismacryp_v20_handle;
- ismacryp_handle = create_dissector_handle(dissect_ismacryp, proto_ismacryp);
- ismacryp_v11_handle = create_dissector_handle(dissect_ismacryp_v11, proto_ismacryp_v11);
- ismacryp_v20_handle = create_dissector_handle(dissect_ismacryp_v20, proto_ismacryp_v20);
- ismacryp_prefs_initialized = TRUE;
- dissector_add_string("rtp_dyn_payload_type", "ISMACRYP", ismacryp_handle);
- dissector_add_string("rtp_dyn_payload_type", "enc-mpeg4-generic", ismacryp_v11_handle);
- dissector_add_string("rtp_dyn_payload_type", "enc-isoff-generic", ismacryp_v20_handle);
- }
- else { /* ismacryp_prefs_initialized = TRUE */
- /* delete existing association of ismacryp with payload_type */
- dissector_delete_uint_range("rtp.pt", dynamic_payload_type_range, ismacryp_handle);
- wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
- }
- /* always do the following */
- /* update payload_type to new value */
- dynamic_payload_type_range = range_copy(wmem_epan_scope(), pref_dynamic_payload_type_range);
- range_remove_value(wmem_epan_scope(), &dynamic_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", dynamic_payload_type_range, ismacryp_handle);
+ dissector_handle_t ismacryp_handle;
+ dissector_handle_t ismacryp_v11_handle;
+ dissector_handle_t ismacryp_v20_handle;
+
+ ismacryp_handle = create_dissector_handle(dissect_ismacryp, proto_ismacryp);
+ ismacryp_v11_handle = create_dissector_handle(dissect_ismacryp_v11, proto_ismacryp_v11);
+ ismacryp_v20_handle = create_dissector_handle(dissect_ismacryp_v20, proto_ismacryp_v20);
+ dissector_add_string("rtp_dyn_payload_type", "ISMACRYP", ismacryp_handle);
+ dissector_add_string("rtp_dyn_payload_type", "enc-mpeg4-generic", ismacryp_v11_handle);
+ dissector_add_string("rtp_dyn_payload_type", "enc-isoff-generic", ismacryp_v20_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", ismacryp_handle);
}
diff --git a/epan/dissectors/packet-iuup.c b/epan/dissectors/packet-iuup.c
index 424589544c..4fa17d8ced 100644
--- a/epan/dissectors/packet-iuup.c
+++ b/epan/dissectors/packet-iuup.c
@@ -151,8 +151,6 @@ static dissector_handle_t iuup_handle;
static gboolean dissect_fields = FALSE;
static gboolean two_byte_pseudoheader = FALSE;
-static range_t *global_dynamic_payload_type_range = 0;
-
#define PDUTYPE_DATA_WITH_CRC 0
#define PDUTYPE_DATA_NO_CRC 1
@@ -821,21 +819,9 @@ static int find_iuup(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
void proto_reg_handoff_iuup(void) {
- static gboolean iuup_prefs_initialized = FALSE;
- static range_t *saved_dynamic_payload_type_range = NULL;
-
- if (!iuup_prefs_initialized) {
- dissector_add_string("rtp_dyn_payload_type","VND.3GPP.IUFP", iuup_handle);
- iuup_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint_range("rtp.pt", saved_dynamic_payload_type_range, iuup_handle);
- wmem_free(wmem_epan_scope(), saved_dynamic_payload_type_range);
- }
-
- saved_dynamic_payload_type_range = range_copy(wmem_epan_scope(), global_dynamic_payload_type_range);
+ dissector_add_string("rtp_dyn_payload_type","VND.3GPP.IUFP", iuup_handle);
- range_remove_value(wmem_epan_scope(), &saved_dynamic_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", saved_dynamic_payload_type_range, iuup_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", iuup_handle);
}
@@ -974,7 +960,7 @@ void proto_register_iuup(void) {
circuits = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);
- iuup_module = prefs_register_protocol(proto_iuup, proto_reg_handoff_iuup);
+ iuup_module = prefs_register_protocol(proto_iuup, NULL);
prefs_register_bool_preference(iuup_module, "dissect_payload",
"Dissect IuUP Payload bits",
@@ -986,11 +972,7 @@ void proto_register_iuup(void) {
"The payload contains a two byte pseudoheader indicating direction and circuit_id",
&two_byte_pseudoheader);
- prefs_register_range_preference(iuup_module, "dynamic.payload.type",
- "IuUP dynamic payload type",
- "Dynamic payload types which will be interpreted as IuUP"
- "; values must be in the range 1 - 127",
- &global_dynamic_payload_type_range, 127);
+ prefs_register_obsolete_preference(iuup_module, "dynamic.payload.type");
}
/*
diff --git a/epan/dissectors/packet-lapd.c b/epan/dissectors/packet-lapd.c
index 5101d1b030..78e6bf35ba 100644
--- a/epan/dissectors/packet-lapd.c
+++ b/epan/dissectors/packet-lapd.c
@@ -69,7 +69,6 @@ static gint ett_lapd_address = -1;
static gint ett_lapd_control = -1;
static gint ett_lapd_checksum = -1;
-static range_t *pref_lapd_rtp_payload_type_range = NULL;
static guint pref_lapd_sctp_ppi = 0;
static expert_field ei_lapd_abort = EI_INIT;
@@ -787,11 +786,7 @@ proto_register_lapd(void)
"Use GSM SAPI values",
"Use SAPI values as specified in TS 48 056",
&global_lapd_gsm_sapis);
- prefs_register_range_preference(lapd_module, "rtp_payload_type",
- "RTP payload types for embedded LAPD",
- "RTP payload types for embedded LAPD"
- "; values must be in the range 1 - 127",
- &pref_lapd_rtp_payload_type_range, 127);
+ prefs_register_obsolete_preference(lapd_module, "rtp_payload_type");
prefs_register_uint_preference(lapd_module, "sctp_payload_protocol_identifier",
"SCTP Payload Protocol Identifier for LAPD",
"SCTP Payload Protocol Identifier for LAPD. It is a "
@@ -803,7 +798,6 @@ void
proto_reg_handoff_lapd(void)
{
static gboolean init = FALSE;
- static range_t* lapd_rtp_payload_type_range = NULL;
static guint lapd_sctp_ppi;
dissector_handle_t lapd_frame_handle;
@@ -817,20 +811,14 @@ proto_reg_handoff_lapd(void)
dissector_add_for_decode_as("sctp.ppi", lapd_handle);
dissector_add_for_decode_as("sctp.port", lapd_handle);
dissector_add_uint_range_with_preference("udp.port", "", lapd_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", lapd_bitstream_handle);
init = TRUE;
} else {
- dissector_delete_uint_range("rtp.pt", lapd_rtp_payload_type_range, lapd_bitstream_handle);
- wmem_free(wmem_epan_scope(), lapd_rtp_payload_type_range);
-
if (lapd_sctp_ppi > 0)
dissector_delete_uint("sctp.ppi", lapd_sctp_ppi, lapd_handle);
}
- lapd_rtp_payload_type_range = range_copy(wmem_epan_scope(), pref_lapd_rtp_payload_type_range);
- range_remove_value(wmem_epan_scope(), &lapd_rtp_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", lapd_rtp_payload_type_range, lapd_bitstream_handle);
-
lapd_sctp_ppi = pref_lapd_sctp_ppi;
if (lapd_sctp_ppi > 0)
dissector_add_uint("sctp.ppi", lapd_sctp_ppi, lapd_handle);
diff --git a/epan/dissectors/packet-mp4ves.c b/epan/dissectors/packet-mp4ves.c
index 820c8e467c..0f22c09a6b 100644
--- a/epan/dissectors/packet-mp4ves.c
+++ b/epan/dissectors/packet-mp4ves.c
@@ -57,10 +57,6 @@ static expert_field ei_mp4ves_not_dissected_bits = EI_INIT;
static dissector_handle_t mp4ves_name_handle;
-/* The dynamic payload types which will be dissected as MP4V-ES */
-
-static range_t *global_dynamic_payload_type_range = NULL;
-
static dissector_handle_t mp4ves_handle;
/*
@@ -1012,44 +1008,28 @@ proto_register_mp4ves(void)
register_dissector("mp4ves_config", dissect_mp4ves_config, proto_mp4ves);
/* Register a configuration option for port */
- mp4ves_module = prefs_register_protocol(proto_mp4ves, proto_reg_handoff_mp4ves);
+ mp4ves_module = prefs_register_protocol(proto_mp4ves, NULL);
- prefs_register_range_preference(mp4ves_module,
- "dynamic.payload.type",
- "MP4V-ES dynamic payload types",
- "Dynamic payload types which will be interpreted as MP4V-ES"
- "; values must be in the range 1 - 127",
- &global_dynamic_payload_type_range, 127);
+ prefs_register_obsolete_preference(mp4ves_module, "dynamic.payload.type");
}
void
proto_reg_handoff_mp4ves(void)
{
- static range_t *dynamic_payload_type_range = NULL;
- static gboolean mp4ves_prefs_initialized = FALSE;
-
- if (!mp4ves_prefs_initialized) {
- mp4ves_capability_t *ftr;
+ mp4ves_capability_t *ftr;
- dissector_add_string("rtp_dyn_payload_type","MP4V-ES", mp4ves_handle);
- mp4ves_prefs_initialized = TRUE;
+ dissector_add_string("rtp_dyn_payload_type","MP4V-ES", mp4ves_handle);
- mp4ves_name_handle = create_dissector_handle(dissect_mp4ves_name, proto_mp4ves);
- for (ftr=mp4ves_capability_tab; ftr->id; ftr++) {
- if (ftr->name)
- dissector_add_string("h245.gef.name", ftr->id, mp4ves_name_handle);
- if (ftr->content_pdu)
- dissector_add_string("h245.gef.content", ftr->id, create_dissector_handle(ftr->content_pdu, proto_mp4ves));
- }
- }else{
- dissector_delete_uint_range("rtp.pt", dynamic_payload_type_range, mp4ves_handle);
- wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
+ mp4ves_name_handle = create_dissector_handle(dissect_mp4ves_name, proto_mp4ves);
+ for (ftr=mp4ves_capability_tab; ftr->id; ftr++) {
+ if (ftr->name)
+ dissector_add_string("h245.gef.name", ftr->id, mp4ves_name_handle);
+ if (ftr->content_pdu)
+ dissector_add_string("h245.gef.content", ftr->id, create_dissector_handle(ftr->content_pdu, proto_mp4ves));
}
- dynamic_payload_type_range = range_copy(wmem_epan_scope(), global_dynamic_payload_type_range);
- range_remove_value(wmem_epan_scope(), &dynamic_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", dynamic_payload_type_range, mp4ves_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", mp4ves_handle);
}
/*
diff --git a/epan/dissectors/packet-mtp2.c b/epan/dissectors/packet-mtp2.c
index d07c0e2994..e6aa336ded 100644
--- a/epan/dissectors/packet-mtp2.c
+++ b/epan/dissectors/packet-mtp2.c
@@ -159,8 +159,6 @@ static const fragment_items mtp2_frag_items = {
static reassembly_table mtp2_reassembly_table;
/* variables needed for property registration to wireshark menu */
-static range_t *mtp2_rtp_payload_types;
-static range_t *pref_mtp2_rtp_payload_types = NULL;
static gboolean reverse_bit_order_mtp2 = FALSE;
static expert_field ei_mtp2_checksum_error = EI_INIT;
@@ -1276,7 +1274,7 @@ proto_register_mtp2(void)
expert_mtp2 = expert_register_protocol(proto_mtp2);
expert_register_field_array(expert_mtp2, ei, array_length(ei));
- mtp2_module = prefs_register_protocol(proto_mtp2, proto_reg_handoff_mtp2);
+ mtp2_module = prefs_register_protocol(proto_mtp2, NULL);
prefs_register_bool_preference(mtp2_module,
"use_extended_sequence_numbers",
"Use extended sequence numbers",
@@ -1294,12 +1292,8 @@ proto_register_mtp2(void)
"Reverse bit order inside bytes",
"Reverse the bit order inside bytes specified in Q.703.",
&reverse_bit_order_mtp2);
- prefs_register_range_preference(mtp2_module, "rtp_payload_type",
- "RTP payload types for embedded packets in RTP stream",
- "RTP payload types for embedded packets in RTP stream"
- "; values must be in the range 1 - 127",
- &pref_mtp2_rtp_payload_types,
- 127);
+ prefs_register_obsolete_preference(mtp2_module, "rtp_payload_type");
+
register_init_routine(&mtp2_init_routine);
}
@@ -1307,8 +1301,7 @@ void
proto_reg_handoff_mtp2(void)
{
dissector_handle_t mtp2_with_phdr_handle;
- static dissector_handle_t mtp2_bitstream_handle;
- static gboolean init = FALSE;
+ dissector_handle_t mtp2_bitstream_handle;
dissector_add_uint("wtap_encap", WTAP_ENCAP_MTP2, mtp2_handle);
mtp2_with_phdr_handle = create_dissector_handle(dissect_mtp2_with_phdr,
@@ -1318,18 +1311,10 @@ proto_reg_handoff_mtp2(void)
mtp3_handle = find_dissector_add_dependency("mtp3", proto_mtp2);
- if (!init) {
- mtp2_bitstream_handle = create_dissector_handle(dissect_mtp2_bitstream, proto_mtp2);
- dissector_add_string("rtp_dyn_payload_type", "MTP2", mtp2_bitstream_handle);
- init = TRUE;
- } else {
- dissector_delete_uint_range("rtp.pt", mtp2_rtp_payload_types, mtp2_bitstream_handle);
- wmem_free(wmem_epan_scope(), mtp2_rtp_payload_types);
- }
+ mtp2_bitstream_handle = create_dissector_handle(dissect_mtp2_bitstream, proto_mtp2);
+ dissector_add_string("rtp_dyn_payload_type", "MTP2", mtp2_bitstream_handle);
- mtp2_rtp_payload_types = range_copy(wmem_epan_scope(), pref_mtp2_rtp_payload_types);
- range_remove_value(wmem_epan_scope(), &mtp2_rtp_payload_types, 0);
- dissector_add_uint_range("rtp.pt", mtp2_rtp_payload_types, mtp2_bitstream_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", mtp2_bitstream_handle);
}
/*
diff --git a/epan/dissectors/packet-opus.c b/epan/dissectors/packet-opus.c
index 9451fed0a1..2c5a64dd88 100644
--- a/epan/dissectors/packet-opus.c
+++ b/epan/dissectors/packet-opus.c
@@ -25,8 +25,6 @@
void proto_reg_handoff_opus(void);
void proto_register_opus(void);
-static range_t *g_dynamic_payload_type_range = NULL;
-
static dissector_handle_t opus_handle;
/* Initialize the protocol and registered fields */
@@ -424,17 +422,12 @@ proto_register_opus(void)
proto_register_field_array(proto_opus, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- opus_module = prefs_register_protocol(proto_opus, proto_reg_handoff_opus);
+ opus_module = prefs_register_protocol(proto_opus, NULL);
expert_opus = expert_register_protocol(proto_opus);
expert_register_field_array(expert_opus, ei, array_length(ei));
- prefs_register_range_preference(opus_module, "dynamic.payload.type",
- "OPUS dynamic payload types",
- "Dynamic payload types which will be "
- "interpreted as OPUS; Values must be in "
- "the range 1 - 127",
- &g_dynamic_payload_type_range, 127);
+ prefs_register_obsolete_preference(opus_module, "dynamic.payload.type");
opus_handle = register_dissector("opus", dissect_opus, proto_opus);
}
@@ -442,20 +435,9 @@ proto_register_opus(void)
void
proto_reg_handoff_opus(void)
{
- static range_t *dynamic_payload_type_range = NULL;
- static gboolean opus_prefs_initialized = FALSE;
-
- if (!opus_prefs_initialized) {
- dissector_add_string("rtp_dyn_payload_type" , "OPUS", opus_handle);
- opus_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint_range("rtp.pt", dynamic_payload_type_range, opus_handle);
- wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
- }
+ dissector_add_string("rtp_dyn_payload_type" , "OPUS", opus_handle);
- dynamic_payload_type_range = range_copy(wmem_epan_scope(), g_dynamic_payload_type_range);
- range_remove_value(wmem_epan_scope(), &dynamic_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", dynamic_payload_type_range, opus_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", opus_handle);
}
/*
diff --git a/epan/dissectors/packet-rtp-events.c b/epan/dissectors/packet-rtp-events.c
index 7df82dfc0f..5c89fc035a 100644
--- a/epan/dissectors/packet-rtp-events.c
+++ b/epan/dissectors/packet-rtp-events.c
@@ -34,12 +34,8 @@
void proto_register_rtp_events(void);
void proto_reg_handoff_rtp_events(void);
-#define RTP_EVENT_DEFAULT_PT_RANGE "101"
-static range_t *rtp_event_payload_type_range = NULL;
-
-#define CISCO_NSE_DEFAULT_PT_RANGE "100"
-static range_t *cisco_nse_pt_range = NULL;
-
+/* 101 for RTP Event, 100 for Cisco NSE */
+#define RTP_EVENT_DEFAULT_PT_RANGE "100-101"
/* RTP Event Fields */
@@ -556,25 +552,9 @@ proto_register_rtp_events(void)
/* Register preferences */
- rtp_events_module = prefs_register_protocol (proto_rtp_events, proto_reg_handoff_rtp_events);
- range_convert_str(wmem_epan_scope(), &rtp_event_payload_type_range,
- RTP_EVENT_DEFAULT_PT_RANGE, 127);
- prefs_register_range_preference(rtp_events_module,
- "event_payload_type_value",
- "Payload Types for RFC2833 RTP Events",
- "Payload Types for RFC2833 RTP Events"
- "; values must be in the range 1 - 127",
- &rtp_event_payload_type_range, 127);
-
-
- range_convert_str(wmem_epan_scope(), &cisco_nse_pt_range,
- CISCO_NSE_DEFAULT_PT_RANGE, 127);
- prefs_register_range_preference(rtp_events_module,
- "cisco_nse_payload_type_value",
- "Payload Types for Cisco Named Signaling Events",
- "Payload Types for Cisco Named Signaling Events"
- "; values must be in the range 1 - 127",
- &cisco_nse_pt_range, 127);
+ rtp_events_module = prefs_register_protocol (proto_rtp_events, NULL);
+ prefs_register_obsolete_preference(rtp_events_module, "event_payload_type_value");
+ prefs_register_obsolete_preference(rtp_events_module, "cisco_nse_payload_type_value");
rtp_events_handle = register_dissector("rtpevent", dissect_rtp_events, proto_rtp_events);
rtp_event_tap = register_tap("rtpevent");
@@ -585,31 +565,9 @@ proto_register_rtp_events(void)
void
proto_reg_handoff_rtp_events(void)
{
- /* saved_payload_type_value is a temporary place to save */
- /* the value so we can properly reinitialize when the */
- /* settings get changed. */
- static range_t *saved_payload_type_range;
- static range_t *saved_cisco_nse_pt_range;
- static gboolean rtp_events_prefs_initialized = FALSE;
-
- if (!rtp_events_prefs_initialized) {
- dissector_add_string("rtp_dyn_payload_type", "telephone-event", rtp_events_handle);
- dissector_add_string("rtp_dyn_payload_type", "X-NSE", rtp_events_handle);
- rtp_events_prefs_initialized = TRUE;
- }
- else {
- dissector_delete_uint_range("rtp.pt", saved_payload_type_range, rtp_events_handle);
- dissector_delete_uint_range("rtp.pt", saved_cisco_nse_pt_range, rtp_events_handle);
- wmem_free(wmem_epan_scope(), saved_payload_type_range);
- wmem_free(wmem_epan_scope(), saved_cisco_nse_pt_range);
- }
-
- saved_payload_type_range = range_copy(wmem_epan_scope(), rtp_event_payload_type_range);
- saved_cisco_nse_pt_range = range_copy(wmem_epan_scope(), cisco_nse_pt_range);
- range_remove_value(wmem_epan_scope(), &saved_payload_type_range, 0);
- range_remove_value(wmem_epan_scope(), &saved_cisco_nse_pt_range, 0);
- dissector_add_uint_range("rtp.pt", saved_payload_type_range, rtp_events_handle);
- dissector_add_uint_range("rtp.pt", saved_cisco_nse_pt_range, rtp_events_handle);
+ dissector_add_string("rtp_dyn_payload_type", "telephone-event", rtp_events_handle);
+ dissector_add_string("rtp_dyn_payload_type", "X-NSE", rtp_events_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", RTP_EVENT_DEFAULT_PT_RANGE, rtp_events_handle);
}
/*
diff --git a/epan/dissectors/packet-rtp-midi.c b/epan/dissectors/packet-rtp-midi.c
index c5aeb1a5ea..071823a387 100644
--- a/epan/dissectors/packet-rtp-midi.c
+++ b/epan/dissectors/packet-rtp-midi.c
@@ -2883,10 +2883,6 @@ static gint ett_rtp_midi_sysex_common_nrt = -1;
static gint ett_rtp_midi_sysex_common_tune_note = -1;
-static range_t *rtp_midi_payload_type_range = NULL;
-static range_t *saved_payload_type_range = NULL;
-
-
static int proto_rtp_midi = -1;
@@ -10021,12 +10017,8 @@ proto_register_rtp_midi( void )
proto_register_field_array( proto_rtp_midi, hf, array_length( hf ) );
proto_register_subtree_array( ett, array_length( ett ) );
- rtp_midi_module = prefs_register_protocol( proto_rtp_midi, proto_reg_handoff_rtp_midi );
- prefs_register_range_preference( rtp_midi_module, "midi_payload_type_value",
- "Payload Types for RFC 4695/6295 RTP-MIDI",
- "Dynamic payload types which will be interpreted as RTP-MIDI"
- "; values must be in the range 1 - 127",
- &rtp_midi_payload_type_range, 127);
+ rtp_midi_module = prefs_register_protocol( proto_rtp_midi, NULL );
+ prefs_register_obsolete_preference( rtp_midi_module, "midi_payload_type_value");
rtp_midi_handle = register_dissector( RTP_MIDI_DISSECTOR_ABBREVIATION, dissect_rtp_midi, proto_rtp_midi );
}
@@ -10035,20 +10027,8 @@ proto_register_rtp_midi( void )
void
proto_reg_handoff_rtp_midi( void )
{
- static int rtp_midi_prefs_initialized = FALSE;
-
-
- if ( !rtp_midi_prefs_initialized ) {
- dissector_add_string("rtp_dyn_payload_type", "rtp-midi", rtp_midi_handle);
- rtp_midi_prefs_initialized = TRUE;
- }
- else {
- dissector_delete_uint_range( "rtp.pt", saved_payload_type_range, rtp_midi_handle );
- wmem_free(wmem_epan_scope(), saved_payload_type_range);
- }
- saved_payload_type_range = range_copy(wmem_epan_scope(), rtp_midi_payload_type_range);
- range_remove_value(wmem_epan_scope(), &saved_payload_type_range, 0);
- dissector_add_uint_range( "rtp.pt", saved_payload_type_range, rtp_midi_handle );
+ dissector_add_string("rtp_dyn_payload_type", "rtp-midi", rtp_midi_handle);
+ dissector_add_uint_range_with_preference( "rtp.pt", "", rtp_midi_handle );
}
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index ef21b28fe1..b137c19323 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -273,7 +273,6 @@ static gboolean desegment_rtp = TRUE;
/* RFC2198 Redundant Audio Data */
#define RFC2198_DEFAULT_PT_RANGE "99"
-static range_t *rtp_rfc2198_pt_range = NULL;
/* Proto data key values */
#define RTP_CONVERSATION_PROTO_DATA 0
@@ -3321,7 +3320,7 @@ proto_register_rtp(void)
rtp_hdr_ext_rfc5285_dissector_table = register_dissector_table("rtp.ext.rfc5285.id",
"RTP Generic header extension (RFC 5285)", proto_rtp, FT_UINT8, BASE_DEC);
- rtp_module = prefs_register_protocol(proto_rtp, proto_reg_handoff_rtp);
+ rtp_module = prefs_register_protocol(proto_rtp, NULL);
prefs_register_bool_preference(rtp_module, "show_setup_info",
"Show stream setup information",
@@ -3342,12 +3341,7 @@ proto_register_rtp(void)
"an invalid or ZRTP packet, a CLASSIC-STUN packet, or a T.38 packet",
&global_rtp_version0_type,
rtp_version0_types, FALSE);
- range_convert_str(wmem_epan_scope(), &rtp_rfc2198_pt_range, RFC2198_DEFAULT_PT_RANGE, 127);
- prefs_register_range_preference(rtp_module,
- "rfc2198_payload_type", "Payload Types for RFC2198",
- "Payload Types for RFC2198 Redundant Audio Data"
- "; values must be in the range 1-127",
- &rtp_rfc2198_pt_range, 127);
+ prefs_register_obsolete_preference(rtp_module, "rfc2198_payload_type");
reassembly_table_register(&rtp_reassembly_table,
&addresses_reassembly_table_functions);
@@ -3359,52 +3353,40 @@ proto_register_rtp(void)
void
proto_reg_handoff_rtp(void)
{
- static gboolean rtp_prefs_initialized = FALSE;
- static range_t *rtp_saved_rfc2198_pt_range = NULL;
+ dissector_add_for_decode_as("udp.port", rtp_handle);
+ dissector_add_for_decode_as("tcp.port", rtp_rfc4571_handle);
+ dissector_add_string("rtp_dyn_payload_type", "red", rtp_rfc2198_handle);
+ heur_dissector_add( "udp", dissect_rtp_heur, "RTP over UDP", "rtp_udp", proto_rtp, HEURISTIC_DISABLE);
+ heur_dissector_add("stun", dissect_rtp_heur, "RTP over TURN", "rtp_stun", proto_rtp, HEURISTIC_DISABLE);
+ heur_dissector_add("classicstun", dissect_rtp_heur, "RTP over CLASSICSTUN", "rtp_classicstun", proto_rtp, HEURISTIC_DISABLE);
+ heur_dissector_add("rtsp", dissect_rtp_heur, "RTP over RTSP", "rtp_rtsp", proto_rtp, HEURISTIC_DISABLE);
- if (!rtp_prefs_initialized) {
+ dissector_add_for_decode_as("flip.payload", rtp_handle );
- dissector_add_for_decode_as("udp.port", rtp_handle);
- dissector_add_for_decode_as("tcp.port", rtp_rfc4571_handle);
- dissector_add_string("rtp_dyn_payload_type", "red", rtp_rfc2198_handle);
- heur_dissector_add( "udp", dissect_rtp_heur, "RTP over UDP", "rtp_udp", proto_rtp, HEURISTIC_DISABLE);
- heur_dissector_add("stun", dissect_rtp_heur, "RTP over TURN", "rtp_stun", proto_rtp, HEURISTIC_DISABLE);
- heur_dissector_add("classicstun", dissect_rtp_heur, "RTP over CLASSICSTUN", "rtp_classicstun", proto_rtp, HEURISTIC_DISABLE);
- heur_dissector_add("rtsp", dissect_rtp_heur, "RTP over RTSP", "rtp_rtsp", proto_rtp, HEURISTIC_DISABLE);
- dissector_add_for_decode_as("flip.payload", rtp_handle );
+ rtcp_handle = find_dissector_add_dependency("rtcp", proto_rtp);
+ stun_handle = find_dissector_add_dependency("stun-udp", proto_rtp);
+ classicstun_handle = find_dissector_add_dependency("classicstun", proto_rtp);
+ classicstun_heur_handle = find_dissector_add_dependency("classicstun-heur", proto_rtp);
+ stun_heur_handle = find_dissector_add_dependency("stun-heur", proto_rtp);
+ t38_handle = find_dissector_add_dependency("t38_udp", proto_rtp);
+ zrtp_handle = find_dissector_add_dependency("zrtp", proto_rtp);
+ sprt_handle = find_dissector_add_dependency("sprt", proto_rtp);
+ v150fw_handle = find_dissector("v150fw");
- rtcp_handle = find_dissector_add_dependency("rtcp", proto_rtp);
- stun_handle = find_dissector_add_dependency("stun-udp", proto_rtp);
- classicstun_handle = find_dissector_add_dependency("classicstun", proto_rtp);
- classicstun_heur_handle = find_dissector_add_dependency("classicstun-heur", proto_rtp);
- stun_heur_handle = find_dissector_add_dependency("stun-heur", proto_rtp);
- t38_handle = find_dissector_add_dependency("t38_udp", proto_rtp);
- zrtp_handle = find_dissector_add_dependency("zrtp", proto_rtp);
+ bta2dp_content_protection_header_scms_t = find_dissector_add_dependency("bta2dp_content_protection_header_scms_t", proto_rtp);
+ btvdp_content_protection_header_scms_t = find_dissector_add_dependency("btvdp_content_protection_header_scms_t", proto_rtp);
+ bta2dp_handle = find_dissector_add_dependency("bta2dp", proto_rtp);
+ btvdp_handle = find_dissector_add_dependency("btvdp", proto_rtp);
+ sbc_handle = find_dissector_add_dependency("sbc", proto_rtp);
- sprt_handle = find_dissector_add_dependency("sprt", proto_rtp);
- v150fw_handle = find_dissector("v150fw");
+ dissector_add_string("rtp_dyn_payload_type", "v150fw", v150fw_handle);
+ dissector_add_for_decode_as("rtp.pt", v150fw_handle);
- bta2dp_content_protection_header_scms_t = find_dissector_add_dependency("bta2dp_content_protection_header_scms_t", proto_rtp);
- btvdp_content_protection_header_scms_t = find_dissector_add_dependency("btvdp_content_protection_header_scms_t", proto_rtp);
- bta2dp_handle = find_dissector_add_dependency("bta2dp", proto_rtp);
- btvdp_handle = find_dissector_add_dependency("btvdp", proto_rtp);
- sbc_handle = find_dissector_add_dependency("sbc", proto_rtp);
+ dissector_add_for_decode_as("btl2cap.cid", rtp_handle);
- dissector_add_string("rtp_dyn_payload_type", "v150fw", v150fw_handle);
- dissector_add_for_decode_as("rtp.pt", v150fw_handle);
-
- dissector_add_for_decode_as("btl2cap.cid", rtp_handle);
-
- rtp_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint_range("rtp.pt", rtp_saved_rfc2198_pt_range, rtp_rfc2198_handle);
- wmem_free(wmem_epan_scope(), rtp_saved_rfc2198_pt_range);
- }
- rtp_saved_rfc2198_pt_range = range_copy(wmem_epan_scope(), rtp_rfc2198_pt_range);
- range_remove_value(wmem_epan_scope(), &rtp_saved_rfc2198_pt_range, 0);
- dissector_add_uint_range("rtp.pt", rtp_saved_rfc2198_pt_range, rtp_rfc2198_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", RFC2198_DEFAULT_PT_RANGE, rtp_rfc2198_handle);
proto_sdp = proto_get_id_by_filter_name("sdp");
}
diff --git a/epan/dissectors/packet-vp8.c b/epan/dissectors/packet-vp8.c
index cfc12a3c72..d9edb3c30e 100644
--- a/epan/dissectors/packet-vp8.c
+++ b/epan/dissectors/packet-vp8.c
@@ -45,8 +45,6 @@ void proto_register_vp8(void);
#define BIT_EXT_PICTURE_MASK 0x7FFF
#define BIT_PARTITION_SIZE_MASK 0xE0FFFF
-static range_t *temp_dynamic_payload_type_range = NULL;
-
static dissector_handle_t vp8_handle;
/* Initialize the protocol and registered fields */
@@ -571,16 +569,12 @@ proto_register_vp8(void)
proto_register_field_array(proto_vp8, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- vp8_module = prefs_register_protocol(proto_vp8, proto_reg_handoff_vp8);
+ vp8_module = prefs_register_protocol(proto_vp8, NULL);
expert_vp8 = expert_register_protocol(proto_vp8);
expert_register_field_array(expert_vp8, ei, array_length(ei));
- prefs_register_range_preference(vp8_module, "dynamic.payload.type",
- "vp8 dynamic payload types",
- "Dynamic payload types which will be interpreted as vp8"
- "; Values must be in the range 1 - 127",
- &temp_dynamic_payload_type_range, 127);
+ prefs_register_obsolete_preference(vp8_module, "dynamic.payload.type");
vp8_handle = register_dissector("vp8", dissect_vp8, proto_vp8);
}
@@ -588,20 +582,9 @@ proto_register_vp8(void)
void
proto_reg_handoff_vp8(void)
{
- static range_t *dynamic_payload_type_range = NULL;
- static gboolean vp8_prefs_initialized = FALSE;
-
- if (!vp8_prefs_initialized) {
- dissector_add_string("rtp_dyn_payload_type" , "VP8", vp8_handle);
- vp8_prefs_initialized = TRUE;
- } else {
- dissector_delete_uint_range("rtp.pt", dynamic_payload_type_range, vp8_handle);
- wmem_free(wmem_epan_scope(), dynamic_payload_type_range);
- }
+ dissector_add_string("rtp_dyn_payload_type" , "VP8", vp8_handle);
- dynamic_payload_type_range = range_copy(wmem_epan_scope(), temp_dynamic_payload_type_range);
- range_remove_value(wmem_epan_scope(), &dynamic_payload_type_range, 0);
- dissector_add_uint_range("rtp.pt", dynamic_payload_type_range, vp8_handle);
+ dissector_add_uint_range_with_preference("rtp.pt", "", vp8_handle);
}
/*
diff --git a/epan/prefs.c b/epan/prefs.c
index bd86f5a82d..3dd0408f1e 100644
--- a/epan/prefs.c
+++ b/epan/prefs.c
@@ -5200,8 +5200,8 @@ deprecated_port_pref(gchar *pref_name, const gchar *value)
const char* pref_name;
};
- /* For now this is only supporting TCP/UDP port dissector preferences
- which are assumed to be decimal */
+ /* For now this is only supporting TCP/UDP port and RTP payload
+ * types dissector preferences, which are assumed to be decimal */
/* module_name is the filter name of the destination port preference,
* which is usually the same as the original module but not
* necessarily (e.g., if the preference is for what is now a PINO.)
@@ -5293,6 +5293,25 @@ deprecated_port_pref(gchar *pref_name, const gchar *value)
{"sscop.udp.ports", "sscop", "udp.port", 10},
{"tftp.udp_ports", "tftp", "udp.port", 10},
{"tipc.udp.ports", "tipc", "udp.port", 10},
+ /* RTP */
+ {"amr.dynamic.payload.type", "amr", "rtp.pt", 10},
+ {"amr.wb.dynamic.payload.type", "amr_wb", "rtp.pt", 10},
+ {"dvb-s2_modeadapt.dynamic.payload.type", "dvb-s2_modeadapt", "rtp.pt", 10},
+ {"evs.dynamic.payload.type", "evs", "rtp.pt", 10},
+ {"h263p.dynamic.payload.type", "h263p", "rtp.pt", 10},
+ {"h264.dynamic.payload.type", "h264", "rtp.pt", 10},
+ {"h265.dynamic.payload.type", "h265", "rtp.pt", 10},
+ {"ismacryp.dynamic.payload.type", "ismacryp", "rtp.pt", 10},
+ {"iuup.dynamic.payload.type", "iuup", "rtp.pt", 10},
+ {"lapd.rtp_payload_type", "lapd", "rtp.pt", 10},
+ {"mp4ves.dynamic.payload.type", "mp4ves", "rtp.pt", 10},
+ {"mtp2.rtp_payload_type", "mtp2", "rtp.pt", 10},
+ {"opus.dynamic.payload.type", "opus", "rtp.pt", 10},
+ {"rtp.rfc2198_payload_type", "rtp_rfc2198", "rtp.pt", 10},
+ {"rtpevent.event_payload_type_value", "rtpevent", "rtp.pt", 10},
+ {"rtpevent.cisco_nse_payload_type_value", "rtpevent", "rtp.pt", 10},
+ {"rtpmidi.midi_payload_type_value", "rtpmidi", "rtp.pt", 10},
+ {"vp8.dynamic.payload.type", "vp8", "rtp.pt", 10},
};
/* These are subdissectors of TPKT/OSITP that used to have a