epoc32/include/mmf/devvideo/h263.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
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@2
     4
// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.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