aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mpeg-descriptor.c
diff options
context:
space:
mode:
authorMartin Kaiser <wireshark@kaiser.cx>2013-10-07 15:22:08 +0000
committerMartin Kaiser <wireshark@kaiser.cx>2013-10-07 15:22:08 +0000
commitdaba11a478cddd96411a2d34bbb8ea8e66e0fb8a (patch)
tree90d1bfbbfdace087d27d3f24fd1a5290e1ba21c3 /epan/dissectors/packet-mpeg-descriptor.c
parentf9da278d6c2c9b4a1afeb04c2f25bacebb4be5fc (diff)
dissect mpeg registration descriptor
svn path=/trunk/; revision=52437
Diffstat (limited to 'epan/dissectors/packet-mpeg-descriptor.c')
-rw-r--r--epan/dissectors/packet-mpeg-descriptor.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/epan/dissectors/packet-mpeg-descriptor.c b/epan/dissectors/packet-mpeg-descriptor.c
index cb035e2e9d..a4ef8fd12e 100644
--- a/epan/dissectors/packet-mpeg-descriptor.c
+++ b/epan/dissectors/packet-mpeg-descriptor.c
@@ -275,6 +275,25 @@ proto_mpeg_descriptor_dissect_audio_stream(tvbuff_t *tvb, guint offset, proto_tr
proto_tree_add_item(tree, hf_mpeg_descr_audio_stream_reserved, tvb, offset, 1, ENC_BIG_ENDIAN);
}
+/* 0x05 Registration Descriptor */
+static int hf_mpeg_descr_reg_form_id = -1;
+static int hf_mpeg_descr_reg_add_id_inf = -1;
+
+static void
+proto_mpeg_descriptor_dissect_registration(tvbuff_t *tvb, guint offset, guint len, proto_tree *tree)
+{
+ guint offset_start;
+
+ offset_start = offset;
+ proto_tree_add_item(tree, hf_mpeg_descr_reg_form_id, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
+
+ while (offset-offset_start<len) {
+ proto_tree_add_item(tree, hf_mpeg_descr_reg_add_id_inf, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+ }
+}
+
/* 0x06 Data Stream Alignment Descriptor */
static int hf_mpeg_descr_data_stream_alignment = -1;
@@ -2653,6 +2672,9 @@ proto_mpeg_descriptor_dissect(tvbuff_t *tvb, guint offset, proto_tree *tree)
case 0x03: /* Audio Stream Descriptor */
proto_mpeg_descriptor_dissect_audio_stream(tvb, offset, descriptor_tree);
break;
+ case 0x05: /* Registration Descriptor */
+ proto_mpeg_descriptor_dissect_registration(tvb, offset, len, descriptor_tree);
+ break;
case 0x06: /* Data Stream Alignment Descriptor */
proto_mpeg_descriptor_dissect_data_stream_alignment(tvb, offset, descriptor_tree);
break;
@@ -2927,6 +2949,17 @@ proto_register_mpeg_descriptor(void)
FT_UINT8, BASE_HEX, NULL, MPEG_DESCR_AUDIO_STREAM_RESERVED_MASK, NULL, HFILL
} },
+ /* 0x05 Registration Descriptor */
+ { &hf_mpeg_descr_reg_form_id, {
+ "Format identifier", "mpeg_descr.registration.format_identifier",
+ FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL
+ } },
+
+ { &hf_mpeg_descr_reg_add_id_inf, {
+ "Additional identification info", "mpeg_descr.registration.add_id_info",
+ FT_UINT8, BASE_HEX, NULL, 0, NULL, HFILL
+ } },
+
/* 0x06 Data Stream Alignment Descriptor */
{ &hf_mpeg_descr_data_stream_alignment, {
"Data Stream Alignment", "mpeg_descr.data_stream_alignment.alignment",