williamr@2
|
1 |
// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
|
williamr@2
|
2 |
// All rights reserved.
|
williamr@2
|
3 |
// This component and the accompanying materials are made available
|
williamr@4
|
4 |
// under the terms of "Eclipse Public License v1.0"
|
williamr@2
|
5 |
// which accompanies this distribution, and is available
|
williamr@4
|
6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
williamr@2
|
7 |
//
|
williamr@2
|
8 |
// Initial Contributors:
|
williamr@2
|
9 |
// Nokia Corporation - initial contribution.
|
williamr@2
|
10 |
//
|
williamr@2
|
11 |
// Contributors:
|
williamr@2
|
12 |
//
|
williamr@2
|
13 |
// Description:
|
williamr@2
|
14 |
// Constants and structs specific to H.263. See the DevVideo specs for more details.
|
williamr@2
|
15 |
//
|
williamr@2
|
16 |
//
|
williamr@2
|
17 |
|
williamr@2
|
18 |
#ifndef __DEVVIDEO_H263_H__
|
williamr@2
|
19 |
#define __DEVVIDEO_H263_H__
|
williamr@2
|
20 |
|
williamr@2
|
21 |
#include <e32base.h>
|
williamr@2
|
22 |
|
williamr@2
|
23 |
|
williamr@2
|
24 |
/**
|
williamr@2
|
25 |
Specifies the H263 picture type.
|
williamr@2
|
26 |
@publishedAll
|
williamr@2
|
27 |
@released
|
williamr@2
|
28 |
*/
|
williamr@2
|
29 |
enum TH263PictureType
|
williamr@2
|
30 |
{
|
williamr@2
|
31 |
/**INTRA picture*/
|
williamr@2
|
32 |
EH263PictureTypeI = 0x01,
|
williamr@2
|
33 |
/**INTER picture*/
|
williamr@2
|
34 |
EH263PictureTypeP = 0x02,
|
williamr@2
|
35 |
/**B picture according to H.263 Annex O*/
|
williamr@2
|
36 |
EH263PictureTypeB = 0x04,
|
williamr@2
|
37 |
/**EI picture according to H.263 Annex O*/
|
williamr@2
|
38 |
EH263PictureTypeEI = 0x08,
|
williamr@2
|
39 |
/**EP picture according to H.263 Annex O*/
|
williamr@2
|
40 |
EH263PictureTypeEP = 0x10
|
williamr@2
|
41 |
};
|
williamr@2
|
42 |
|
williamr@2
|
43 |
/**
|
williamr@2
|
44 |
These enumerations can be used in codec capability indication and/or bitstream property indication.
|
williamr@2
|
45 |
When used as part of an encoder capability indication, a signalled value indicates the capability
|
williamr@2
|
46 |
of an encoder to produce such supplemental information to the bitstream and the additional meanings
|
williamr@2
|
47 |
as specified below. When used as part of a decoder capability indication, a signalled value
|
williamr@2
|
48 |
indicates the capability of a decoder to react to such supplemental information in a way as
|
williamr@2
|
49 |
specified below. If a decoder does not have such capability, it shall be able to parse and discard
|
williamr@2
|
50 |
the supplemental information. When used as part of a bitstream property indication, a non-signalled
|
williamr@2
|
51 |
value indicates the absence of such information in the bitstream and a signalled value indicates
|
williamr@2
|
52 |
the possibility of having such information in the bitstream.
|
williamr@2
|
53 |
@publishedAll
|
williamr@2
|
54 |
@released
|
williamr@2
|
55 |
*/
|
williamr@2
|
56 |
enum TH263SupplementalInformation
|
williamr@2
|
57 |
{
|
williamr@2
|
58 |
/**
|
williamr@2
|
59 |
encoder capability: no meaning
|
williamr@2
|
60 |
decoder capability: no meaning
|
williamr@2
|
61 |
bitstream property: existence of FTYPE equal to 1
|
williamr@2
|
62 |
*/
|
williamr@2
|
63 |
EH263SEIDoNothing = 0x00000001,
|
williamr@2
|
64 |
|
williamr@2
|
65 |
/**
|
williamr@2
|
66 |
encoder capability: no meaning
|
williamr@2
|
67 |
decoder capability: capability to freeze displayed picture according to subclause L.4 of H.263capability to release frozen displayed picture as a response to bit 5 of PTYPE
|
williamr@2
|
68 |
bitstream property: existence of FTYPE equal to 2
|
williamr@2
|
69 |
*/
|
williamr@2
|
70 |
EH263SEIFullPictureFreeze = 0x00000002,
|
williamr@2
|
71 |
|
williamr@2
|
72 |
/**
|
williamr@2
|
73 |
encoder capability: no meaning
|
williamr@2
|
74 |
decoder capability: capability to freeze displayed picture partially (subclause L.5 of H.263)
|
williamr@2
|
75 |
bitstream property: existence of FTYPE equal to 3
|
williamr@2
|
76 |
*/
|
williamr@2
|
77 |
EH263SEIPartialPictureFreeze = 0x00000004,
|
williamr@2
|
78 |
|
williamr@2
|
79 |
/**
|
williamr@2
|
80 |
encoder capability: no meaning
|
williamr@2
|
81 |
decoder capability: capability to freeze and resize displayed picture partially (H.263 L.6)
|
williamr@2
|
82 |
bitstream property: existence of FTYPE equal to 4
|
williamr@2
|
83 |
*/
|
williamr@2
|
84 |
EH263SEIResizingPartialPictureFreeze = 0x00000008,
|
williamr@2
|
85 |
|
williamr@2
|
86 |
/**
|
williamr@2
|
87 |
encoder capability: no meaning
|
williamr@2
|
88 |
decoder capability: capability to release partially frozen picture (subclause L.7 of H.263)
|
williamr@2
|
89 |
bitstream property: existence of FTYPE equal to 5
|
williamr@2
|
90 |
*/
|
williamr@2
|
91 |
EH263SEIPartialPictureFreezeRelease = 0x00000010,
|
williamr@2
|
92 |
|
williamr@2
|
93 |
/**
|
williamr@2
|
94 |
encoder capability: no meaning
|
williamr@2
|
95 |
decoder capability: no meaning
|
williamr@2
|
96 |
bitstream property: existence of FTYPE equal to 6
|
williamr@2
|
97 |
*/
|
williamr@2
|
98 |
EH263SEIFullPictureSnapshotTag = 0x00000020,
|
williamr@2
|
99 |
|
williamr@2
|
100 |
/**
|
williamr@2
|
101 |
encoder capability: no meaning
|
williamr@2
|
102 |
decoder capability: no meaning
|
williamr@2
|
103 |
bitstream property: existence of FTYPE equal to 7
|
williamr@2
|
104 |
*/
|
williamr@2
|
105 |
EH263SEIPartialPictureSnapshotTag = 0x00000040,
|
williamr@2
|
106 |
|
williamr@2
|
107 |
/**
|
williamr@2
|
108 |
encoder capability: no meaning
|
williamr@2
|
109 |
decoder capability: no meaning
|
williamr@2
|
110 |
bitstream property: existence of FTYPE equal to 8
|
williamr@2
|
111 |
*/
|
williamr@2
|
112 |
EH263SEIVideoTimeSegmentStartTag = 0x00000080,
|
williamr@2
|
113 |
|
williamr@2
|
114 |
/**
|
williamr@2
|
115 |
encoder capability: no meaning
|
williamr@2
|
116 |
decoder capability: no meaning
|
williamr@2
|
117 |
bitstream property: existence of FTYPE equal to 9
|
williamr@2
|
118 |
*/
|
williamr@2
|
119 |
EH263SEIVideoTimeSegmentEndTag = 0x00000100,
|
williamr@2
|
120 |
|
williamr@2
|
121 |
/**
|
williamr@2
|
122 |
encoder capability: no meaning
|
williamr@2
|
123 |
decoder capability: no meaning
|
williamr@2
|
124 |
bitstream property: existence of FTYPE equal to 10
|
williamr@2
|
125 |
*/
|
williamr@2
|
126 |
EH263SEIProgressiveRefinementStartTag = 0x00000200,
|
williamr@2
|
127 |
|
williamr@2
|
128 |
/**
|
williamr@2
|
129 |
encoder capability: no meaning
|
williamr@2
|
130 |
decoder capability: no meaning
|
williamr@2
|
131 |
bitstream property: existence of FTYPE equal to 11
|
williamr@2
|
132 |
*/
|
williamr@2
|
133 |
EH263SEIProgressiveRefinementEndTag = 0x00000400,
|
williamr@2
|
134 |
|
williamr@2
|
135 |
/**
|
williamr@2
|
136 |
encoder capability: no meaning
|
williamr@2
|
137 |
decoder capability: operation according to sublause L.14 of H.263
|
williamr@2
|
138 |
bitstream property: existence of FTYPE equal to 12
|
williamr@2
|
139 |
*/
|
williamr@2
|
140 |
EH263SEIChromaKeying = 0x00000800,
|
williamr@2
|
141 |
|
williamr@2
|
142 |
/**
|
williamr@2
|
143 |
encoder capability: use of the fixed-point IDCT algorithm specified in Annex W of H.263
|
williamr@2
|
144 |
decoder capability: use of the fixed-point IDCT algorithm specified in Annex W of H.263
|
williamr@2
|
145 |
bitstream property: existence of FTYPE equal to 13
|
williamr@2
|
146 |
*/
|
williamr@2
|
147 |
EH263SEIFixedPointIDCT = 0x00001000,
|
williamr@2
|
148 |
|
williamr@2
|
149 |
/**
|
williamr@2
|
150 |
encoder capability: no meaning
|
williamr@2
|
151 |
decoder capability: no meaning
|
williamr@2
|
152 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 0
|
williamr@2
|
153 |
*/
|
williamr@2
|
154 |
EH263SEIArbitraryBinaryData = 0x00002000,
|
williamr@2
|
155 |
|
williamr@2
|
156 |
/**
|
williamr@2
|
157 |
encoder capability: no meaning
|
williamr@2
|
158 |
decoder capability: no meaning
|
williamr@2
|
159 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 1
|
williamr@2
|
160 |
*/
|
williamr@2
|
161 |
EH263SEIArbitraryText = 0x00004000,
|
williamr@2
|
162 |
|
williamr@2
|
163 |
/**
|
williamr@2
|
164 |
encoder capability: no meaning
|
williamr@2
|
165 |
decoder capability: no meaning
|
williamr@2
|
166 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 2
|
williamr@2
|
167 |
*/
|
williamr@2
|
168 |
EH263SEICopyrightText = 0x00008000,
|
williamr@2
|
169 |
|
williamr@2
|
170 |
/**
|
williamr@2
|
171 |
encoder capability: no meaning
|
williamr@2
|
172 |
decoder capability: capability of display caption text as specified in subclause W.6.3.5 of H.263
|
williamr@2
|
173 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 3
|
williamr@2
|
174 |
*/
|
williamr@2
|
175 |
EH263SEICaptionText = 0x00010000,
|
williamr@2
|
176 |
|
williamr@2
|
177 |
/**
|
williamr@2
|
178 |
encoder capability: no meaning
|
williamr@2
|
179 |
decoder capability: no meaning
|
williamr@2
|
180 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 4
|
williamr@2
|
181 |
*/
|
williamr@2
|
182 |
EH263SEIVideoDescriptionText = 0x00020000,
|
williamr@2
|
183 |
|
williamr@2
|
184 |
/**
|
williamr@2
|
185 |
encoder capability: no meaning
|
williamr@2
|
186 |
decoder capability: no meaning
|
williamr@2
|
187 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 5
|
williamr@2
|
188 |
*/
|
williamr@2
|
189 |
EH263SEIUniformResourceIdentifierText = 0x00040000,
|
williamr@2
|
190 |
|
williamr@2
|
191 |
/**
|
williamr@2
|
192 |
encoder capability: capability to repeat the current picture header (subclause W.6.3.7 of H.263)
|
williamr@2
|
193 |
decoder capability: capability to recover a corrupted picture header with a repeated one
|
williamr@2
|
194 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 6
|
williamr@2
|
195 |
*/
|
williamr@2
|
196 |
EH263SEICurrentPictureHeaderRepetition = 0x00080000,
|
williamr@2
|
197 |
|
williamr@2
|
198 |
/**
|
williamr@2
|
199 |
encoder capability: capability to repeat the previous picture header (subclause W.6.3.8 of H.263)
|
williamr@2
|
200 |
decoder capability: capability to recover a corrupted or lost picture header with a repeated one
|
williamr@2
|
201 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 7
|
williamr@2
|
202 |
*/
|
williamr@2
|
203 |
EH263SEIPreviousPictureHeaderRepetition = 0x00100000,
|
williamr@2
|
204 |
|
williamr@2
|
205 |
/**
|
williamr@2
|
206 |
encoder capability: capability to repeat the next picture header (W.6.3.9 of H.263)
|
williamr@2
|
207 |
decoder capability: capability to recover a corrupted or lost picture header with a repeated one
|
williamr@2
|
208 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 8
|
williamr@2
|
209 |
*/
|
williamr@2
|
210 |
EH263SEINextPictureHeaderRepetitionReliableTR = 0x00200000,
|
williamr@2
|
211 |
|
williamr@2
|
212 |
/**
|
williamr@2
|
213 |
encoder capability: capability to repeat the next picture header (W.6.3.10 of H.263)
|
williamr@2
|
214 |
decoder capability: capability to recover a corrupted or lost picture header with a repeated one
|
williamr@2
|
215 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 9
|
williamr@2
|
216 |
*/
|
williamr@2
|
217 |
EH263SEINextPictureHeaderRepetitionUnreliableTR = 0x00400000,
|
williamr@2
|
218 |
|
williamr@2
|
219 |
/**
|
williamr@2
|
220 |
encoder capability: capability to encode top fields of interlaced pictures
|
williamr@2
|
221 |
decoder capability: capability to decode and display top fields of interlaced pictures (W.6.3.11of H.263)
|
williamr@2
|
222 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 10
|
williamr@2
|
223 |
*/
|
williamr@2
|
224 |
EH263SEITopInterlacedFieldIndication = 0x00800000,
|
williamr@2
|
225 |
|
williamr@2
|
226 |
/**
|
williamr@2
|
227 |
encoder capability: capability to encode bottom fields of interlaced pictures
|
williamr@2
|
228 |
decoder capability: capability to decode and display bottom fields of interlaced pictures (W.6.3.11of H.263)
|
williamr@2
|
229 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 10
|
williamr@2
|
230 |
*/
|
williamr@2
|
231 |
EH263SEIBottomInterlacedFieldIndication = 0x01000000,
|
williamr@2
|
232 |
|
williamr@2
|
233 |
/**
|
williamr@2
|
234 |
encoder capability: capability to transmit picture numbers (subclause W.6.3.12 of H.263)
|
williamr@2
|
235 |
decoder capability: capability to indicate reference picture losses from missing picture numbers
|
williamr@2
|
236 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 12
|
williamr@2
|
237 |
*/
|
williamr@2
|
238 |
EH263SEIPictureNumber = 0x02000000,
|
williamr@2
|
239 |
|
williamr@2
|
240 |
/**
|
williamr@2
|
241 |
encoder capability: capability to generate spare reference picture information (W.6.3.13 of H.263)
|
williamr@2
|
242 |
decoder capability: capability to use a spare reference picture in absence of real reference picture
|
williamr@2
|
243 |
bitstream property: existence of FTYPE equal to 14 and MTYPE equal to 13
|
williamr@2
|
244 |
*/
|
williamr@2
|
245 |
EH263SEISpareReferencePictures = 0x04000000
|
williamr@2
|
246 |
};
|
williamr@2
|
247 |
|
williamr@2
|
248 |
|
williamr@2
|
249 |
/**
|
williamr@2
|
250 |
H.263 picture header.
|
williamr@2
|
251 |
@publishedAll
|
williamr@2
|
252 |
@released
|
williamr@2
|
253 |
*/
|
williamr@2
|
254 |
class TH263PictureHeader
|
williamr@2
|
255 |
{
|
williamr@2
|
256 |
public:
|
williamr@2
|
257 |
/**
|
williamr@2
|
258 |
Indicates the temporal reference. iTemporalReference is equal to the value of TR or the value
|
williamr@2
|
259 |
of (ETR << 8) + TR if ETR is present in the picture header.
|
williamr@2
|
260 |
*/
|
williamr@2
|
261 |
TUint iTemporalReference;
|
williamr@2
|
262 |
|
williamr@2
|
263 |
/**
|
williamr@2
|
264 |
iLongTermPicture equal to ETrue indicates that the picture has been marked as a long-term
|
williamr@2
|
265 |
picture according to the memory management control operation (MMCO) commands as specified
|
williamr@2
|
266 |
in Annex U of H.263. Otherwise the picture is not a long-term picture.
|
williamr@2
|
267 |
*/
|
williamr@2
|
268 |
TBool iLongTermPicture;
|
williamr@2
|
269 |
|
williamr@2
|
270 |
/**
|
williamr@2
|
271 |
iSplitScreen is equal to the value of bit 3 of PTYPE.
|
williamr@2
|
272 |
*/
|
williamr@2
|
273 |
TBool iSplitScreen;
|
williamr@2
|
274 |
|
williamr@2
|
275 |
/**
|
williamr@2
|
276 |
iDocumentCamera is equal to the value of bit 4 of PTYPE.
|
williamr@2
|
277 |
*/
|
williamr@2
|
278 |
TBool iDocumentCamera;
|
williamr@2
|
279 |
|
williamr@2
|
280 |
/**
|
williamr@2
|
281 |
iFreezePictureRelease is equal to the value of bit 5 of PTYPE.
|
williamr@2
|
282 |
*/
|
williamr@2
|
283 |
TBool iFreezePictureRelease;
|
williamr@2
|
284 |
|
williamr@2
|
285 |
/**
|
williamr@2
|
286 |
Indicates the picture coding type. iPictureType is set according to the picture header as one
|
williamr@2
|
287 |
of the values defined in TH263PictureType.
|
williamr@2
|
288 |
*/
|
williamr@2
|
289 |
TH263PictureType iPictureType;
|
williamr@2
|
290 |
|
williamr@2
|
291 |
/**
|
williamr@2
|
292 |
Indicates the initial value of the quantization parameter. iPQuant is equal to the value of
|
williamr@2
|
293 |
the PQUANT syntax element.
|
williamr@2
|
294 |
*/
|
williamr@2
|
295 |
TUint iPQuant;
|
williamr@2
|
296 |
|
williamr@2
|
297 |
/**
|
williamr@2
|
298 |
Indicates the presence of the extended PTYPE field in the picture layer. The extended PTYPE
|
williamr@2
|
299 |
field is specified in ITU-T Recommendation H.263 version 2 and later. iPlusPType is equal to 1
|
williamr@2
|
300 |
if bits 6 - 8 of PTYPE are equal to '111'. Otherwise, iPlusPType is equal to 0.
|
williamr@2
|
301 |
*/
|
williamr@2
|
302 |
TBool iPlusPType;
|
williamr@2
|
303 |
|
williamr@2
|
304 |
/**
|
williamr@2
|
305 |
Indicates the presence of the full extended PTYPE field in the picture layer. If iPlusPType is
|
williamr@2
|
306 |
EFalse, the value of of iUpdateFullExtendedPType is not valid. Otherwise,
|
williamr@2
|
307 |
iUpdateFullExtendedPType is equal to the value of the UFEP syntax element.
|
williamr@2
|
308 |
*/
|
williamr@2
|
309 |
TBool iUpdateFullExtendedPType;
|
williamr@2
|
310 |
|
williamr@2
|
311 |
/**
|
williamr@2
|
312 |
Pixel aspect ratio numerator and denominator respectively. The pixel aspect ratio is defined as
|
williamr@2
|
313 |
iAspectRatioNum/iAspectRatioDenom, where the values are positive integers and relatively prime.
|
williamr@2
|
314 |
If iPlusPType is equal to 0, or iPlusPType is ETrue and iUpdateFullExtendedPType is ETrue and
|
williamr@2
|
315 |
bits 1 - 3 of the OPPTYPE syntax element are not equal to '110', iAspectRatioNum shall be equal
|
williamr@2
|
316 |
to 12 and iAspectRatioDenom shall be equal to 11 (as specified in subclause 4.1 of ITU-T
|
williamr@2
|
317 |
Recommendation H.263). If iPlusPType is ETrue and iUpdateFullExtendedPType is ETrue and bits
|
williamr@2
|
318 |
1 - 3 of the OPPTYPE syntax element are equal to '110', the values of iAspectRatioNum and
|
williamr@2
|
319 |
iAspectRatioDenom are set as specified in subclauses 5.1.5 and 5.1.6 of ITU-T Recommendation
|
williamr@2
|
320 |
H.263. Otherwise (iPlusPType is ETrue and iUpdateFullExtendedPType is EFalse), the values of
|
williamr@2
|
321 |
iAspectRatioNum and iAspectRatioDenom are not valid.
|
williamr@2
|
322 |
*/
|
williamr@2
|
323 |
TUint iAspectRatioNum;
|
williamr@2
|
324 |
|
williamr@2
|
325 |
/**
|
williamr@2
|
326 |
Pixel aspect ratio numerator and denominator respectively. The pixel aspect ratio is defined as
|
williamr@2
|
327 |
iAspectRatioNum/iAspectRatioDenom, where the values are positive integers and relatively prime.
|
williamr@2
|
328 |
If iPlusPType is equal to 0, or iPlusPType is ETrue and iUpdateFullExtendedPType is ETrue and
|
williamr@2
|
329 |
bits 1 - 3 of the OPPTYPE syntax element are not equal to '110', iAspectRatioNum shall be equal
|
williamr@2
|
330 |
to 12 and iAspectRatioDenom shall be equal to 11 (as specified in subclause 4.1 of ITU-T
|
williamr@2
|
331 |
Recommendation H.263). If iPlusPType is ETrue and iUpdateFullExtendedPType is ETrue and bits
|
williamr@2
|
332 |
1 - 3 of the OPPTYPE syntax element are equal to '110', the values of iAspectRatioNum and
|
williamr@2
|
333 |
iAspectRatioDenom are set as specified in subclauses 5.1.5 and 5.1.6 of ITU-T Recommendation
|
williamr@2
|
334 |
H.263. Otherwise (iPlusPType is ETrue and iUpdateFullExtendedPType is EFalse), the values of
|
williamr@2
|
335 |
iAspectRatioNum and iAspectRatioDenom are not valid.
|
williamr@2
|
336 |
*/
|
williamr@2
|
337 |
TUint iAspectRatioDenom;
|
williamr@2
|
338 |
|
williamr@2
|
339 |
/**
|
williamr@2
|
340 |
Picture clock frequency numerator and denominator respectively. The picture clock frequency
|
williamr@2
|
341 |
for temporal reference is defined as iPictureClockFrequencyRate / iPictureClockFrequencyScale
|
williamr@2
|
342 |
in floating point arithmetic and where the values are positive integers and relatively prime.
|
williamr@2
|
343 |
If iPlusPType is equal to 0, or iPlusPType is equal to 1 and iUpdateFullExtendedPType is equal
|
williamr@2
|
344 |
to 1 and bit 4 of the OPPTYPE syntax element is equal to 0, iPictureClockFrequencyRate shall be
|
williamr@2
|
345 |
equal to 30000 and iPictureClockFrequencyScale shall be equal to 1001 (as specified in subclause
|
williamr@2
|
346 |
4.1 of ITU-T Recommendation H.263). If iPlusPType is equal to 1 and iUpdateFullExtendedPType is
|
williamr@2
|
347 |
equal to 1 and bit 4 of the OPPTYPE syntax element is equal to 1, the values of
|
williamr@2
|
348 |
iPictureClockFrequencyRate and iPictureClockFrequencyScale are set as specified in subclause
|
williamr@2
|
349 |
5.1.7 of ITU-T Recommendation H.263. Otherwise (iPlusPType is equal to 1 and
|
williamr@2
|
350 |
iUpdateFullExtendedPType is equal to 0), the values of iPictureClockFrequencyRate and
|
williamr@2
|
351 |
iPictureClockFrequencyScale are not valid.
|
williamr@2
|
352 |
*/
|
williamr@2
|
353 |
TUint iPictureClockFrequencyRate;
|
williamr@2
|
354 |
|
williamr@2
|
355 |
/**
|
williamr@2
|
356 |
Picture clock frequency numerator and denominator respectively. The picture clock frequency
|
williamr@2
|
357 |
for temporal reference is defined as iPictureClockFrequencyRate / iPictureClockFrequencyScale
|
williamr@2
|
358 |
in floating point arithmetic and where the values are positive integers and relatively prime.
|
williamr@2
|
359 |
If iPlusPType is equal to 0, or iPlusPType is equal to 1 and iUpdateFullExtendedPType is equal
|
williamr@2
|
360 |
to 1 and bit 4 of the OPPTYPE syntax element is equal to 0, iPictureClockFrequencyRate shall be
|
williamr@2
|
361 |
equal to 30000 and iPictureClockFrequencyScale shall be equal to 1001 (as specified in subclause
|
williamr@2
|
362 |
4.1 of ITU-T Recommendation H.263). If iPlusPType is equal to 1 and iUpdateFullExtendedPType is
|
williamr@2
|
363 |
equal to 1 and bit 4 of the OPPTYPE syntax element is equal to 1, the values of
|
williamr@2
|
364 |
iPictureClockFrequencyRate and iPictureClockFrequencyScale are set as specified in subclause
|
williamr@2
|
365 |
5.1.7 of ITU-T Recommendation H.263. Otherwise (iPlusPType is equal to 1 and
|
williamr@2
|
366 |
iUpdateFullExtendedPType is equal to 0), the values of iPictureClockFrequencyRate and
|
williamr@2
|
367 |
iPictureClockFrequencyScale are not valid.
|
williamr@2
|
368 |
*/
|
williamr@2
|
369 |
TUint iPictureClockFrequencyScale;
|
williamr@2
|
370 |
};
|
williamr@2
|
371 |
|
williamr@2
|
372 |
/**
|
williamr@2
|
373 |
This class is used to signal decoder or encoder capabilities or bitstream properties.
|
williamr@2
|
374 |
@publishedAll
|
williamr@2
|
375 |
@released
|
williamr@2
|
376 |
*/
|
williamr@2
|
377 |
class TH263VideoCapability
|
williamr@2
|
378 |
{
|
williamr@2
|
379 |
public:
|
williamr@2
|
380 |
/**
|
williamr@2
|
381 |
When part of a codec capability indication, iProfileLevel[ProfileNumber] indicates the
|
williamr@2
|
382 |
maximum processing level that a decoder or an encoder supports for a particular profile
|
williamr@2
|
383 |
indicated by ProfileNumber. A negative value indicates that the profile is not supported.
|
williamr@2
|
384 |
When part of a stream property indication, iProfileLevel[ProfileNumber] indicates the maximum
|
williamr@2
|
385 |
processing level that is present in the stream for a particular profile indicated by
|
williamr@2
|
386 |
ProfileNumber. A negative value indicates that the stream does not contain data coded according
|
williamr@2
|
387 |
to the indicated profile.
|
williamr@2
|
388 |
*/
|
williamr@2
|
389 |
TInt iProfileLevel[9];
|
williamr@2
|
390 |
|
williamr@2
|
391 |
/**
|
williamr@2
|
392 |
When equal to ETrue, indicating that it is allowed to use PLUSPTYPE (specified in the 1998
|
williamr@2
|
393 |
version of H.263) to indicate custom picture sizes or clock frequencies. When equal to EFalse,
|
williamr@2
|
394 |
PLUSPTYPE shall not be used.
|
williamr@2
|
395 |
*/
|
williamr@2
|
396 |
TBool iPLUSPTYPEAllowed;
|
williamr@2
|
397 |
|
williamr@2
|
398 |
/**
|
williamr@2
|
399 |
iSupplementalInformationCap indicates the supported supplemental enhancement functions. The
|
williamr@2
|
400 |
value is a binary OR of values from TH263SupplementalInformation.
|
williamr@2
|
401 |
*/
|
williamr@2
|
402 |
TUint32 iSupplementalInformationCap;
|
williamr@2
|
403 |
};
|
williamr@2
|
404 |
|
williamr@2
|
405 |
|
williamr@2
|
406 |
/**
|
williamr@2
|
407 |
This class is used to set the encoder operation mode.
|
williamr@2
|
408 |
@publishedAll
|
williamr@2
|
409 |
@released
|
williamr@2
|
410 |
*/
|
williamr@2
|
411 |
class TH263VideoMode
|
williamr@2
|
412 |
{
|
williamr@2
|
413 |
public:
|
williamr@2
|
414 |
/**
|
williamr@2
|
415 |
Specifies the picture types allowed in the bitstream. The value is a binary OR of values from
|
williamr@2
|
416 |
TH263PictureType. Signaled picture types that are not included in the prevailing coding profile
|
williamr@2
|
417 |
are ignored.
|
williamr@2
|
418 |
*/
|
williamr@2
|
419 |
TUint32 iAllowedPictureTypes;
|
williamr@2
|
420 |
|
williamr@2
|
421 |
/**
|
williamr@2
|
422 |
iForceRoundingTypeToZero equal to EFalse specifies that the value of the RTYPE bit (bit 6 of
|
williamr@2
|
423 |
MPPTYPE) is not constrained. It is recommended to change the value of the RTYPE bit for each
|
williamr@2
|
424 |
reference picture in error-free communication (subclause 5.1.4.3 of ITU-T H.263 Recommendation).
|
williamr@2
|
425 |
iForceRoundingTypeToZero equal to ETrue specifies that the value of the RTYPE bit shall be equal
|
williamr@2
|
426 |
to 0 or that the RTYPE field shall not be present in the picture layer. It is recommended to set
|
williamr@2
|
427 |
iForceRoundingTypeToZero equal to ETrue (and consequently RTYPE equal to 0) in error-prone
|
williamr@2
|
428 |
communication as recommended in section 4.2.6 of H.263 Appendix III [R6] and [R7].
|
williamr@2
|
429 |
*/
|
williamr@2
|
430 |
TBool iForceRoundingTypeToZero;
|
williamr@2
|
431 |
|
williamr@2
|
432 |
/**
|
williamr@2
|
433 |
Specifies the frequency of picture header repetition as specified in this paragraph. If
|
williamr@2
|
434 |
iPictureHeaderRepetition is equal to 0, picture headers are not repeated. Otherwise, a picture
|
williamr@2
|
435 |
header is repeated, if the value of the GFID syntax element is not equal to the value of the
|
williamr@2
|
436 |
GFID syntax element of the previous picture in bitstream order. If EDuRtpPayload data unit
|
williamr@2
|
437 |
encapsulation is in use, a picture header is repeated the number of times indicated by the value
|
williamr@2
|
438 |
of iPictureHeaderRepetition in those RTP payloads of the picture where the P bit according to
|
williamr@2
|
439 |
RFC 2429 [R8] is set equal to 1 and which do not contain the original picture header. If
|
williamr@2
|
440 |
EDuElementaryStream data unit encapsulation is in use, the picture header is repeated once in
|
williamr@2
|
441 |
the supplemental enhancement information of the next picture as specified in subclause W.6.3.8
|
williamr@2
|
442 |
of ITU-T Recommendation H.263 and section 4.2.6 of H.263 Appendix III [R6].
|
williamr@2
|
443 |
*/
|
williamr@2
|
444 |
TUint iPictureHeaderRepetition;
|
williamr@2
|
445 |
|
williamr@2
|
446 |
/**
|
williamr@2
|
447 |
Specifies the interval of non-empty GOB headers in units of GOBs. The value of
|
williamr@2
|
448 |
iGOBHeaderInterval is valid if no slice structured coding mode (Annex K or Annex V) is in use.
|
williamr@2
|
449 |
If iGOBHeaderInterval is equal to 0 and an unlimited segment size is specified with the
|
williamr@2
|
450 |
SetSegmentTargetSize method, the encoder should not generate GOB headers. If iGOBHeaderInterval
|
williamr@2
|
451 |
is greater than 0 and an unlimited segment size is specified with the SetSegmentTargetSize
|
williamr@2
|
452 |
method, the encoder should generate a non-empty GOB header for every iGOBHeaderInterval-th GOB.
|
williamr@2
|
453 |
If SetSegmentTargetSize is used to set a limited segment size, the encoder should generate
|
williamr@2
|
454 |
segments (i.e., insert non-empty GOB headers) so that the length of the segment is no larger
|
williamr@2
|
455 |
than the target size in bytes and no larger than the GOB header frequency specified with the
|
williamr@2
|
456 |
value of iGOBHeaderInterval.
|
williamr@2
|
457 |
*/
|
williamr@2
|
458 |
TUint iGOBHeaderInterval;
|
williamr@2
|
459 |
};
|
williamr@2
|
460 |
|
williamr@2
|
461 |
/**
|
williamr@2
|
462 |
H.263 HRD parameters.
|
williamr@2
|
463 |
@publishedAll
|
williamr@2
|
464 |
@released
|
williamr@2
|
465 |
*/
|
williamr@2
|
466 |
class TH263HrdParams
|
williamr@2
|
467 |
{
|
williamr@2
|
468 |
public:
|
williamr@2
|
469 |
/**
|
williamr@2
|
470 |
When iAnnexXConstraints is equal to EFalse, iBPPmaxKb, iB, and iRmax indicate the values of HRD
|
williamr@2
|
471 |
parameters. When iAnnexXConstraints is equal to ETrue, the values of iBPPmaxKb, iB, and iRmax in
|
williamr@2
|
472 |
this class are ignored but rather their values are specified in Annex X of ITU-T Recommendation
|
williamr@2
|
473 |
H.263.
|
williamr@2
|
474 |
*/
|
williamr@2
|
475 |
TBool iAnnexXConstraints;
|
williamr@2
|
476 |
|
williamr@2
|
477 |
/**
|
williamr@2
|
478 |
Signals the BPPmaxKb parameter of H.263. As specified in ITU-T Recommendation H.263. The number
|
williamr@2
|
479 |
of bits created by coding any single picture shall not exceed a maximum value specified by the
|
williamr@2
|
480 |
parameter BPPmaxKb that is measured in units of 1024 bits. The minimum value of BPPmaxKb is
|
williamr@2
|
481 |
specified in Table 1 of ITU-T Recommendation H.263.
|
williamr@2
|
482 |
*/
|
williamr@2
|
483 |
TUint iBPPmaxKb;
|
williamr@2
|
484 |
|
williamr@2
|
485 |
/**
|
williamr@2
|
486 |
Signals the B parameter of H.263 Annex B. As specified in Annex B of ITU-T Recommendation H.263.
|
williamr@2
|
487 |
The value of B shall be equal to or greater than 4 * Rmax / PCF, where PCF is the picture clock
|
williamr@2
|
488 |
frequency specified in subclause 5.1.7 of ITU-T Recommendation H.263. The HRD receiving buffer
|
williamr@2
|
489 |
size is equal to (B + BPPmaxKb * 1024 bits).
|
williamr@2
|
490 |
*/
|
williamr@2
|
491 |
TUint iB;
|
williamr@2
|
492 |
|
williamr@2
|
493 |
/**
|
williamr@2
|
494 |
Signals the maximum video bit rate in bits per second, i.e., the Rmax parameter of H.263 Annex B.
|
williamr@2
|
495 |
*/
|
williamr@2
|
496 |
TUint iRmax;
|
williamr@2
|
497 |
};
|
williamr@2
|
498 |
|
williamr@2
|
499 |
/**
|
williamr@2
|
500 |
H.263 redundant picture header.
|
williamr@2
|
501 |
Points to a buffer to contain the redundant picture header in the orignal bitstream order. The
|
williamr@2
|
502 |
buffer may be used by the MSL client in playback to pass the decapsulated redundant picture header
|
williamr@2
|
503 |
from an RTP payload formatted according to RFC 2429, or used by the MSL client in recording to pass
|
williamr@2
|
504 |
the picture header to the RTP encapsulator.
|
williamr@2
|
505 |
@publishedAll
|
williamr@2
|
506 |
@released
|
williamr@2
|
507 |
*/
|
williamr@2
|
508 |
typedef TPtr8* TH263RedundantPictureHeader;
|
williamr@2
|
509 |
|
williamr@2
|
510 |
#endif
|