1root {
2    module = "master";
3    codec_config {
4        match_attr = "media_codec_capabilities";
5        use_openmax = true;
6        // capsMask: 0x01, Adaptive playback; 0x02, Secure playback; 0x04, Tunnel playback.
7        // allocateMask: 0x01, Input buffer allocated within the Codec module;
8        // allocateMask: 0x02, Input buffer allocated by an external user;
9        // allocateMask: 0x04, Output buffer allocated within the Codec module;
10        // allocateMask: 0x08, Output buffer allocated by an external user.
11
12        VideoHwEncoders {
13            /* node name explanation -- HDF_video_hw_enc_avc_rk:
14            **
15            **    HDF____________video__________________hw____________________enc____________avc_______rk
16            **     |               |                    |                      |              |        |
17            ** HDF or OMX    video or audio    hardware or software    encoder or decoder    mime    vendor
18            */
19            HDF_video_hw_enc_avc_rk {
20                role = 1;
21                type = 1;
22                name = "OMX.rk.video_encoder.avc";
23                supportProfiles = [1, 32768, 2, 32768, 8, 32768];
24                maxInst = 4;
25                isSoftwareCodec = false;
26                processModeMask = [];
27                capsMask = [0x01];
28                minBitRate = 1;
29                maxBitRate = 40000000;
30                minWidth = 144;
31                minHeight = 144;
32                maxWidth = 4096;
33                maxHeight = 4096;
34                widthAlignment = 2;
35                heightAlignment = 2;
36                minBlockCount = 99;
37                maxBlockCount = 34560;
38                minBlocksPerSecond = 99;
39                maxBlocksPerSecond = 2073600;
40                blockSizeWidth = 16;
41                blockSizeHeight = 16;
42                supportPixelFmts = [28, 24, 20, 12];
43                measuredFrameRate = [320, 240, 165, 165, 720, 480, 149, 149, 1280, 720, 73, 73, 1920, 1080, 18, 18];
44                bitRateMode = [1, 2];
45                minFrameRate = 1;
46                maxFrameRate = 60;
47                canSwapWidthHeight = true;
48            }
49            HDF_video_hw_enc_hevc_rk {
50                role = 2;
51                type = 1;
52                name = "OMX.rk.video_encoder.hevc";
53                supportProfiles = [1, 4096, 2, 4096, 4096, 4096];
54                maxInst = 4;
55                isSoftwareCodec = false;
56                processModeMask = [];
57                capsMask = [0x01];
58                minBitRate = 1;
59                maxBitRate = 40000000;
60                minWidth = 144;
61                minHeight = 144;
62                maxWidth = 4096;
63                maxHeight = 4096;
64                widthAlignment = 2;
65                heightAlignment = 2;
66                minBlockCount = 99;
67                maxBlockCount = 34560;
68                minBlocksPerSecond = 99;
69                maxBlocksPerSecond = 2073600;
70                blockSizeWidth = 16;
71                blockSizeHeight = 16;
72                supportPixelFmts = [28, 24, 20, 12];
73                measuredFrameRate = [320, 240, 165, 165, 720, 480, 149, 149, 1280, 720, 73, 73, 1920, 1080, 18, 18];
74                bitRateMode = [1, 2];
75                minFrameRate = 1;
76                maxFrameRate = 60;
77                canSwapWidthHeight = true;
78            }
79        }
80        VideoHwDecoders {
81            HDF_video_hw_dec_avc_rk {
82                role = 1;
83                type = 0;
84                name = "OMX.rk.video_decoder.avc";
85                supportProfiles = [1, 32768, 2, 32768, 8, 32768];
86                maxInst = 6;
87                isSoftwareCodec = false;
88                processModeMask = [];
89                capsMask = [0x01];
90                minBitRate = 1;
91                maxBitRate = 10000000;
92                minWidth = 144;
93                minHeight = 144;
94                maxWidth = 4096;
95                maxHeight = 4096;
96                widthAlignment = 2;
97                heightAlignment = 2;
98                minBlockCount = 99;
99                maxBlockCount = 34560;
100                minBlocksPerSecond = 99;
101                maxBlocksPerSecond = 2073600;
102                blockSizeWidth = 16;
103                blockSizeHeight = 16;
104                supportPixelFmts = [24, 12, 20];
105                measuredFrameRate = [320, 240, 617, 617, 720, 480, 559, 559, 1280, 720, 276, 276, 1920, 1080, 164, 164, 3840, 2160, 30, 30];
106                bitRateMode = [];
107                minFrameRate = 1;
108                maxFrameRate = 60;
109                canSwapWidthHeight = true;
110            }
111            HDF_video_hw_dec_mpeg2_rk {
112                role = 0xFFFFFFFF;
113                type = 0;
114                name = "OMX.rk.video_decoder.m2v";
115                supportProfiles = [0, 3, 1, 3];
116                maxInst = 6;
117                isSoftwareCodec = false;
118                processModeMask = [];
119                capsMask = [0x01];
120                minBitRate = 1;
121                maxBitRate = 10000000;
122                minWidth = 176;
123                minHeight = 144;
124                maxWidth = 1920;
125                maxHeight = 1088;
126                widthAlignment = 8;
127                heightAlignment = 8;
128                minBlockCount = 0xFFFFFFFF;
129                maxBlockCount = 0xFFFFFFFF;
130                minBlocksPerSecond = 1;
131                maxBlocksPerSecond = 244800;
132                blockSizeWidth = 16;
133                blockSizeHeight = 8;
134                supportPixelFmts = [24, 12, 20];
135                measuredFrameRate = [];
136                bitRateMode = [];
137                minFrameRate = 0;
138                maxFrameRate = 0;
139            }
140            HDF_video_hw_dec_v8p_rk {
141                role = 0xFFFFFFFF;
142                type = 0;
143                name = "OMX.rk.video_decoder.vp8";
144                supportProfiles = [];
145                maxInst = 6;
146                isSoftwareCodec = false;
147                processModeMask = [];
148                capsMask = [0x01];
149                minBitRate = 1;
150                maxBitRate = 10000000;
151                minWidth = 176;
152                minHeight = 144;
153                maxWidth = 1920;
154                maxHeight = 1088;
155                widthAlignment = 8;
156                heightAlignment = 8;
157                minBlockCount = 0xFFFFFFFF;
158                maxBlockCount = 0xFFFFFFFF;
159                minBlocksPerSecond = 1;
160                maxBlocksPerSecond = 244800;
161                blockSizeWidth = 16;
162                blockSizeHeight = 16;
163                supportPixelFmts = [24, 12, 20];
164                measuredFrameRate = [320, 180, 500, 500, 640, 360, 387, 387, 1280, 720, 112, 112, 1920, 1080, 77, 77];
165                bitRateMode = [];
166                minFrameRate = 0;
167                maxFrameRate = 0;
168            }
169            HDF_video_hw_dec_h263_rk {
170                role = 0xFFFFFFFF;
171                type = 0;
172                name = "OMX.rk.video_decoder.h263";
173                supportProfiles = [1, 1, 1, 2, 1, 4, 1, 16, 8, 1, 8, 2, 8, 4, 8, 16];
174                maxInst = 6;
175                isSoftwareCodec = false;
176                processModeMask = [];
177                capsMask = [0x01];
178                minBitRate = 1;
179                maxBitRate = 10000000;
180                minWidth = 176;
181                minHeight = 144;
182                maxWidth = 1920;
183                maxHeight = 1088;
184                widthAlignment = 8;
185                heightAlignment = 8;
186                minBlockCount = 0xFFFFFFFF;
187                maxBlockCount = 0xFFFFFFFF;
188                minBlocksPerSecond = 1;
189                maxBlocksPerSecond = 244800;
190                blockSizeWidth = 16;
191                blockSizeHeight = 16;
192                supportPixelFmts = [24, 12, 20];
193                measuredFrameRate = [176, 144, 600, 600, 352, 288, 600, 600];
194                bitRateMode = [];
195                minFrameRate = 0;
196                maxFrameRate = 0;
197            }
198            HDF_video_hw_dec_m4v_rk {
199                role = 3;
200                type = 0;
201                name = "OMX.rk.video_decoder.m4v";
202                supportProfiles = [1, 1, 1, 2, 1, 4, 1, 8, 1, 16];
203                maxInst = 6;
204                isSoftwareCodec = false;
205                processModeMask = [];
206                capsMask = [0x01];
207                minBitRate = 1;
208                maxBitRate = 10000000;
209                minWidth = 176;
210                minHeight = 144;
211                maxWidth = 1920;
212                maxHeight = 1088;
213                widthAlignment = 8;
214                heightAlignment = 8;
215                minBlockCount = 0xFFFFFFFF;
216                maxBlockCount = 0xFFFFFFFF;
217                minBlocksPerSecond = 1;
218                maxBlocksPerSecond = 244800;
219                blockSizeWidth = 16;
220                blockSizeHeight = 16;
221                supportPixelFmts = [24, 12, 20];
222                measuredFrameRate = [176, 144, 600, 600];
223                bitRateMode = [];
224                minFrameRate = 0;
225                maxFrameRate = 0;
226            }
227            HDF_video_hw_dec_flv_rk {
228                role = 0xFFFFFFFF;
229                type = 0;
230                name = "OMX.rk.video_decoder.flv1";
231                supportProfiles = [];
232                maxInst = 6;
233                isSoftwareCodec = false;
234                processModeMask = [];
235                capsMask = [0x01];
236                minBitRate = 1;
237                maxBitRate = 10000000;
238                minWidth = 176;
239                minHeight = 144;
240                maxWidth = 1920;
241                maxHeight = 1088;
242                widthAlignment = 8;
243                heightAlignment = 8;
244                minBlockCount = 0xFFFFFFFF;
245                maxBlockCount = 0xFFFFFFFF;
246                minBlocksPerSecond = 1;
247                maxBlocksPerSecond = 244800;
248                blockSizeWidth = 16;
249                blockSizeHeight = 16;
250                supportPixelFmts = [24, 12, 20];
251                measuredFrameRate = [];
252                bitRateMode = [];
253                minFrameRate = 0;
254                maxFrameRate = 0;
255            }
256            HDF_video_hw_dec_mjpeg_rk {
257                role = 0;
258                type = 0;
259                name = "OMX.rk.video_decoder.mjpeg";
260                supportProfiles = [];
261                maxInst = 6;
262                isSoftwareCodec = false;
263                processModeMask = [];
264                capsMask = [0x01];
265                minBitRate = 1;
266                maxBitRate = 10000000;
267                minWidth = 176;
268                minHeight = 144;
269                maxWidth = 1920;
270                maxHeight = 1088;
271                widthAlignment = 8;
272                heightAlignment = 8;
273                minBlockCount = 0xFFFFFFFF;
274                maxBlockCount = 0xFFFFFFFF;
275                minBlocksPerSecond = 1;
276                maxBlocksPerSecond = 244800;
277                blockSizeWidth = 16;
278                blockSizeHeight = 16;
279                supportPixelFmts = [24, 12, 20];
280                measuredFrameRate = [];
281                bitRateMode = [];
282                minFrameRate = 0;
283                maxFrameRate = 0;
284            }
285            HDF_video_hw_dec_hevc_rk {
286                role = 2;
287                type = 0;
288                name = "OMX.rk.video_decoder.hevc";
289                supportProfiles = [1, 1, 1, 4, 1, 16, 1, 64, 1, 256, 1, 1024, 1, 4096, 1, 16384, 1, 65536, 2, 65536];
290                maxInst = 6;
291                isSoftwareCodec = false;
292                processModeMask = [];
293                capsMask = [0x01];
294                minBitRate = 1;
295                maxBitRate = 160000000;
296                minWidth = 144;
297                minHeight = 144;
298                maxWidth = 4096;
299                maxHeight = 4096;
300                widthAlignment = 2;
301                heightAlignment = 2;
302                minBlockCount = 99;
303                maxBlockCount = 34560;
304                minBlocksPerSecond = 99;
305                maxBlocksPerSecond = 2073600;
306                blockSizeWidth = 16;
307                blockSizeHeight = 16;
308                supportPixelFmts = [24, 12, 20];
309                measuredFrameRate = [352, 288, 700, 700, 720, 480, 700, 700, 640, 360, 980, 980, 1280, 720, 600, 600, 1920, 1080, 130, 130, 3840, 2160, 130, 130];
310                bitRateMode = [];
311                minFrameRate = 0;
312                maxFrameRate = 0;
313                canSwapWidthHeight = true;
314            }
315            HDF_video_hw_dec_vp9_rk {
316                role = 4;
317                type = 0;
318                name = "OMX.rk.video_decoder.vp9";
319                supportProfiles = [1, 1, 1, 2, 1, 4, 1, 16, 1, 32, 1, 64, 1, 256, 1, 1024, 1, 2048, 1, 4096, 1, 8192];
320                maxInst = 6;
321                isSoftwareCodec = false;
322                processModeMask = [];
323                capsMask = [0x01];
324                minBitRate = 1;
325                maxBitRate = 300000000;
326                minWidth = 96;
327                minHeight = 96;
328                maxWidth = 4096;
329                maxHeight = 2160;
330                widthAlignment = 2;
331                heightAlignment = 2;
332                minBlockCount = 0xFFFFFFFF;
333                maxBlockCount = 0xFFFFFFFF;
334                minBlocksPerSecond = 1;
335                maxBlocksPerSecond = 972000;
336                blockSizeWidth = 16;
337                blockSizeHeight = 16;
338                supportPixelFmts = [24, 12, 20];
339                measuredFrameRate = [320, 180, 500, 500, 640, 360, 387, 387, 1280, 720, 310, 318, 1920, 1080, 150, 200];
340                bitRateMode = [];
341                minFrameRate = 0;
342                maxFrameRate = 0;
343            }
344        }
345        VideoSwEncoders {
346        }
347        VideoSwDecoders {
348        }
349        AudioHwEncoders {
350        }
351        AudioHwDecoders {
352        }
353        AudioSwEncoders {
354        }
355        AudioSwDecoders {
356        }
357    }
358}
359