aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/mpeg-pes/mpeg-pes.asn
blob: caec6f2dc8abcf9771f9f2a2917fa7f38036559f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
-- ASN description of MPEG Packetized Elementary Stream (PES)
-- Written by Shaun Jackman <sjackman@gmail.com>
-- Copyright 2007 Shaun Jackman
--
-- This program is free software; you can redistribute it and/or
-- modify it under the terms of the GNU General Public License.

MPEG DEFINITIONS ::= BEGIN

PES ::= SEQUENCE {
	prefix OCTET STRING (SIZE (3)),
	stream INTEGER {
		picture (0),
		sequence-header (179),
		sequence-header-extension (181),
		group-of-pictures (184),
		program-end (185),
		pack-header (186),
		system-header (187),
		program-stream-map (188),
		private-stream-1 (189),
		padding-stream (190),
		private-stream-2 (191),
		audio-stream (192),
		video-stream (224)
	} (0..255)
}

Stream ::= SEQUENCE {
	length INTEGER (0..65535),
	must-be-one BOOLEAN,
	must-be-zero BOOLEAN,
	scrambling-control INTEGER {
		not-scrambled (0)
	} (0..3),
	priority BOOLEAN,
	data-alignment BOOLEAN,
	copyright BOOLEAN,
	original BOOLEAN,
	pts-flag BOOLEAN,
	dts-flag BOOLEAN,
	escr-flag BOOLEAN,
	es-rate-flag BOOLEAN,
	dsm-trick-mode-flag BOOLEAN,
	additional-copy-info-flag BOOLEAN,
	crc-flag BOOLEAN,
	extension-flag BOOLEAN,
	header-data-length INTEGER (0..255)
}

Sequence-header ::= SEQUENCE {
	horizontal-size BIT STRING (SIZE (12)),
	vertical-size BIT STRING (SIZE (12)),
	aspect-ratio INTEGER {
		aspect-1to1 (1),
		aspect-4to3 (2),
		aspect-16to9 (3),
		aspect-2-21to1 (4)
	} (0..15),
	frame-rate ENUMERATED {
		reserved (0),
		fr (23976),
		fr (24000),
		fr (25000),
		fr (29970),
		fr (30000),
		fr (50000),
		fr (59940),
		fr (60000)
	},
	bit-rate BIT STRING (SIZE (18)),
	must-be-one BOOLEAN,
	vbv-buffer-size BIT STRING (SIZE (10)),
	constrained-parameters-flag BOOLEAN,
	load-intra-quantiser-matrix BOOLEAN,
	load-non-intra-quantiser-matrix BOOLEAN
}

Sequence-extension ::= SEQUENCE {
	must-be-0001 BIT STRING (SIZE (4)),
	profile-and-level INTEGER (0..255),
	progressive-sequence BOOLEAN,
	chroma-format INTEGER (0..3),
	horizontal-size-extension INTEGER (0..3),
	vertical-size-extension INTEGER (0..3),
	bit-rate-extension BIT STRING (SIZE (12)),
	must-be-one BOOLEAN,
	vbv-buffer-size-extension INTEGER (0..255),
	low-delay BOOLEAN,
	frame-rate-extension-n INTEGER (0..3),
	frame-rate-extension-d INTEGER (0..3)
}

Group-of-pictures ::= SEQUENCE {
	drop-frame-flag BOOLEAN,
	hour INTEGER (0..32),
	minute INTEGER (0..64),
	must-be-one BOOLEAN,
	second INTEGER (0..64),
	frame INTEGER (0..64),
	closed-gop BOOLEAN,
	broken-gop BOOLEAN,
	must-be-zero BIT STRING (SIZE (5))
}

Picture ::= SEQUENCE {
	temporal-sequence-number BIT STRING (SIZE (10)),
	frame-type INTEGER {
		i-frame (1),
		p-frame (2),
		b-frame (3),
		d-frame (4)
	} (0..7),
	vbv-delay BIT STRING (SIZE (16))
}

END