aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mpeg-descriptor.c
diff options
context:
space:
mode:
authorMartin Kaiser <wireshark@kaiser.cx>2014-02-25 22:04:19 +0300
committerMartin Kaiser <wireshark@kaiser.cx>2014-03-03 15:22:10 +0000
commit070ae3084221684872db5902d04209fa550fb25f (patch)
tree8abc3a014a187f23251c1d681057376e6f7aacf3 /epan/dissectors/packet-mpeg-descriptor.c
parenta79fbf039768a3da0402d492c77b64c7f76c2345 (diff)
service name is a DVB-SI string
Change-Id: I81ef4cd363acf6cff99fd0f75b135962c4c22f53 Reviewed-on: https://code.wireshark.org/review/455 Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Diffstat (limited to 'epan/dissectors/packet-mpeg-descriptor.c')
-rw-r--r--epan/dissectors/packet-mpeg-descriptor.c18
1 files changed, 15 insertions, 3 deletions
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 */