diff options
author | Martin Kaiser <wireshark@kaiser.cx> | 2014-02-26 12:10:02 +0300 |
---|---|---|
committer | Martin Kaiser <wireshark@kaiser.cx> | 2014-03-03 15:23:29 +0000 |
commit | 0156add5e90c3c0e17e0612e884b1ccb2c35fe05 (patch) | |
tree | 4e6d7a436dc50c0122bc4150f3463373b5ebef11 /epan/dissectors/packet-mpeg-descriptor.c | |
parent | 070ae3084221684872db5902d04209fa550fb25f (diff) |
service provider name is a DVB-SI string
Change-Id: Idea44f0e4678f738336215f4a250b9e9d9a60fbc
Reviewed-on: https://code.wireshark.org/review/456
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Diffstat (limited to 'epan/dissectors/packet-mpeg-descriptor.c')
-rw-r--r-- | epan/dissectors/packet-mpeg-descriptor.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/epan/dissectors/packet-mpeg-descriptor.c b/epan/dissectors/packet-mpeg-descriptor.c index cdde338fbc..9b8a668b69 100644 --- a/epan/dissectors/packet-mpeg-descriptor.c +++ b/epan/dissectors/packet-mpeg-descriptor.c @@ -967,6 +967,7 @@ proto_mpeg_descriptor_dissect_bouquet_name(tvbuff_t *tvb, guint offset, guint le /* 0x48 Service Descriptor */ 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_name_encoding = -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; @@ -1017,7 +1018,11 @@ proto_mpeg_descriptor_dissect_service(tvbuff_t *tvb, guint offset, proto_tree *t proto_tree_add_item(tree, hf_mpeg_descr_service_provider_name_length, tvb, offset, 1, ENC_BIG_ENDIAN); offset += 1; - proto_tree_add_item(tree, hf_mpeg_descr_service_provider, tvb, offset, descr_len, ENC_ASCII|ENC_NA); + enc_len = dvb_analyze_string_charset(tvb, offset, descr_len, &encoding); + dvb_add_chartbl(tree, hf_mpeg_descr_service_provider_name_encoding, tvb, offset, enc_len, encoding); + + proto_tree_add_item(tree, hf_mpeg_descr_service_provider, + tvb, offset+enc_len, descr_len-enc_len, dvb_enc_to_item_enc(encoding)); offset += descr_len; name_len = tvb_get_guint8(tvb, offset); @@ -3411,9 +3416,14 @@ proto_register_mpeg_descriptor(void) FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL } }, + { &hf_mpeg_descr_service_provider_name_encoding, { + "Provider Name Encoding", "mpeg_descr.svc.provider_name_enc", + FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL + } }, + { &hf_mpeg_descr_service_provider, { "Service Provider Name", "mpeg_descr.svc.provider_name", - FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL + FT_STRING, STR_UNICODE, NULL, 0, NULL, HFILL } }, { &hf_mpeg_descr_service_name_length, { |