|
1 /* |
|
2 * Copyright (c) 2009 Aricent and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of the License "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Aricent - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * This file defines the constants used in H264 encoder plugin. |
|
16 * |
|
17 */ |
|
18 |
|
19 #ifndef ARIH264HWDEVICECONSTANTS_H |
|
20 #define ARIH264HWDEVICECONSTANTS_H |
|
21 |
|
22 // Compressed H264 Video Formats Supported |
|
23 _LIT8(KH264MimeType, "video/H264"); |
|
24 _LIT8(KH264MimeType2, "video/H264; profile-level-id=42800A"); |
|
25 _LIT8(KH264MimeType3, "video/H264; profile-level-id=42800B"); |
|
26 _LIT8(KH264MimeType4, "video/H264; profile-level-id=42800C"); |
|
27 _LIT8(KH264MimeType5, "video/H264; profile-level-id=42800D"); |
|
28 _LIT8(KH264MimeType6, "video/H264; profile-level-id=428014"); |
|
29 _LIT8(KH264MimeType7, "video/H264; profile-level-id=428015"); |
|
30 _LIT8(KH264MimeType8, "video/H264; profile-level-id=428016"); |
|
31 _LIT8(KH264MimeType9, "video/H264; profile-level-id=42801E"); |
|
32 _LIT8(KH264MimeType10, "video/H264; profile-level-id=42900B"); |
|
33 |
|
34 |
|
35 _LIT(KH264EncManufacturer,"Aricent"); |
|
36 _LIT(KH264EncIdentifier, "ARM H264 Video Encoder Hw Device"); |
|
37 |
|
38 // 1 SPS and 1 PPS |
|
39 const TInt KNumOfConfigParams = 2; |
|
40 // 1 SPS, 1 PPS and 1 SEI |
|
41 const TInt KNumOfConfigParams_SEI = 3; |
|
42 // 1 SPS, 1 PPS, 4SEI |
|
43 const TInt KNumOfNAL_SEI = 6; |
|
44 const TInt KWordLength = 4; |
|
45 const TInt KDoubleWordLength = 8; |
|
46 |
|
47 const TInt KH264ENCIMPL_MAJOR_VERSION = 1; |
|
48 const TInt KH264ENCIMPL_MINOR_VERSION = 0; |
|
49 const TInt KH264ENCIMPL_BUILD_VERSION = 0; |
|
50 |
|
51 // Size - width,height related |
|
52 const TInt KH264ENCIMPL_SQCIF_WIDTH = 128; |
|
53 const TInt KH264ENCIMPL_SQCIF_HEIGHT = 96; |
|
54 const TInt KH264ENCIMPL_QCIF_WIDTH = 176; |
|
55 const TInt KH264ENCIMPL_QCIF_HEIGHT = 144; |
|
56 const TInt KH264ENCIMPL_QVGA_WIDTH = 320; |
|
57 const TInt KH264ENCIMPL_QVGA_HEIGHT = 240; |
|
58 const TInt KH264ENCIMPL_CIF_WIDTH = 352; |
|
59 const TInt KH264ENCIMPL_CIF_HEIGHT = 288; |
|
60 const TInt KH264ENCIMPL_VGA_WIDTH = 640; |
|
61 const TInt KH264ENCIMPL_VGA_HEIGHT = 480; |
|
62 const TInt KH264ENCIMPL_SDTV_WIDTH = 720; |
|
63 const TInt KH264ENCIMPL_SDTV_HEIGHT_PAL = 576; |
|
64 const TInt KH264ENCIMPL_SDTV_HEIGHT_NTSC = 480; |
|
65 const TInt KH264ENCIMPL_HALFSDTV_WIDTH = 360; |
|
66 const TInt KH264ENCIMPL_HALFSDTV_HEIGHT_PAL = 288; |
|
67 const TInt KH264ENCIMPL_HALFSDTV_HEIGHT_NTSC = 240; |
|
68 const TInt KH264ENCIMPL_720P_HEIGHT = 720; |
|
69 const TInt KH264ENCIMPL_720P_WIDTH = 1280; |
|
70 |
|
71 // Bitrate related (bits per second) |
|
72 const TInt KH264ENCIMPL_DEFAULT_BITRATE = 64000; |
|
73 const TInt KH264ENCIMPL_BITRATE_LEVEL_1b = 128000; |
|
74 const TInt KH264ENCIMPL_BITRATE_LEVEL_1 = 64000; |
|
75 const TInt KH264ENCIMPL_BITRATE_LEVEL_11 = 192000; |
|
76 const TInt KH264ENCIMPL_BITRATE_LEVEL_12 = 384000; |
|
77 const TInt KH264ENCIMPL_BITRATE_LEVEL_13 = 768000; |
|
78 const TInt KH264ENCIMPL_BITRATE_LEVEL_2 = 2000000; |
|
79 const TInt KH264ENCIMPL_BITRATE_LEVEL_21 = 4000000; |
|
80 const TInt KH264ENCIMPL_BITRATE_LEVEL_22 = 4000000; |
|
81 const TInt KH264ENCIMPL_BITRATE_LEVEL_3 = 10000000; |
|
82 |
|
83 // Level related mapping |
|
84 const TInt KH264ENCIMPL_LEVEL_UNKNOWN = 0; |
|
85 const TInt KH264ENCIMPL_LEVEL_1b = 9; |
|
86 const TInt KH264ENCIMPL_LEVEL_1 = 10; |
|
87 const TInt KH264ENCIMPL_LEVEL_11 = 11; |
|
88 const TInt KH264ENCIMPL_LEVEL_12 = 12; |
|
89 const TInt KH264ENCIMPL_LEVEL_13 = 13; |
|
90 const TInt KH264ENCIMPL_LEVEL_2 = 20; |
|
91 const TInt KH264ENCIMPL_LEVEL_21 = 21; |
|
92 const TInt KH264ENCIMPL_LEVEL_22 = 22; |
|
93 const TInt KH264ENCIMPL_LEVEL_3 = 30; |
|
94 |
|
95 // o/p buffer related |
|
96 const TInt KH264ENCIMPL_MAXNUM_OUTPUTBUFFERS = 2; |
|
97 const TInt KH264ENCIMPL_MAXNUM_TEMPOUTPUTBUFFERS = 2; |
|
98 const TInt KH264ENCIMPL_MAXNUM_SEGMENTBUFFERS = 30; |
|
99 const TInt KH264ENCIMPL_FACTOR_FOR_OUTPUTBUFFERSIZE_IN_PACKETMODE = 2; |
|
100 |
|
101 // o/p buffer size related |
|
102 const TInt KH264ENCIMPL_DEFAULT_SEGMENTSIZE = 256; |
|
103 const TInt KH264ENCIMPL_MIN_SEGMENTSIZE = 192; |
|
104 const TInt KH264ENCIMPL_MAX_SEGMENTSIZE = 300; |
|
105 |
|
106 // Max coded picture size in case of Level 1b |
|
107 const TInt KH264ENCIMPL_LEVEL1b_MAXCPBSIZE = 39375; |
|
108 // Max coded picture size in case of Level 1.1 |
|
109 const TInt KH264ENCIMPL_LEVEL11_MAXCPBSIZE = 56250; |
|
110 |
|
111 // picture rate related |
|
112 const TReal KH264ENCIMPL_MAX_PICTURERATE = 30.0; |
|
113 const TReal KH264ENCIMPL_DEFAULT_PICTURERATE = 15.0; |
|
114 const TReal KH264ENCIMPL_PICTURERATE_12_5 = 12.5; |
|
115 const TReal KH264ENCIMPL_PICTURERATE_25 = 25.0; |
|
116 |
|
117 const TInt KH264ENCIMPL_NUM_COMPLEXITYLEVELS = 3; |
|
118 const TInt KH264ENCIMPL_ENCODEAHEAD = 0; |
|
119 const TInt KH264ENCIMPL_MAXNUM_REFERENCEPICTURES = 16; |
|
120 |
|
121 // Default random access rate - 1 per 3seconds ie 1 after 45 frames at 15 fps |
|
122 const TInt KH264ENCIMPL_DEFAULT_RANDOMACCESSRATE = 0.3333333; |
|
123 |
|
124 // Minimum size of slice in coded picture format. |
|
125 const TInt KH264ENCIMPL_MIN_SLICESIZE = 200; |
|
126 |
|
127 const TInt KPOLLINGINTERVAL = 100000; |
|
128 const TUint KMAXSUPPBITRATE = 10000000; |
|
129 |
|
130 #endif //ARIH264HWDEVICECONSTANTS_H |