diff --git a/epan/dissectors/packet-mpeg-descriptor.c b/epan/dissectors/packet-mpeg-descriptor.c index 38a24819bc..cdde338fbc 100644 --- a/epan/dissectors/packet-mpeg-descriptor.c +++ b/epan/dissectors/packet-mpeg-descriptor.c @@ -969,6 +969,7 @@ static int hf_mpeg_descr_service_type = -1; static int hf_mpeg_descr_service_provider_name_length = -1; static int hf_mpeg_descr_service_provider = -1; static int hf_mpeg_descr_service_name_length = -1; +static int hf_mpeg_descr_service_name_encoding = -1; static int hf_mpeg_descr_service_name = -1; static const value_string mpeg_descr_service_type_vals[] = { @@ -1005,7 +1006,9 @@ value_string_ext mpeg_descr_service_type_vals_ext = VALUE_STRING_EXT_INIT(mpeg_d static void proto_mpeg_descriptor_dissect_service(tvbuff_t *tvb, guint offset, proto_tree *tree) { - guint8 descr_len, name_len; + guint8 descr_len, name_len; + guint enc_len; + dvb_encoding_e encoding; proto_tree_add_item(tree, hf_mpeg_descr_service_type, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; @@ -1021,7 +1024,11 @@ proto_mpeg_descriptor_dissect_service(tvbuff_t *tvb, guint offset, proto_tree *t proto_tree_add_item(tree, hf_mpeg_descr_service_name_length, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; - proto_tree_add_item(tree, hf_mpeg_descr_service_name, tvb, offset, name_len, ENC_ASCII|ENC_NA); + enc_len = dvb_analyze_string_charset(tvb, offset, name_len, &encoding); + dvb_add_chartbl(tree, hf_mpeg_descr_service_name_encoding, tvb, offset, enc_len, encoding); + + proto_tree_add_item(tree, hf_mpeg_descr_service_name, + tvb, offset+enc_len, name_len-enc_len, dvb_enc_to_item_enc(encoding)); } @@ -3414,9 +3421,14 @@ proto_register_mpeg_descriptor(void) FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL } }, + { &hf_mpeg_descr_service_name_encoding, { + "Service Name Encoding", "mpeg_descr.svc.svn_name_enc", + FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL + } }, + { &hf_mpeg_descr_service_name, { "Service Name", "mpeg_descr.svc.svc_name", - FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL + FT_STRING, STR_UNICODE, NULL, 0, NULL, HFILL } }, /* 0x4A Linkage Descriptor */