1-- ASN description of MPEG Packetized Elementary Stream (PES) 2-- Written by Shaun Jackman <sjackman@gmail.com> 3-- Copyright 2007 Shaun Jackman 4-- 5-- This program is free software; you can redistribute it and/or 6-- modify it under the terms of the GNU General Public License. 7 8MPEG DEFINITIONS ::= BEGIN 9 10PES ::= SEQUENCE { 11 prefix OCTET STRING (SIZE (3)), 12 stream INTEGER { 13 picture (0), 14 sequence-header (179), 15 sequence-header-extension (181), 16 group-of-pictures (184), 17 program-end (185), 18 pack-header (186), 19 system-header (187), 20 program-stream-map (188), 21 private-stream-1 (189), 22 padding-stream (190), 23 private-stream-2 (191), 24 audio-stream (192), 25 video-stream (224) 26 } (0..255) 27} 28 29Stream ::= SEQUENCE { 30 length INTEGER (0..65535), 31 must-be-one BOOLEAN, 32 must-be-zero BOOLEAN, 33 scrambling-control INTEGER { 34 not-scrambled (0) 35 } (0..3), 36 priority BOOLEAN, 37 data-alignment BOOLEAN, 38 copyright BOOLEAN, 39 original BOOLEAN, 40 pts-flag BOOLEAN, 41 dts-flag BOOLEAN, 42 escr-flag BOOLEAN, 43 es-rate-flag BOOLEAN, 44 dsm-trick-mode-flag BOOLEAN, 45 additional-copy-info-flag BOOLEAN, 46 crc-flag BOOLEAN, 47 extension-flag BOOLEAN, 48 header-data-length INTEGER (0..255) 49} 50 51Sequence-header ::= SEQUENCE { 52 horizontal-size BIT STRING (SIZE (12)), 53 vertical-size BIT STRING (SIZE (12)), 54 aspect-ratio INTEGER { 55 aspect-1to1 (1), 56 aspect-4to3 (2), 57 aspect-16to9 (3), 58 aspect-2-21to1 (4) 59 } (0..15), 60 frame-rate ENUMERATED { 61 reserved (0), 62 fr (23976), 63 fr (24000), 64 fr (25000), 65 fr (29970), 66 fr (30000), 67 fr (50000), 68 fr (59940), 69 fr (60000) 70 }, 71 bit-rate BIT STRING (SIZE (18)), 72 must-be-one BOOLEAN, 73 vbv-buffer-size BIT STRING (SIZE (10)), 74 constrained-parameters-flag BOOLEAN, 75 load-intra-quantiser-matrix BOOLEAN, 76 load-non-intra-quantiser-matrix BOOLEAN 77} 78 79Sequence-extension ::= SEQUENCE { 80 must-be-0001 BIT STRING (SIZE (4)), 81 profile-and-level INTEGER (0..255), 82 progressive-sequence BOOLEAN, 83 chroma-format INTEGER (0..3), 84 horizontal-size-extension INTEGER (0..3), 85 vertical-size-extension INTEGER (0..3), 86 bit-rate-extension BIT STRING (SIZE (12)), 87 must-be-one BOOLEAN, 88 vbv-buffer-size-extension INTEGER (0..255), 89 low-delay BOOLEAN, 90 frame-rate-extension-n INTEGER (0..3), 91 frame-rate-extension-d INTEGER (0..3) 92} 93 94Group-of-pictures ::= SEQUENCE { 95 drop-frame-flag BOOLEAN, 96 hour INTEGER (0..32), 97 minute INTEGER (0..64), 98 must-be-one BOOLEAN, 99 second INTEGER (0..64), 100 frame INTEGER (0..64), 101 closed-gop BOOLEAN, 102 broken-gop BOOLEAN, 103 must-be-zero BIT STRING (SIZE (5)) 104} 105 106Picture ::= SEQUENCE { 107 temporal-sequence-number BIT STRING (SIZE (10)), 108 frame-type INTEGER { 109 i-frame (1), 110 p-frame (2), 111 b-frame (3), 112 d-frame (4) 113 } (0..7), 114 vbv-delay BIT STRING (SIZE (16)) 115} 116 117END 118