~ubuntu-branches/ubuntu/hoary/kdemultimedia/hoary

« back to all changes in this revision

Viewing changes to mpeglib/lib/mpegplay/mpegSystemHeader.h

  • Committer: Bazaar Package Importer
  • Author(s): Martin Schulze
  • Date: 2003-01-22 15:00:51 UTC
  • Revision ID: james.westby@ubuntu.com-20030122150051-uihwkdoxf15mi1tn
Tags: upstream-2.2.2
ImportĀ upstreamĀ versionĀ 2.2.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
  stores info about system stream and sends data to audio/video
 
3
  Copyright (C) 2000  Martin Vogt
 
4
 
 
5
  This program is free software; you can redistribute it and/or modify
 
6
  it under the terms of the GNU Library General Public License as published by
 
7
  the Free Software Foundation.
 
8
 
 
9
  For more information look at the file COPYRIGHT in this package
 
10
 
 
11
 */
 
12
 
 
13
 
 
14
 
 
15
 
 
16
#ifndef __MPEGSYSTEMHEADER_H
 
17
#define __MPEGSYSTEMHEADER_H
 
18
 
 
19
 
 
20
 
 
21
#define _PACKET_SYSLAYER            1
 
22
#define _PACKET_NO_SYSLAYER         0
 
23
#define _PACKET_UNKNOWN_LAYER      -1
 
24
#define _PACKET_HEADER_SIZE 8
 
25
 
 
26
 
 
27
// note: packetid 1 & 2 are normalized to _PAKET_ID_AUDIO
 
28
// see packet.cpp
 
29
 
 
30
#define _PAKET_ID_AUDIO_1    ((unsigned char) 0xc0)
 
31
#define _PAKET_ID_AUDIO_2    ((unsigned char) 0xd0)
 
32
#define _PAKET_ID_VIDEO      ((unsigned char) 0xe0)
 
33
#define _PAKET_ID_NUKE       ((unsigned char) 0x0)
 
34
  
 
35
#define _STD_SYSTEM_CLOCK_FREQ (unsigned long)90000
 
36
#define _MUX_RATE_SCALE_FACTOR 50
 
37
#define _MAX_STREAMS 8
 
38
#define _NOT_PACKET_ID       ((unsigned char) 0xff)
 
39
#define _KILL_BUFFER         ((unsigned char) 0xfe)
 
40
 
 
41
 
 
42
  
 
43
#define _STD_AUDIO_STREAM_ID          ((unsigned char) 0xb8)
 
44
#define _STD_VIDEO_STREAM_ID          ((unsigned char) 0xb9)
 
45
#define _MIN_STREAM_ID_ID             ((unsigned char) 0xbc)
 
46
#define _RESERVED_STREAM_ID           ((unsigned char) 0xbc)
 
47
#define _PRIVATE_STREAM_1_ID          ((unsigned char) 0xbd)
 
48
#define _PADDING_STREAM_ID            ((unsigned char) 0xbe)
 
49
#define _PRIVATE_STREAM_2_ID          ((unsigned char) 0xbf)
 
50
#define _ECM_STREAM_ID                ((unsigned char) 0xf0)
 
51
#define _EMM_STREAM_ID                ((unsigned char) 0xf1)
 
52
#define _PROGRAM_STREAM_DIRECTORY_ID  ((unsigned char) 0xff)
 
53
#define _DSMCC_STREAM_ID              ((unsigned char) 0xf2)
 
54
#define _ITUTRECH222TYPEE_STREAM_ID   ((unsigned char) 0xf8)
 
55
#define _SUBSTREAM_AC3_ID             ((unsigned char) 0x80)
 
56
#define _SUBSTREAM_LPCM_ID            ((unsigned char) 0xA0)
 
57
#define _SUBSTREAM_SUBPIC_ID          ((unsigned char) 0x20)
 
58
 
 
59
 
 
60
/* Silly Constants.... */
 
61
#define _PACK_START_CODE             ((unsigned int)0x000001ba)
 
62
#define _SYSTEM_HEADER_START_CODE    ((unsigned int)0x000001bb)
 
