Merge some MPC-HC Rev.3895 code to get HdmvSub and DVBSub support.
[xy_vsfilter.git] / src / dsutil / Mpeg2Def.h
blobd69541eb93f4b0ded8f534d9a58e5dda397f960c
1 /*
2 * $Id: Mpeg2Def.h 3526 2011-08-01 15:46:29Z XhmikosR $
4 * (C) 2006-2010 see AUTHORS
6 * This file is part of mplayerc.
8 * Mplayerc is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 3 of the License, or
11 * (at your option) any later version.
13 * Mplayerc is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #pragma once
26 enum PES_STREAM_TYPE {
27 INVALID = 0,
28 VIDEO_STREAM_MPEG1 = 0x01,
29 VIDEO_STREAM_MPEG2 = 0x02, // ITU-T Rec. H.262 | ISO/IEC 13818-2 Video or ISO/IEC 11172-2 constrained parameter video stream
30 AUDIO_STREAM_MPEG1 = 0x03, // all layers including mp3 (ISO/IEC 11172-3 Audio)
31 AUDIO_STREAM_MPEG2 = 0x04, // ISO/IEC 13818-3 Audio
32 PRIVATE = 0x05, // ITU-T Rec. H.222.0 | ISO/IEC 13818-1 private_sections
33 PES_PRIVATE = 0x06, // ITU-T Rec. H.222.0 | ISO/IEC 13818-1 PES packets containing private data
34 PES_07 = 0x07, // ISO/IEC 13522 MHEG
35 PES_08 = 0x08, // ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Annex A DSM-CC
36 PES_09 = 0x09, // ITU-T Rec. H.222.1
37 PES_0a = 0x0a, // ISO/IEC 13818-6 type A
38 PES_0b = 0x0b, // ISO/IEC 13818-6 type B
39 PES_0c = 0x0c, // ISO/IEC 13818-6 type C
40 PES_0d = 0x0d, // ISO/IEC 13818-6 type D
41 PES_0e = 0x0e, // ITU-T Rec. H.222.0 | ISO/IEC 13818-1 auxiliary
42 PES_0f = 0x0f, // ISO/IEC 13818-7 Audio with ADTS transport syntax
43 PES_10 = 0x10, // ISO/IEC 14496-2 Visual
44 AUDIO_STREAM_AAC_LATM = 0x11, // ISO/IEC 14496-3 Audio with the LATM transport syntax as defined in ISO/IEC 14496-3 / AMD 1
45 PES_12 = 0x12, // ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in PES packets
46 PES_13 = 0x13, // ISO/IEC 14496-1 SL-packetized stream or FlexMux stream carried in ISO/IEC14496_sections.
47 PES_14 = 0x14, // ISO/IEC 13818-6 Synchronized Download Protocol
48 METADATA_PES_PACKETS = 0x15, // Metadata carried in PES packets
49 METADATA_SECTIONS = 0X16, // Metadata carried in metadata_sections
50 DATA_CAROUSEL = 0x17, // Metadata carried in ISO/IEC 13818-6 Data Carousel
51 OBJECT_CAROUSEL = 0x18, // Metadata carried in ISO/IEC 13818-6 Object Carousel
52 SYNCHRONIZED_DOWNLOAD = 0x19, // Metadata carried in ISO/IEC 13818-6 Synchronized Download Protocol
53 IPMP = 0x1A, // IPMP stream (defined in ISO/IEC 13818-11, MPEG-2 IPMP)
54 VIDEO_STREAM_H264 = 0x1B, // AVC video stream conforming to one or more profiles defined in Annex A of ITU-T Rec. H.264
55 PES_1C = 0x1C, // ISO/IEC 14496-3 Audio, without using any additional transport syntax, such as DST, ALS and SLS
56 TEXT = 0x1D, // ISO/IEC 14496-17 Text
57 AUXILIARY_VIDEO_STREAM = 0x1E, // Auxiliary video stream as defined in ISO/IEC 23002-3
58 SVC_H264 = 0x1F, // SVC video sub-bitstream of an AVC video stream conforming to one or more profiles defined in Annex G of ITU-T Rec. H.264 | ISO/IEC 14496-10
59 MVC_H264 = 0x20, // MVC video sub-bitstream of an AVC video stream conforming to one or more profiles defined in Annex H of ITU-T Rec. H.264 | ISO/IEC 14496-10
60 AUDIO_STREAM_LPCM = 0x80,
61 AUDIO_STREAM_AC3 = 0x81,
62 AUDIO_STREAM_DTS = 0x82,
63 AUDIO_STREAM_AC3_TRUE_HD = 0x83,
64 AUDIO_STREAM_AC3_PLUS = 0x84,
65 AUDIO_STREAM_DTS_HD = 0x85,
66 AUDIO_STREAM_DTS_HD_MASTER_AUDIO = 0x86,
67 PRESENTATION_GRAPHICS_STREAM = 0x90,
68 INTERACTIVE_GRAPHICS_STREAM = 0x91,
69 SUBTITLE_STREAM = 0x92,
70 SECONDARY_AUDIO_AC3_PLUS = 0xa1,
71 SECONDARY_AUDIO_DTS_HD = 0xa2,
72 VIDEO_STREAM_VC1 = 0xea
75 enum MPEG2_PID {
76 PID_PAT = 0x000, // Program Association Table
77 PID_CAT = 0x001, // Conditional Access Table
78 PID_TSDT = 0x002, // Transport Stream Description Table
79 PID_NIT = 0x010, // Network Identification Table
80 PID_BAT = 0x011, // Bouquet Association Table ou ...
81 PID_SDT = 0x011, // Service Description Table
82 PID_EIT = 0x012, // Event Information Table
83 PID_RST = 0x013, // Running Status Tection
84 PID_TDT = 0x014, // Time and Date Table ou ...
85 PID_TOT = 0x014, // Time Offset Table
86 PID_SFN = 0x015, // SFN/MIP synchronisation
87 PID_DIT = 0x01e,
88 PID_SIT = 0x01f,
89 PID_NULL = 0x1fff // Null packet
92 enum DVB_SI {
93 SI_undef = -1,
94 SI_PAT = 0x00,
95 SI_CAT = 0x01,
96 SI_PMT = 0x02,
97 SI_DSMCC_a = 0x3a,
98 SI_DSMCC_b = 0x3b,
99 SI_DSMCC_c = 0x3c,
100 SI_DSMCC_d = 0x3d,
101 SI_DSMCC_e = 0x3e,
102 SI_DSMCC_f = 0x3f,
103 SI_NIT = 0x40,
104 SI_SDT = 0x42,
105 SI_EIT_act = 0x4e,
106 SI_EIT_oth = 0x4f,
107 SI_EIT_as0, SI_EIT_as1, SI_EIT_as2, SI_EIT_as3, SI_EIT_as4, SI_EIT_as5, SI_EIT_as6, SI_EIT_as7,
108 SI_EIT_as8, SI_EIT_as9, SI_EIT_asa, SI_EIT_asb, SI_EIT_asc, SI_EIT_asd, SI_EIT_ase, SI_EIT_asf,
109 SI_EIT_os0, SI_EIT_os1, SI_EIT_os2, SI_EIT_os3, SI_EIT_os4, SI_EIT_os5, SI_EIT_os6, SI_EIT_os7,
110 SI_EIT_os8, SI_EIT_os9, SI_EIT_osa, SI_EIT_osb, SI_EIT_osc, SI_EIT_osd, SI_EIT_ose, SI_EIT_osf
113 enum MPEG2_DESCRIPTOR {
114 // http://www.coolstf.com/tsreader/descriptors.html
115 DT_VIDEO_STREAM = 0x02,
116 DT_AUDIO_STREAM = 0x03,
117 DT_HIERARCHY = 0x04,
118 DT_REGISTRATION = 0x05,
119 DT_DATA_STREAM_ALIGNMENT = 0x06,
120 DT_TARGET_BACKGROUND_GRID = 0x07,
121 DT_VIDEO_WINDOW = 0x08,
122 DT_CONDITIONAL_ACCESS = 0x09,
123 DT_ISO_639_LANGUAGE = 0x0a,
124 DT_SYSTEM_CLOCK = 0x0b,
125 DT_MULTIPLEX_BUFFER_UTIL = 0x0c,
126 DT_COPYRIGHT_DESCRIPTOR = 0x0d,
127 DT_MAXIMUM_BITRATE = 0x0e,
128 DT_PRIVATE_DATA_INDICATOR = 0x0f,
129 DT_SMOOTHING_BUFFER = 0x10,
130 DT_STD = 0x11, // System Target Decoder ?
131 DT_IBP = 0x12,
132 DT_NETWORK_NAME = 0x40,
133 DT_SERVICE_LIST = 0x41,
134 DT_VBI_DATA = 0x45,
135 DT_SERVICE = 0x48,
136 DT_LINKAGE = 0x4a,
137 DT_SHORT_EVENT = 0x4d,
138 DT_EXTENDED_EVENT = 0x4e,
139 DT_COMPONENT = 0x50,
140 DT_STREAM_IDENTIFIER = 0x52,
141 DT_CONTENT = 0x54,
142 DT_PARENTAL_RATING = 0x55,
143 DT_TELETEXT = 0x56,
144 DT_SUBTITLING = 0x59,
145 DT_TERRESTRIAL_DELIV_SYS = 0x5a,
146 DT_PRIVATE_DATA = 0x5f,
148 DT_DATA_BROADCAST_ID = 0x66,
149 DT_AC3_AUDIO = 0x6a, // DVB
150 DT_EXTENDED_AC3_AUDIO = 0x7a,
152 DT_AC3_AUDIO__2 = 0x81, // DCII ou ATSC
153 DT_LOGICAL_CHANNEL = 0x83,
154 DT_HD_SIMCAST_LOG_CHANNEL = 0x88
157 extern const wchar_t *StreamTypeToName(PES_STREAM_TYPE _Type);