63
#define _PACKET_START_CODE_MASK      ((unsigned int)0xffffff00)
 
64
#define _PACKET_START_CODE_PREFIX    ((unsigned int)0x00000100)
 
65
#define _ISO_11172_END_CODE          ((unsigned int)0x000001b9)
 
66
 
 
67
#define _SEQ_START_CODE 0x000001b3
 
68
 
 
69
  
 
70
#include <iostream.h>
 
71
 
 
72
 
 
73
  
 
74
class MpegSystemHeader {
 
75
 
 
76
  int lPTSFlag;
 
77
  double scrTimeStamp;
 
78
  double ptsTimeStamp;
 
79
  double dtsTimeStamp;
 
80
 
 
81
  int layer;
 
82
 
 
83
  int lmpeg2;
 
84
 
 
85
  int packetID;
 
86
  int packetLen;
 
87
  unsigned long rate;
 
88
  int stdBufferScale;
 
89
  unsigned long stdBufferSize;
 
90
 
 
91
  /* This are bitmaps, if bit x is a 1 the stream number x is
 
92
     available */
 
93
  unsigned long availableAudioLayers;
 
94
  unsigned long availableVideoLayers;
 
95
 
 
96
  int audioLayerSelect;
 
97
  int videoLayerSelect;
 
98
  
 
99
  //
 
100
  // MPEG2 Header Info [START]
 
101
  //
 
102
  int lOriginal;
 
103
  int lCopyRight;
 
104
  int lDataAlignmentIndicator;
 
105
  int lPesPriority;
 
106
  int lEncrypted;
 
107
  int startCodePrefix;
 
108
 
 
109
 
 
110
 
 
111
  int lPTSDTSFlag;
 
112
  int lESCR;
 
113
  int lESRateFlag;
 
114
  int lDMSTRICKFLAG;
 
115
  int lADDITIONAL_COPY_FLAG;
 
116
  int lPES_CRC_FLAG;
 
117
  int lPES_EXT_FLAG;
 
118
  int nPES_HEADER_DATA_LENGTH;
 
119
 
 
120
  // EXT FILED [START]
 
121
 
 
122
  int lPrivateDataFlag;
 
123
  int lPackHeaderFieldFlag;
 
124
  int lSequenceCounterFlag;
 
125
  int lSTDBufferFlag;
 
126
  int lPES_EXT_FLAG_2;
 
127
  int nPES_EXT_FIELD_LENGTH;
 
128
  // EXT FILED [END]
 
129
 
 
130
  int subStreamID;
 
131
  //
 
132
  // MPEG2 Header Info [END]
 
133
  //
 
134
 
 
135
 public:
 
136
  MpegSystemHeader();
 
137
  ~MpegSystemHeader();
 
138
  
 
139
  int getPTSFlag();
 
140
  void setPTSFlag(int lPTSFlag);
 
141
    
 
142
  double getSCRTimeStamp();
 
143
  double getPTSTimeStamp();
 
144
  double getDTSTimeStamp();
 
145
  
 
146
 
 
147
  void setSCRTimeStamp(double timeStamp);
 
148
  void setPTSTimeStamp(double ptsTimeStamp);
 
149
  void setDTSTimeStamp(double dtsTimeStamp);
 
150
 
 
151
  // returns 1 if it is a syslayer 0 if non syslayer -1 if unknown
 
152
  int getLayer();
 
153
 
 
154
  void setLayer(int layer);
 
155
 
 
156
  //
 
157
  //  MPEG2 Stuff [START]
 
158
  //
 
159
 
 
160
  int getMPEG2();
 
161
  void setMPEG2(int lmpeg2);
 
162
 
 
163
  // 1 Byte [Start]
 
164
  int getOriginalOrCopy();
 
165
  void setOriginalOrCopy(int lOriginal);
 
166
 
 
167
  int getCopyRight();
 
168
  void setCopyRight(int lCopyRight);
 
169
 
 
170
  int getDataAlignmentIndicator();
 
171
  void setDataAlignmentIndicator(int lDataAlignmentIndicator);
 
172
 
 
173
  int getPesPriority();
 
174
  void setPesPriority(int lPesPriority);
 
175
 
 
176
  int getEncrypted();
 
177
  void setEncrypted(int lEncrypted);
 
178
 
 
179
  int getStartCodePrefix();
 
180
  void setStartCodePrefix(int startCodePrefix);
 
181
 
 
182
  // 1. Byte [End]
 
183
 
 
184
  int getPTSDTSFlag();
 
185
  void setPTSDTSFlag(int lPTSDTSFlag);
 
186
 
 
187
  int getESCRFlag();
 
188
  void setESCRFlag(int lESCR);
 
189
 
 
190
  int getES_RATE_Flag();
 
191
  void setES_RATE_Flag(int lESRateFlag);
 
192
  
 
193
 
 
194
  int getDMSTRICKFLAG();
 
195
  void setDMSTRICKFLAG(int lDMSTRICKFLAG);
 
196
 
 
197
  int getADDITIONAL_COPY_FLAG();
 
198
  void setADDITIONAL_COPY_FLAG(int lADDITIONAL_COPY_FLAG);
 
199
  
 
200
  int getPES_CRC_FLAG();
 
201
  void setPES_CRC_FLAG(int lPES_CRC_FLAG);
 
202
    
 
203
  int getPES_EXT_FLAG();
 
204
  void setPES_EXT_FLAG(int lPES_EXT_FLAG);
 
205
 
 
206
  //
 
207
  // PES EXTENSION [START]
 
208
  //
 
209
 
 
210
  int getPrivateDataFlag();
 
211
  void setPrivateDataFlag(int lPrivateDataFlag);
 
212
 
 
213
  int getPackHeaderFieldFlag();
 
214
  void setPackHeaderFieldFlag(int lPackHeaderFieldFlag);
 
215
 
 
216
  int getSequenceCounterFlag();
 
217
  void setSequenceCounterFlag(int lSequenceCounterFlag);
 
218
 
 
219
  int getSTDBufferFlag();
 
220
  void setSTDBufferFlag(int lSTDBufferFlag);
 
221
  
 
222
  int getPES_EXT_FLAG_2();
 
223
  void setPES_EXT_FLAG_2(int lPES_EXT_FLAG_2);
 
224
 
 
225
  int getPES_EXT_FIELD_LENGTH();
 
226
  void setPES_EXT_FIELD_LENGTH(int nPES_EXT_FIELD_LENGTH);
 
227
 
 
228
 
 
229
 
 
230
  //
 
231
  // PES EXTENSION [END]
 
232
  //
 
233
 
 
234
  int getPES_HEADER_DATA_LENGTH();
 
235
  void setPES_HEADER_DATA_LENGTH(int nPES_HEADER_DATA_LENGTH);
 
236
 
 
237
 
 
238
  int getSubStreamID();
 
239
  void setSubStreamID(int subStreamID);
 
240
 
 
241
 
 
242
  //
 
243
  // MPEG2 Stuff [END]
 
244
  //
 
245
   
 
246
  void addAvailableLayer(int streamID);
 
247
  void resetAvailableLayers();
 
248
  
 
249
  int getAudioLayerSelect();
 
250
  void setAudioLayerSelect(int layer);
 
251
 
 
252
  int getVideoLayerSelect();
 
253
  void setVideoLayerSelect(int layer);
 
254
 
 
255
 
 
256
  int getPacketID();
 
257
  void setPacketID(int packetID);
 
258
 
 
259
  int getPacketLen();
 
260
  void setPacketLen(int packetLen);
 
261
 
 
262
  int getRate();
 
263
  void setRate(int rate);
 
264
 
 
265
  int getStdBufferScale();
 
266
  void setStdBufferScale(int stdBufferScale);
 
267
  
 
268
  unsigned long getStdBufferSize();
 
269
  void setStdBufferSize(unsigned long stdBufferSize);
 
270
 
 
271
  void print();
 
272
};
 
273
 
 
274
#endif
 
275
 
 
276
 
 
277