1/*
2 * Copyright 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/* NOTE: This file contains several sections for individual OMX include files.
18   Each section has its own include guard.  This file should be included AFTER
19   the OMX include files. */
20
21#ifdef ANDROID
22namespace android {
23#endif
24
25#ifdef OMX_Audio_h
26/* asString definitions if media/openmax/OMX_Audio.h was included */
27
28#ifndef AS_STRING_FOR_OMX_AUDIO_H
29#define AS_STRING_FOR_OMX_AUDIO_H
30
31inline static const char *asString(OMX_AUDIO_CODINGTYPE i, const char *def = "??") {
32    switch (i) {
33        case OMX_AUDIO_CodingUnused:     return "Unused";      // unused
34        case OMX_AUDIO_CodingAutoDetect: return "AutoDetect";  // unused
35        case OMX_AUDIO_CodingPCM:        return "PCM";
36        case OMX_AUDIO_CodingADPCM:      return "ADPCM";       // unused
37        case OMX_AUDIO_CodingAMR:        return "AMR";
38        case OMX_AUDIO_CodingGSMFR:      return "GSMFR";
39        case OMX_AUDIO_CodingGSMEFR:     return "GSMEFR";      // unused
40        case OMX_AUDIO_CodingGSMHR:      return "GSMHR";       // unused
41        case OMX_AUDIO_CodingPDCFR:      return "PDCFR";       // unused
42        case OMX_AUDIO_CodingPDCEFR:     return "PDCEFR";      // unused
43        case OMX_AUDIO_CodingPDCHR:      return "PDCHR";       // unused
44        case OMX_AUDIO_CodingTDMAFR:     return "TDMAFR";      // unused
45        case OMX_AUDIO_CodingTDMAEFR:    return "TDMAEFR";     // unused
46        case OMX_AUDIO_CodingQCELP8:     return "QCELP8";      // unused
47        case OMX_AUDIO_CodingQCELP13:    return "QCELP13";     // unused
48        case OMX_AUDIO_CodingEVRC:       return "EVRC";        // unused
49        case OMX_AUDIO_CodingSMV:        return "SMV";         // unused
50        case OMX_AUDIO_CodingG711:       return "G711";
51        case OMX_AUDIO_CodingG723:       return "G723";        // unused
52        case OMX_AUDIO_CodingG726:       return "G726";        // unused
53        case OMX_AUDIO_CodingG729:       return "G729";        // unused
54        case OMX_AUDIO_CodingAAC:        return "AAC";
55        case OMX_AUDIO_CodingMP3:        return "MP3";
56        case OMX_AUDIO_CodingSBC:        return "SBC";         // unused
57        case OMX_AUDIO_CodingVORBIS:     return "VORBIS";
58        case OMX_AUDIO_CodingWMA:        return "WMA";         // unused
59        case OMX_AUDIO_CodingRA:         return "RA";          // unused
60        case OMX_AUDIO_CodingMIDI:       return "MIDI";        // unused
61        case OMX_AUDIO_CodingFLAC:       return "FLAC";
62        default:                         return def;
63    }
64}
65
66inline static const char *asString(OMX_AUDIO_PCMMODETYPE i, const char *def = "??") {
67    switch (i) {
68        case OMX_AUDIO_PCMModeLinear: return "Linear";
69        case OMX_AUDIO_PCMModeALaw:   return "ALaw";
70        case OMX_AUDIO_PCMModeMULaw:  return "MULaw";
71        default:                      return def;
72    }
73}
74
75inline static const char *asString(OMX_AUDIO_CHANNELTYPE i, const char *def = "??") {
76    switch (i) {
77        case OMX_AUDIO_ChannelNone: return "None";  // unused
78        case OMX_AUDIO_ChannelLF:   return "LF";
79        case OMX_AUDIO_ChannelRF:   return "RF";
80        case OMX_AUDIO_ChannelCF:   return "CF";
81        case OMX_AUDIO_ChannelLS:   return "LS";
82        case OMX_AUDIO_ChannelRS:   return "RS";
83        case OMX_AUDIO_ChannelLFE:  return "LFE";
84        case OMX_AUDIO_ChannelCS:   return "CS";
85        case OMX_AUDIO_ChannelLR:   return "LR";
86        case OMX_AUDIO_ChannelRR:   return "RR";
87        default:                    return def;
88    }
89}
90
91inline static const char *asString(OMX_AUDIO_CHANNELMODETYPE i, const char *def = "??") {
92    switch (i) {
93        case OMX_AUDIO_ChannelModeStereo:      return "Stereo";
94//      case OMX_AUDIO_ChannelModeJointStereo: return "JointStereo";
95//      case OMX_AUDIO_ChannelModeDual:        return "Dual";
96        case OMX_AUDIO_ChannelModeMono:        return "Mono";
97        default:                               return def;
98    }
99}
100
101inline static const char *asString(OMX_AUDIO_AACPROFILETYPE i, const char *def = "??") {
102    switch (i) {
103        case OMX_AUDIO_AACObjectNull:     return "Null";
104        case OMX_AUDIO_AACObjectMain:     return "Main";
105        case OMX_AUDIO_AACObjectLC:       return "LC";
106        case OMX_AUDIO_AACObjectSSR:      return "SSR";
107        case OMX_AUDIO_AACObjectLTP:      return "LTP";
108        case OMX_AUDIO_AACObjectHE:       return "HE";
109        case OMX_AUDIO_AACObjectScalable: return "Scalable";
110        case OMX_AUDIO_AACObjectERLC:     return "ERLC";
111        case OMX_AUDIO_AACObjectLD:       return "LD";
112        case OMX_AUDIO_AACObjectHE_PS:    return "HE_PS";
113        default:                          return def;
114    }
115}
116
117inline static const char *asString(OMX_AUDIO_AACSTREAMFORMATTYPE i, const char *def = "??") {
118    switch (i) {
119//      case OMX_AUDIO_AACStreamFormatMP2ADTS: return "MP2ADTS";
120        case OMX_AUDIO_AACStreamFormatMP4ADTS: return "MP4ADTS";
121//      case OMX_AUDIO_AACStreamFormatMP4LOAS: return "MP4LOAS";
122//      case OMX_AUDIO_AACStreamFormatMP4LATM: return "MP4LATM";
123//      case OMX_AUDIO_AACStreamFormatADIF:    return "ADIF";
124        case OMX_AUDIO_AACStreamFormatMP4FF:   return "MP4FF";
125//      case OMX_AUDIO_AACStreamFormatRAW:     return "RAW";
126        default:                               return def;
127    }
128}
129
130inline static const char *asString(OMX_AUDIO_AMRFRAMEFORMATTYPE i, const char *def = "??") {
131    switch (i) {
132//      case OMX_AUDIO_AMRFrameFormatConformance: return "Conformance";
133//      case OMX_AUDIO_AMRFrameFormatIF1:         return "IF1";
134//      case OMX_AUDIO_AMRFrameFormatIF2:         return "IF2";
135        case OMX_AUDIO_AMRFrameFormatFSF:         return "FSF";
136//      case OMX_AUDIO_AMRFrameFormatRTPPayload:  return "RTPPayload";
137//      case OMX_AUDIO_AMRFrameFormatITU:         return "ITU";
138        default:                                  return def;
139    }
140}
141
142inline static const char *asString(OMX_AUDIO_AMRBANDMODETYPE i, const char *def = "??") {
143    switch (i) {
144        case OMX_AUDIO_AMRBandModeUnused: return "Unused";
145        case OMX_AUDIO_AMRBandModeNB0:    return "NB0";
146        case OMX_AUDIO_AMRBandModeNB1:    return "NB1";
147        case OMX_AUDIO_AMRBandModeNB2:    return "NB2";
148        case OMX_AUDIO_AMRBandModeNB3:    return "NB3";
149        case OMX_AUDIO_AMRBandModeNB4:    return "NB4";
150        case OMX_AUDIO_AMRBandModeNB5:    return "NB5";
151        case OMX_AUDIO_AMRBandModeNB6:    return "NB6";
152        case OMX_AUDIO_AMRBandModeNB7:    return "NB7";
153        case OMX_AUDIO_AMRBandModeWB0:    return "WB0";
154        case OMX_AUDIO_AMRBandModeWB1:    return "WB1";
155        case OMX_AUDIO_AMRBandModeWB2:    return "WB2";
156        case OMX_AUDIO_AMRBandModeWB3:    return "WB3";
157        case OMX_AUDIO_AMRBandModeWB4:    return "WB4";
158        case OMX_AUDIO_AMRBandModeWB5:    return "WB5";
159        case OMX_AUDIO_AMRBandModeWB6:    return "WB6";
160        case OMX_AUDIO_AMRBandModeWB7:    return "WB7";
161        case OMX_AUDIO_AMRBandModeWB8:    return "WB8";
162        default:                          return def;
163    }
164}
165
166inline static const char *asString(OMX_AUDIO_AMRDTXMODETYPE i, const char *def = "??") {
167    switch (i) {
168        case OMX_AUDIO_AMRDTXModeOff:    return "ModeOff";
169//      case OMX_AUDIO_AMRDTXModeOnVAD1: return "ModeOnVAD1";
170//      case OMX_AUDIO_AMRDTXModeOnVAD2: return "ModeOnVAD2";
171//      case OMX_AUDIO_AMRDTXModeOnAuto: return "ModeOnAuto";
172//      case OMX_AUDIO_AMRDTXasEFR:      return "asEFR";
173        default:                         return def;
174    }
175}
176
177#endif // AS_STRING_FOR_OMX_AUDIO_H
178
179#endif // OMX_Audio_h
180
181#ifdef OMX_AudioExt_h
182/* asString definitions if media/openmax/OMX_AudioExt.h was included */
183
184#ifndef AS_STRING_FOR_OMX_AUDIOEXT_H
185#define AS_STRING_FOR_OMX_AUDIOEXT_H
186
187inline static const char *asString(OMX_AUDIO_CODINGEXTTYPE i, const char *def = "??") {
188    switch (i) {
189        case OMX_AUDIO_CodingAndroidAC3:  return "AndroidAC3";
190        case OMX_AUDIO_CodingAndroidOPUS: return "AndroidOPUS";
191        default:                          return asString((OMX_AUDIO_CODINGTYPE)i, def);
192    }
193}
194
195#endif // AS_STRING_FOR_OMX_AUDIOEXT_H
196
197#endif // OMX_AudioExt_h
198
199#ifdef OMX_Component_h
200/* asString definitions if media/openmax/OMX_Component.h was included */
201
202#ifndef AS_STRING_FOR_OMX_COMPONENT_H
203#define AS_STRING_FOR_OMX_COMPONENT_H
204
205inline static const char *asString(OMX_PORTDOMAINTYPE i, const char *def = "??") {
206    switch (i) {
207        case OMX_PortDomainAudio: return "Audio";
208        case OMX_PortDomainVideo: return "Video";
209        case OMX_PortDomainImage: return "Image";
210//      case OMX_PortDomainOther: return "Other";
211        default:                  return def;
212    }
213}
214
215#endif // AS_STRING_FOR_OMX_COMPONENT_H
216
217#endif // OMX_Component_h
218
219#ifdef OMX_Core_h
220/* asString definitions if media/openmax/OMX_Core.h was included */
221
222#ifndef AS_STRING_FOR_OMX_CORE_H
223#define AS_STRING_FOR_OMX_CORE_H
224
225inline static const char *asString(OMX_COMMANDTYPE i, const char *def = "??") {
226    switch (i) {
227        case OMX_CommandStateSet:    return "StateSet";
228        case OMX_CommandFlush:       return "Flush";
229        case OMX_CommandPortDisable: return "PortDisable";
230        case OMX_CommandPortEnable:  return "PortEnable";
231//      case OMX_CommandMarkBuffer:  return "MarkBuffer";
232        default:                     return def;
233    }
234}
235
236inline static const char *asString(OMX_STATETYPE i, const char *def = "??") {
237    switch (i) {
238        case OMX_StateInvalid:          return "Invalid";
239        case OMX_StateLoaded:           return "Loaded";
240        case OMX_StateIdle:             return "Idle";
241        case OMX_StateExecuting:        return "Executing";
242//      case OMX_StatePause:            return "Pause";
243//      case OMX_StateWaitForResources: return "WaitForResources";
244        default:                        return def;
245    }
246}
247
248inline static const char *asString(OMX_ERRORTYPE i, const char *def = "??") {
249    switch (i) {
250        case OMX_ErrorNone:                               return "None";
251        case OMX_ErrorInsufficientResources:              return "InsufficientResources";
252        case OMX_ErrorUndefined:                          return "Undefined";
253        case OMX_ErrorInvalidComponentName:               return "InvalidComponentName";
254        case OMX_ErrorComponentNotFound:                  return "ComponentNotFound";
255        case OMX_ErrorInvalidComponent:                   return "InvalidComponent";       // unused
256        case OMX_ErrorBadParameter:                       return "BadParameter";
257        case OMX_ErrorNotImplemented:                     return "NotImplemented";
258        case OMX_ErrorUnderflow:                          return "Underflow";              // unused
259        case OMX_ErrorOverflow:                           return "Overflow";               // unused
260        case OMX_ErrorHardware:                           return "Hardware";               // unused
261        case OMX_ErrorInvalidState:                       return "InvalidState";
262        case OMX_ErrorStreamCorrupt:                      return "StreamCorrupt";
263        case OMX_ErrorPortsNotCompatible:                 return "PortsNotCompatible";     // unused
264        case OMX_ErrorResourcesLost:                      return "ResourcesLost";
265        case OMX_ErrorNoMore:                             return "NoMore";
266        case OMX_ErrorVersionMismatch:                    return "VersionMismatch";        // unused
267        case OMX_ErrorNotReady:                           return "NotReady";               // unused
268        case OMX_ErrorTimeout:                            return "Timeout";                // unused
269        case OMX_ErrorSameState:                          return "SameState";              // unused
270        case OMX_ErrorResourcesPreempted:                 return "ResourcesPreempted";     // unused
271        case OMX_ErrorPortUnresponsiveDuringAllocation:
272            return "PortUnresponsiveDuringAllocation";    // unused
273        case OMX_ErrorPortUnresponsiveDuringDeallocation:
274            return "PortUnresponsiveDuringDeallocation";  // unused
275        case OMX_ErrorPortUnresponsiveDuringStop:
276            return "PortUnresponsiveDuringStop";          // unused
277        case OMX_ErrorIncorrectStateTransition:
278            return "IncorrectStateTransition";            // unused
279        case OMX_ErrorIncorrectStateOperation:
280            return "IncorrectStateOperation";             // unused
281        case OMX_ErrorUnsupportedSetting:                 return "UnsupportedSetting";
282        case OMX_ErrorUnsupportedIndex:                   return "UnsupportedIndex";
283        case OMX_ErrorBadPortIndex:                       return "BadPortIndex";
284        case OMX_ErrorPortUnpopulated:                    return "PortUnpopulated";        // unused
285        case OMX_ErrorComponentSuspended:                 return "ComponentSuspended";     // unused
286        case OMX_ErrorDynamicResourcesUnavailable:
287            return "DynamicResourcesUnavailable";         // unused
288        case OMX_ErrorMbErrorsInFrame:                    return "MbErrorsInFrame";        // unused
289        case OMX_ErrorFormatNotDetected:                  return "FormatNotDetected";      // unused
290        case OMX_ErrorContentPipeOpenFailed:              return "ContentPipeOpenFailed";  // unused
291        case OMX_ErrorContentPipeCreationFailed:
292            return "ContentPipeCreationFailed";           // unused
293        case OMX_ErrorSeperateTablesUsed:                 return "SeperateTablesUsed";     // unused
294        case OMX_ErrorTunnelingUnsupported:               return "TunnelingUnsupported";   // unused
295        default:                                          return def;
296    }
297}
298
299inline static const char *asString(OMX_EVENTTYPE i, const char *def = "??") {
300    switch (i) {
301        case OMX_EventCmdComplete:               return "CmdComplete";
302        case OMX_EventError:                     return "Error";
303//      case OMX_EventMark:                      return "Mark";
304        case OMX_EventPortSettingsChanged:       return "PortSettingsChanged";
305        case OMX_EventBufferFlag:                return "BufferFlag";
306//      case OMX_EventResourcesAcquired:         return "ResourcesAcquired";
307//      case OMX_EventComponentResumed:          return "ComponentResumed";
308//      case OMX_EventDynamicResourcesAvailable: return "DynamicResourcesAvailable";
309//      case OMX_EventPortFormatDetected:        return "PortFormatDetected";
310        case OMX_EventOutputRendered:            return "OutputRendered";
311        case OMX_EventDataSpaceChanged:          return "DataSpaceChanged";
312        default:                                 return def;
313    }
314}
315
316#endif // AS_STRING_FOR_OMX_CORE_H
317
318#endif // OMX_Core_h
319
320#ifdef OMX_Image_h
321/* asString definitions if media/openmax/OMX_Image.h was included */
322
323#ifndef AS_STRING_FOR_OMX_IMAGE_H
324#define AS_STRING_FOR_OMX_IMAGE_H
325
326inline static const char *asString(OMX_IMAGE_CODINGTYPE i, const char *def = "??") {
327    switch (i) {
328        case OMX_IMAGE_CodingUnused:     return "Unused";
329        case OMX_IMAGE_CodingAutoDetect: return "AutoDetect";  // unused
330        case OMX_IMAGE_CodingJPEG:       return "JPEG";
331        case OMX_IMAGE_CodingJPEG2K:     return "JPEG2K";      // unused
332        case OMX_IMAGE_CodingEXIF:       return "EXIF";        // unused
333        case OMX_IMAGE_CodingTIFF:       return "TIFF";        // unused
334        case OMX_IMAGE_CodingGIF:        return "GIF";         // unused
335        case OMX_IMAGE_CodingPNG:        return "PNG";         // unused
336        case OMX_IMAGE_CodingLZW:        return "LZW";         // unused
337        case OMX_IMAGE_CodingBMP:        return "BMP";         // unused
338        default:                         return def;
339    }
340}
341
342#endif // AS_STRING_FOR_OMX_IMAGE_H
343
344#endif // OMX_Image_h
345
346#ifdef OMX_Index_h
347/* asString definitions if media/openmax/OMX_Index.h was included */
348
349#ifndef AS_STRING_FOR_OMX_INDEX_H
350#define AS_STRING_FOR_OMX_INDEX_H
351
352inline static const char *asString(OMX_INDEXTYPE i, const char *def = "??") {
353    switch (i) {
354//      case OMX_IndexParamPriorityMgmt:                    return "ParamPriorityMgmt";
355//      case OMX_IndexParamAudioInit:                       return "ParamAudioInit";
356//      case OMX_IndexParamImageInit:                       return "ParamImageInit";
357//      case OMX_IndexParamVideoInit:                       return "ParamVideoInit";
358//      case OMX_IndexParamOtherInit:                       return "ParamOtherInit";
359//      case OMX_IndexParamNumAvailableStreams:             return "ParamNumAvailableStreams";
360//      case OMX_IndexParamActiveStream:                    return "ParamActiveStream";
361//      case OMX_IndexParamSuspensionPolicy:                return "ParamSuspensionPolicy";
362//      case OMX_IndexParamComponentSuspended:              return "ParamComponentSuspended";
363//      case OMX_IndexConfigCapturing:                      return "ConfigCapturing";
364//      case OMX_IndexConfigCaptureMode:                    return "ConfigCaptureMode";
365//      case OMX_IndexAutoPauseAfterCapture:                return "AutoPauseAfterCapture";
366//      case OMX_IndexParamContentURI:                      return "ParamContentURI";
367//      case OMX_IndexParamCustomContentPipe:               return "ParamCustomContentPipe";
368//      case OMX_IndexParamDisableResourceConcealment:
369//          return "ParamDisableResourceConcealment";
370//      case OMX_IndexConfigMetadataItemCount:              return "ConfigMetadataItemCount";
371//      case OMX_IndexConfigContainerNodeCount:             return "ConfigContainerNodeCount";
372//      case OMX_IndexConfigMetadataItem:                   return "ConfigMetadataItem";
373//      case OMX_IndexConfigCounterNodeID:                  return "ConfigCounterNodeID";
374//      case OMX_IndexParamMetadataFilterType:              return "ParamMetadataFilterType";
375//      case OMX_IndexParamMetadataKeyFilter:               return "ParamMetadataKeyFilter";
376//      case OMX_IndexConfigPriorityMgmt:                   return "ConfigPriorityMgmt";
377        case OMX_IndexParamStandardComponentRole:           return "ParamStandardComponentRole";
378        case OMX_IndexParamPortDefinition:                  return "ParamPortDefinition";
379//      case OMX_IndexParamCompBufferSupplier:              return "ParamCompBufferSupplier";
380        case OMX_IndexParamAudioPortFormat:                 return "ParamAudioPortFormat";
381        case OMX_IndexParamAudioPcm:                        return "ParamAudioPcm";
382        case OMX_IndexParamAudioAac:                        return "ParamAudioAac";
383//      case OMX_IndexParamAudioRa:                         return "ParamAudioRa";
384        case OMX_IndexParamAudioMp3:                        return "ParamAudioMp3";
385//      case OMX_IndexParamAudioAdpcm:                      return "ParamAudioAdpcm";
386//      case OMX_IndexParamAudioG723:                       return "ParamAudioG723";
387//      case OMX_IndexParamAudioG729:                       return "ParamAudioG729";
388        case OMX_IndexParamAudioAmr:                        return "ParamAudioAmr";
389//      case OMX_IndexParamAudioWma:                        return "ParamAudioWma";
390//      case OMX_IndexParamAudioSbc:                        return "ParamAudioSbc";
391//      case OMX_IndexParamAudioMidi:                       return "ParamAudioMidi";
392//      case OMX_IndexParamAudioGsm_FR:                     return "ParamAudioGsm_FR";
393//      case OMX_IndexParamAudioMidiLoadUserSound:          return "ParamAudioMidiLoadUserSound";
394//      case OMX_IndexParamAudioG726:                       return "ParamAudioG726";
395//      case OMX_IndexParamAudioGsm_EFR:                    return "ParamAudioGsm_EFR";
396//      case OMX_IndexParamAudioGsm_HR:                     return "ParamAudioGsm_HR";
397//      case OMX_IndexParamAudioPdc_FR:                     return "ParamAudioPdc_FR";
398//      case OMX_IndexParamAudioPdc_EFR:                    return "ParamAudioPdc_EFR";
399//      case OMX_IndexParamAudioPdc_HR:                     return "ParamAudioPdc_HR";
400//      case OMX_IndexParamAudioTdma_FR:                    return "ParamAudioTdma_FR";
401//      case OMX_IndexParamAudioTdma_EFR:                   return "ParamAudioTdma_EFR";
402//      case OMX_IndexParamAudioQcelp8:                     return "ParamAudioQcelp8";
403//      case OMX_IndexParamAudioQcelp13:                    return "ParamAudioQcelp13";
404//      case OMX_IndexParamAudioEvrc:                       return "ParamAudioEvrc";
405//      case OMX_IndexParamAudioSmv:                        return "ParamAudioSmv";
406        case OMX_IndexParamAudioVorbis:                     return "ParamAudioVorbis";
407        case OMX_IndexParamAudioFlac:                       return "ParamAudioFlac";
408//      case OMX_IndexConfigAudioMidiImmediateEvent:        return "ConfigAudioMidiImmediateEvent";
409//      case OMX_IndexConfigAudioMidiControl:               return "ConfigAudioMidiControl";
410//      case OMX_IndexConfigAudioMidiSoundBankProgram:
411//          return "ConfigAudioMidiSoundBankProgram";
412//      case OMX_IndexConfigAudioMidiStatus:                return "ConfigAudioMidiStatus";
413//      case OMX_IndexConfigAudioMidiMetaEvent:             return "ConfigAudioMidiMetaEvent";
414//      case OMX_IndexConfigAudioMidiMetaEventData:         return "ConfigAudioMidiMetaEventData";
415//      case OMX_IndexConfigAudioVolume:                    return "ConfigAudioVolume";
416//      case OMX_IndexConfigAudioBalance:                   return "ConfigAudioBalance";
417//      case OMX_IndexConfigAudioChannelMute:               return "ConfigAudioChannelMute";
418//      case OMX_IndexConfigAudioMute:                      return "ConfigAudioMute";
419//      case OMX_IndexConfigAudioLoudness:                  return "ConfigAudioLoudness";
420//      case OMX_IndexConfigAudioEchoCancelation:           return "ConfigAudioEchoCancelation";
421//      case OMX_IndexConfigAudioNoiseReduction:            return "ConfigAudioNoiseReduction";
422//      case OMX_IndexConfigAudioBass:                      return "ConfigAudioBass";
423//      case OMX_IndexConfigAudioTreble:                    return "ConfigAudioTreble";
424//      case OMX_IndexConfigAudioStereoWidening:            return "ConfigAudioStereoWidening";
425//      case OMX_IndexConfigAudioChorus:                    return "ConfigAudioChorus";
426//      case OMX_IndexConfigAudioEqualizer:                 return "ConfigAudioEqualizer";
427//      case OMX_IndexConfigAudioReverberation:             return "ConfigAudioReverberation";
428//      case OMX_IndexConfigAudioChannelVolume:             return "ConfigAudioChannelVolume";
429//      case OMX_IndexParamImagePortFormat:                 return "ParamImagePortFormat";
430//      case OMX_IndexParamFlashControl:                    return "ParamFlashControl";
431//      case OMX_IndexConfigFocusControl:                   return "ConfigFocusControl";
432//      case OMX_IndexParamQFactor:                         return "ParamQFactor";
433//      case OMX_IndexParamQuantizationTable:               return "ParamQuantizationTable";
434//      case OMX_IndexParamHuffmanTable:                    return "ParamHuffmanTable";
435//      case OMX_IndexConfigFlashControl:                   return "ConfigFlashControl";
436        case OMX_IndexParamVideoPortFormat:                 return "ParamVideoPortFormat";
437//      case OMX_IndexParamVideoQuantization:               return "ParamVideoQuantization";
438//      case OMX_IndexParamVideoFastUpdate:                 return "ParamVideoFastUpdate";
439        case OMX_IndexParamVideoBitrate:                    return "ParamVideoBitrate";
440//      case OMX_IndexParamVideoMotionVector:               return "ParamVideoMotionVector";
441        case OMX_IndexParamVideoIntraRefresh:               return "ParamVideoIntraRefresh";
442        case OMX_IndexParamVideoErrorCorrection:            return "ParamVideoErrorCorrection";
443//      case OMX_IndexParamVideoVBSMC:                      return "ParamVideoVBSMC";
444//      case OMX_IndexParamVideoMpeg2:                      return "ParamVideoMpeg2";
445        case OMX_IndexParamVideoMpeg4:                      return "ParamVideoMpeg4";
446//      case OMX_IndexParamVideoWmv:                        return "ParamVideoWmv";
447//      case OMX_IndexParamVideoRv:                         return "ParamVideoRv";
448        case OMX_IndexParamVideoAvc:                        return "ParamVideoAvc";
449        case OMX_IndexParamVideoH263:                       return "ParamVideoH263";
450        case OMX_IndexParamVideoProfileLevelQuerySupported:
451            return "ParamVideoProfileLevelQuerySupported";
452        case OMX_IndexParamVideoProfileLevelCurrent:        return "ParamVideoProfileLevelCurrent";
453        case OMX_IndexConfigVideoBitrate:                   return "ConfigVideoBitrate";
454//      case OMX_IndexConfigVideoFramerate:                 return "ConfigVideoFramerate";
455        case OMX_IndexConfigVideoIntraVOPRefresh:           return "ConfigVideoIntraVOPRefresh";
456//      case OMX_IndexConfigVideoIntraMBRefresh:            return "ConfigVideoIntraMBRefresh";
457//      case OMX_IndexConfigVideoMBErrorReporting:          return "ConfigVideoMBErrorReporting";
458//      case OMX_IndexParamVideoMacroblocksPerFrame:        return "ParamVideoMacroblocksPerFrame";
459//      case OMX_IndexConfigVideoMacroBlockErrorMap:        return "ConfigVideoMacroBlockErrorMap";
460//      case OMX_IndexParamVideoSliceFMO:                   return "ParamVideoSliceFMO";
461//      case OMX_IndexConfigVideoAVCIntraPeriod:            return "ConfigVideoAVCIntraPeriod";
462//      case OMX_IndexConfigVideoNalSize:                   return "ConfigVideoNalSize";
463//      case OMX_IndexParamCommonDeblocking:                return "ParamCommonDeblocking";
464//      case OMX_IndexParamCommonSensorMode:                return "ParamCommonSensorMode";
465//      case OMX_IndexParamCommonInterleave:                return "ParamCommonInterleave";
466//      case OMX_IndexConfigCommonColorFormatConversion:
467//          return "ConfigCommonColorFormatConversion";
468        case OMX_IndexConfigCommonScale:                    return "ConfigCommonScale";
469//      case OMX_IndexConfigCommonImageFilter:              return "ConfigCommonImageFilter";
470//      case OMX_IndexConfigCommonColorEnhancement:         return "ConfigCommonColorEnhancement";
471//      case OMX_IndexConfigCommonColorKey:                 return "ConfigCommonColorKey";
472//      case OMX_IndexConfigCommonColorBlend:               return "ConfigCommonColorBlend";
473//      case OMX_IndexConfigCommonFrameStabilisation:       return "ConfigCommonFrameStabilisation";
474//      case OMX_IndexConfigCommonRotate:                   return "ConfigCommonRotate";
475//      case OMX_IndexConfigCommonMirror:                   return "ConfigCommonMirror";
476//      case OMX_IndexConfigCommonOutputPosition:           return "ConfigCommonOutputPosition";
477        case OMX_IndexConfigCommonInputCrop:                return "ConfigCommonInputCrop";
478        case OMX_IndexConfigCommonOutputCrop:               return "ConfigCommonOutputCrop";
479//      case OMX_IndexConfigCommonDigitalZoom:              return "ConfigCommonDigitalZoom";
480//      case OMX_IndexConfigCommonOpticalZoom:              return "ConfigCommonOpticalZoom";
481//      case OMX_IndexConfigCommonWhiteBalance:             return "ConfigCommonWhiteBalance";
482//      case OMX_IndexConfigCommonExposure:                 return "ConfigCommonExposure";
483//      case OMX_IndexConfigCommonContrast:                 return "ConfigCommonContrast";
484//      case OMX_IndexConfigCommonBrightness:               return "ConfigCommonBrightness";
485//      case OMX_IndexConfigCommonBacklight:                return "ConfigCommonBacklight";
486//      case OMX_IndexConfigCommonGamma:                    return "ConfigCommonGamma";
487//      case OMX_IndexConfigCommonSaturation:               return "ConfigCommonSaturation";
488//      case OMX_IndexConfigCommonLightness:                return "ConfigCommonLightness";
489//      case OMX_IndexConfigCommonExclusionRect:            return "ConfigCommonExclusionRect";
490//      case OMX_IndexConfigCommonDithering:                return "ConfigCommonDithering";
491//      case OMX_IndexConfigCommonPlaneBlend:               return "ConfigCommonPlaneBlend";
492//      case OMX_IndexConfigCommonExposureValue:            return "ConfigCommonExposureValue";
493//      case OMX_IndexConfigCommonOutputSize:               return "ConfigCommonOutputSize";
494//      case OMX_IndexParamCommonExtraQuantData:            return "ParamCommonExtraQuantData";
495//      case OMX_IndexConfigCommonFocusRegion:              return "ConfigCommonFocusRegion";
496//      case OMX_IndexConfigCommonFocusStatus:              return "ConfigCommonFocusStatus";
497//      case OMX_IndexConfigCommonTransitionEffect:         return "ConfigCommonTransitionEffect";
498//      case OMX_IndexParamOtherPortFormat:                 return "ParamOtherPortFormat";
499//      case OMX_IndexConfigOtherPower:                     return "ConfigOtherPower";
500//      case OMX_IndexConfigOtherStats:                     return "ConfigOtherStats";
501//      case OMX_IndexConfigTimeScale:                      return "ConfigTimeScale";
502//      case OMX_IndexConfigTimeClockState:                 return "ConfigTimeClockState";
503//      case OMX_IndexConfigTimeActiveRefClock:             return "ConfigTimeActiveRefClock";
504//      case OMX_IndexConfigTimeCurrentMediaTime:           return "ConfigTimeCurrentMediaTime";
505//      case OMX_IndexConfigTimeCurrentWallTime:            return "ConfigTimeCurrentWallTime";
506//      case OMX_IndexConfigTimeCurrentAudioReference:
507//          return "ConfigTimeCurrentAudioReference";
508//      case OMX_IndexConfigTimeCurrentVideoReference:
509//          return "ConfigTimeCurrentVideoReference";
510//      case OMX_IndexConfigTimeMediaTimeRequest:           return "ConfigTimeMediaTimeRequest";
511//      case OMX_IndexConfigTimeClientStartTime:            return "ConfigTimeClientStartTime";
512//      case OMX_IndexConfigTimePosition:                   return "ConfigTimePosition";
513//      case OMX_IndexConfigTimeSeekMode:                   return "ConfigTimeSeekMode";
514        default:                                            return def;
515    }
516}
517
518#endif // AS_STRING_FOR_OMX_INDEX_H
519
520#endif // OMX_Index_h
521
522#ifdef OMX_IndexExt_h
523/* asString definitions if media/openmax/OMX_IndexExt.h was included */
524
525#ifndef AS_STRING_FOR_OMX_INDEXEXT_H
526#define AS_STRING_FOR_OMX_INDEXEXT_H
527
528inline static const char *asString(OMX_INDEXEXTTYPE i, const char *def = "??") {
529    switch (i) {
530//      case OMX_IndexConfigCallbackRequest:            return "ConfigCallbackRequest";
531//      case OMX_IndexConfigCommitMode:                 return "ConfigCommitMode";
532//      case OMX_IndexConfigCommit:                     return "ConfigCommit";
533        case OMX_IndexParamAudioAndroidAc3:             return "ParamAudioAndroidAc3";
534        case OMX_IndexParamAudioAndroidOpus:            return "ParamAudioAndroidOpus";
535        case OMX_IndexParamAudioAndroidAacPresentation: return "ParamAudioAndroidAacPresentation";
536//      case OMX_IndexParamNalStreamFormatSupported:    return "ParamNalStreamFormatSupported";
537//      case OMX_IndexParamNalStreamFormat:             return "ParamNalStreamFormat";
538//      case OMX_IndexParamNalStreamFormatSelect:       return "ParamNalStreamFormatSelect";
539        case OMX_IndexParamVideoVp8:                    return "ParamVideoVp8";
540//      case OMX_IndexConfigVideoVp8ReferenceFrame:     return "ConfigVideoVp8ReferenceFrame";
541//      case OMX_IndexConfigVideoVp8ReferenceFrameType: return "ConfigVideoVp8ReferenceFrameType";
542        case OMX_IndexParamVideoAndroidVp8Encoder:      return "ParamVideoAndroidVp8Encoder";
543        case OMX_IndexParamVideoHevc:                   return "ParamVideoHevc";
544//      case OMX_IndexParamSliceSegments:               return "ParamSliceSegments";
545        case OMX_IndexConfigAndroidIntraRefresh:        return "ConfigAndroidIntraRefresh";
546        case OMX_IndexParamAndroidVideoTemporalLayering: return "ParamAndroidVideoTemporalLayering";
547        case OMX_IndexConfigAndroidVideoTemporalLayering: return "ConfigAndroidVideoTemporalLayering";
548        case OMX_IndexConfigAutoFramerateConversion:    return "ConfigAutoFramerateConversion";
549        case OMX_IndexConfigPriority:                   return "ConfigPriority";
550        case OMX_IndexConfigOperatingRate:              return "ConfigOperatingRate";
551        case OMX_IndexParamConsumerUsageBits:           return "ParamConsumerUsageBits";
552        default:                                        return asString((OMX_INDEXTYPE)i, def);
553    }
554}
555
556#endif // AS_STRING_FOR_OMX_INDEXEXT_H
557
558#endif // OMX_IndexExt_h
559
560#ifdef OMX_IVCommon_h
561/* asString definitions if media/openmax/OMX_IVCommon.h was included */
562
563#ifndef AS_STRING_FOR_OMX_IVCOMMON_H
564#define AS_STRING_FOR_OMX_IVCOMMON_H
565
566inline static const char *asString(OMX_COLOR_FORMATTYPE i, const char *def = "??") {
567    switch (i) {
568        case OMX_COLOR_FormatUnused:
569            return "COLOR_FormatUnused";
570        case OMX_COLOR_FormatMonochrome:
571            return "COLOR_FormatMonochrome";
572        case OMX_COLOR_Format8bitRGB332:
573            return "COLOR_Format8bitRGB332";
574        case OMX_COLOR_Format12bitRGB444:
575            return "COLOR_Format12bitRGB444";
576        case OMX_COLOR_Format16bitARGB4444:
577            return "COLOR_Format16bitARGB4444";
578        case OMX_COLOR_Format16bitARGB1555:
579            return "COLOR_Format16bitARGB1555";
580        case OMX_COLOR_Format16bitRGB565:
581            return "COLOR_Format16bitRGB565";
582        case OMX_COLOR_Format16bitBGR565:
583            return "COLOR_Format16bitBGR565";
584        case OMX_COLOR_Format18bitRGB666:
585            return "COLOR_Format18bitRGB666";
586        case OMX_COLOR_Format18bitARGB1665:
587            return "COLOR_Format18bitARGB1665";
588        case OMX_COLOR_Format19bitARGB1666:
589            return "COLOR_Format19bitARGB1666";
590        case OMX_COLOR_Format24bitRGB888:
591            return "COLOR_Format24bitRGB888";
592        case OMX_COLOR_Format24bitBGR888:
593            return "COLOR_Format24bitBGR888";
594        case OMX_COLOR_Format24bitARGB1887:
595            return "COLOR_Format24bitARGB1887";
596        case OMX_COLOR_Format25bitARGB1888:
597            return "COLOR_Format25bitARGB1888";
598        case OMX_COLOR_Format32bitBGRA8888:
599            return "COLOR_Format32bitBGRA8888";
600        case OMX_COLOR_Format32bitARGB8888:
601            return "COLOR_Format32bitARGB8888";
602        case OMX_COLOR_FormatYUV411Planar:
603            return "COLOR_FormatYUV411Planar";
604        case OMX_COLOR_FormatYUV411PackedPlanar:
605            return "COLOR_FormatYUV411PackedPlanar";
606        case OMX_COLOR_FormatYUV420Planar:
607            return "COLOR_FormatYUV420Planar";
608        case OMX_COLOR_FormatYUV420PackedPlanar:
609            return "COLOR_FormatYUV420PackedPlanar";
610        case OMX_COLOR_FormatYUV420SemiPlanar:
611            return "COLOR_FormatYUV420SemiPlanar";
612        case OMX_COLOR_FormatYUV422Planar:
613            return "COLOR_FormatYUV422Planar";
614        case OMX_COLOR_FormatYUV422PackedPlanar:
615            return "COLOR_FormatYUV422PackedPlanar";
616        case OMX_COLOR_FormatYUV422SemiPlanar:
617            return "COLOR_FormatYUV422SemiPlanar";
618        case OMX_COLOR_FormatYCbYCr:
619            return "COLOR_FormatYCbYCr";
620        case OMX_COLOR_FormatYCrYCb:
621            return "COLOR_FormatYCrYCb";
622        case OMX_COLOR_FormatCbYCrY:
623            return "COLOR_FormatCbYCrY";
624        case OMX_COLOR_FormatCrYCbY:
625            return "COLOR_FormatCrYCbY";
626        case OMX_COLOR_FormatYUV444Interleaved:
627            return "COLOR_FormatYUV444Interleaved";
628        case OMX_COLOR_FormatRawBayer8bit:
629            return "COLOR_FormatRawBayer8bit";
630        case OMX_COLOR_FormatRawBayer10bit:
631            return "COLOR_FormatRawBayer10bit";
632        case OMX_COLOR_FormatRawBayer8bitcompressed:
633            return "COLOR_FormatRawBayer8bitcompressed";
634        case OMX_COLOR_FormatL2:
635            return "COLOR_FormatL2";
636        case OMX_COLOR_FormatL4:
637            return "COLOR_FormatL4";
638        case OMX_COLOR_FormatL8:
639            return "COLOR_FormatL8";
640        case OMX_COLOR_FormatL16:
641            return "COLOR_FormatL16";
642        case OMX_COLOR_FormatL24:
643            return "COLOR_FormatL24";
644        case OMX_COLOR_FormatL32:
645            return "COLOR_FormatL32";
646        case OMX_COLOR_FormatYUV420PackedSemiPlanar:
647            return "COLOR_FormatYUV420PackedSemiPlanar";
648        case OMX_COLOR_FormatYUV422PackedSemiPlanar:
649            return "COLOR_FormatYUV422PackedSemiPlanar";
650        case OMX_COLOR_Format18BitBGR666:
651            return "COLOR_Format18BitBGR666";
652        case OMX_COLOR_Format24BitARGB6666:
653            return "COLOR_Format24BitARGB6666";
654        case OMX_COLOR_Format24BitABGR6666:
655            return "COLOR_Format24BitABGR6666";
656        case OMX_COLOR_FormatAndroidOpaque:
657            return "COLOR_FormatAndroidOpaque";
658        case OMX_COLOR_FormatYUV420Flexible:
659            return "COLOR_FormatYUV420Flexible";
660        case OMX_TI_COLOR_FormatYUV420PackedSemiPlanar:
661            return "TI_COLOR_FormatYUV420PackedSemiPlanar";
662        case OMX_QCOM_COLOR_FormatYVU420SemiPlanar:
663            return "QCOM_COLOR_FormatYVU420SemiPlanar";
664//      case OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka:
665//          return "QCOM_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka";
666//      case OMX_SEC_COLOR_FormatNV12Tiled:
667//          return "SEC_COLOR_FormatNV12Tiled";
668//      case OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar32m:
669//          return "QCOM_COLOR_FormatYUV420PackedSemiPlanar32m";
670        default:
671            return def;
672    }
673}
674
675#endif // AS_STRING_FOR_OMX_IVCOMMON_H
676
677#endif // OMX_IVCommon_h
678
679#ifdef OMX_Types_h
680/* asString definitions if media/openmax/OMX_Types.h was included */
681
682#ifndef AS_STRING_FOR_OMX_TYPES_H
683#define AS_STRING_FOR_OMX_TYPES_H
684
685inline static const char *asString(OMX_BOOL i, const char *def = "??") {
686    switch (i) {
687        case OMX_FALSE: return "FALSE";
688        case OMX_TRUE:  return "TRUE";
689        default:        return def;
690    }
691}
692
693inline static const char *asString(OMX_DIRTYPE i, const char *def = "??") {
694    switch (i) {
695        case OMX_DirInput:  return "Input";
696        case OMX_DirOutput: return "Output";
697        default:            return def;
698    }
699}
700
701inline static const char *asString(OMX_ENDIANTYPE i, const char *def = "??") {
702    switch (i) {
703        case OMX_EndianBig:    return "Big";
704//      case OMX_EndianLittle: return "Little";
705        default:               return def;
706    }
707}
708
709inline static const char *asString(OMX_NUMERICALDATATYPE i, const char *def = "??") {
710    switch (i) {
711        case OMX_NumericalDataSigned:   return "Signed";
712//      case OMX_NumericalDataUnsigned: return "Unsigned";
713        default:                        return def;
714    }
715}
716
717#endif // AS_STRING_FOR_OMX_TYPES_H
718
719#endif // OMX_Types_h
720
721#ifdef OMX_Video_h
722/* asString definitions if media/openmax/OMX_Video.h was included */
723
724#ifndef AS_STRING_FOR_OMX_VIDEO_H
725#define AS_STRING_FOR_OMX_VIDEO_H
726
727inline static const char *asString(OMX_VIDEO_CODINGTYPE i, const char *def = "??") {
728    switch (i) {
729        case OMX_VIDEO_CodingUnused:     return "Unused";
730        case OMX_VIDEO_CodingAutoDetect: return "AutoDetect";  // unused
731        case OMX_VIDEO_CodingMPEG2:      return "MPEG2";
732        case OMX_VIDEO_CodingH263:       return "H263";
733        case OMX_VIDEO_CodingMPEG4:      return "MPEG4";
734        case OMX_VIDEO_CodingWMV:        return "WMV";         // unused
735        case OMX_VIDEO_CodingRV:         return "RV";          // unused
736        case OMX_VIDEO_CodingAVC:        return "AVC";
737        case OMX_VIDEO_CodingMJPEG:      return "MJPEG";       // unused
738        case OMX_VIDEO_CodingVP8:        return "VP8";
739        case OMX_VIDEO_CodingVP9:        return "VP9";
740        case OMX_VIDEO_CodingHEVC:       return "HEVC";
741        case OMX_VIDEO_CodingDolbyVision:return "DolbyVision";
742        default:                         return def;
743    }
744}
745
746inline static const char *asString(OMX_VIDEO_CONTROLRATETYPE i, const char *def = "??") {
747    switch (i) {
748//      case OMX_Video_ControlRateDisable:            return "Disable";
749        case OMX_Video_ControlRateVariable:           return "Variable";
750        case OMX_Video_ControlRateConstant:           return "Constant";
751//      case OMX_Video_ControlRateVariableSkipFrames: return "VariableSkipFrames";
752//      case OMX_Video_ControlRateConstantSkipFrames: return "ConstantSkipFrames";
753        default:                                      return def;
754    }
755}
756
757inline static const char *asString(OMX_VIDEO_INTRAREFRESHTYPE i, const char *def = "??") {
758    switch (i) {
759        case OMX_VIDEO_IntraRefreshCyclic:   return "Cyclic";
760        case OMX_VIDEO_IntraRefreshAdaptive: return "Adaptive";
761        case OMX_VIDEO_IntraRefreshBoth:     return "Both";
762        default:                             return def;
763    }
764}
765
766inline static const char *asString(OMX_VIDEO_H263PROFILETYPE i, const char *def = "??") {
767    switch (i) {
768        case OMX_VIDEO_H263ProfileBaseline:           return "Baseline";
769        case OMX_VIDEO_H263ProfileH320Coding:         return "H320Coding";
770        case OMX_VIDEO_H263ProfileBackwardCompatible: return "BackwardCompatible";
771        case OMX_VIDEO_H263ProfileISWV2:              return "ISWV2";
772        case OMX_VIDEO_H263ProfileISWV3:              return "ISWV3";
773        case OMX_VIDEO_H263ProfileHighCompression:    return "HighCompression";
774        case OMX_VIDEO_H263ProfileInternet:           return "Internet";
775        case OMX_VIDEO_H263ProfileInterlace:          return "Interlace";
776        case OMX_VIDEO_H263ProfileHighLatency:        return "HighLatency";
777        default:                                      return def;
778    }
779}
780
781inline static const char *asString(OMX_VIDEO_H263LEVELTYPE i, const char *def = "??") {
782    switch (i) {
783        case OMX_VIDEO_H263Level10: return "Level10";
784        case OMX_VIDEO_H263Level20: return "Level20";
785        case OMX_VIDEO_H263Level30: return "Level30";
786        case OMX_VIDEO_H263Level40: return "Level40";
787        case OMX_VIDEO_H263Level45: return "Level45";
788        case OMX_VIDEO_H263Level50: return "Level50";
789        case OMX_VIDEO_H263Level60: return "Level60";
790        case OMX_VIDEO_H263Level70: return "Level70";
791        default:                    return def;
792    }
793}
794
795inline static const char *asString(OMX_VIDEO_PICTURETYPE i, const char *def = "??") {
796    switch (i) {
797        case OMX_VIDEO_PictureTypeI:  return "I";
798        case OMX_VIDEO_PictureTypeP:  return "P";
799        case OMX_VIDEO_PictureTypeB:  return "B";
800//      case OMX_VIDEO_PictureTypeSI: return "SI";
801//      case OMX_VIDEO_PictureTypeSP: return "SP";
802//      case OMX_VIDEO_PictureTypeEI: return "EI";
803//      case OMX_VIDEO_PictureTypeEP: return "EP";
804//      case OMX_VIDEO_PictureTypeS:  return "S";
805        default:                      return def;
806    }
807}
808
809inline static const char *asString(OMX_VIDEO_MPEG4PROFILETYPE i, const char *def = "??") {
810    switch (i) {
811        case OMX_VIDEO_MPEG4ProfileSimple:           return "Simple";
812        case OMX_VIDEO_MPEG4ProfileSimpleScalable:   return "SimpleScalable";
813        case OMX_VIDEO_MPEG4ProfileCore:             return "Core";
814        case OMX_VIDEO_MPEG4ProfileMain:             return "Main";
815        case OMX_VIDEO_MPEG4ProfileNbit:             return "Nbit";
816        case OMX_VIDEO_MPEG4ProfileScalableTexture:  return "ScalableTexture";
817        case OMX_VIDEO_MPEG4ProfileSimpleFace:       return "SimpleFace";
818        case OMX_VIDEO_MPEG4ProfileSimpleFBA:        return "SimpleFBA";
819        case OMX_VIDEO_MPEG4ProfileBasicAnimated:    return "BasicAnimated";
820        case OMX_VIDEO_MPEG4ProfileHybrid:           return "Hybrid";
821        case OMX_VIDEO_MPEG4ProfileAdvancedRealTime: return "AdvancedRealTime";
822        case OMX_VIDEO_MPEG4ProfileCoreScalable:     return "CoreScalable";
823        case OMX_VIDEO_MPEG4ProfileAdvancedCoding:   return "AdvancedCoding";
824        case OMX_VIDEO_MPEG4ProfileAdvancedCore:     return "AdvancedCore";
825        case OMX_VIDEO_MPEG4ProfileAdvancedScalable: return "AdvancedScalable";
826        case OMX_VIDEO_MPEG4ProfileAdvancedSimple:   return "AdvancedSimple";
827        default:                                     return def;
828    }
829}
830
831inline static const char *asString(OMX_VIDEO_MPEG4LEVELTYPE i, const char *def = "??") {
832    switch (i) {
833        case OMX_VIDEO_MPEG4Level0:  return "Level0";
834        case OMX_VIDEO_MPEG4Level0b: return "Level0b";
835        case OMX_VIDEO_MPEG4Level1:  return "Level1";
836        case OMX_VIDEO_MPEG4Level2:  return "Level2";
837        case OMX_VIDEO_MPEG4Level3:  return "Level3";
838        case OMX_VIDEO_MPEG4Level3b: return "Level3b";
839        case OMX_VIDEO_MPEG4Level4:  return "Level4";
840        case OMX_VIDEO_MPEG4Level4a: return "Level4a";
841        case OMX_VIDEO_MPEG4Level5:  return "Level5";
842        case OMX_VIDEO_MPEG4Level6:  return "Level6";
843        default:                     return def;
844    }
845}
846
847inline static const char *asString(OMX_VIDEO_MPEG2PROFILETYPE i, const char *def = "??") {
848    switch (i) {
849        case OMX_VIDEO_MPEG2ProfileSimple:  return "Simple";
850        case OMX_VIDEO_MPEG2ProfileMain:    return "Main";
851        case OMX_VIDEO_MPEG2Profile422:     return "4:2:2";
852        case OMX_VIDEO_MPEG2ProfileSNR:     return "SNR";
853        case OMX_VIDEO_MPEG2ProfileSpatial: return "Spatial";
854        case OMX_VIDEO_MPEG2ProfileHigh:    return "High";
855        default:                            return def;
856    }
857}
858
859inline static const char *asString(OMX_VIDEO_MPEG2LEVELTYPE i, const char *def = "??") {
860    switch (i) {
861        case OMX_VIDEO_MPEG2LevelLL:  return "Low";
862        case OMX_VIDEO_MPEG2LevelML:  return "Main";
863        case OMX_VIDEO_MPEG2LevelH14: return "High1440";
864        case OMX_VIDEO_MPEG2LevelHL:  return "High";
865        default:                      return def;
866    }
867}
868
869inline static const char *asString(OMX_VIDEO_AVCPROFILETYPE i, const char *def = "??") {
870    switch (i) {
871        case OMX_VIDEO_AVCProfileBaseline: return "Baseline";
872        case OMX_VIDEO_AVCProfileMain:     return "Main";
873        case OMX_VIDEO_AVCProfileExtended: return "Extended";
874        case OMX_VIDEO_AVCProfileHigh:     return "High";
875        case OMX_VIDEO_AVCProfileHigh10:   return "High10";
876        case OMX_VIDEO_AVCProfileHigh422:  return "High422";
877        case OMX_VIDEO_AVCProfileHigh444:  return "High444";
878        default:                           return def;
879    }
880}
881
882inline static const char *asString(OMX_VIDEO_AVCLEVELTYPE i, const char *def = "??") {
883    switch (i) {
884        case OMX_VIDEO_AVCLevel1:  return "Level1";
885        case OMX_VIDEO_AVCLevel1b: return "Level1b";
886        case OMX_VIDEO_AVCLevel11: return "Level11";
887        case OMX_VIDEO_AVCLevel12: return "Level12";
888        case OMX_VIDEO_AVCLevel13: return "Level13";
889        case OMX_VIDEO_AVCLevel2:  return "Level2";
890        case OMX_VIDEO_AVCLevel21: return "Level21";
891        case OMX_VIDEO_AVCLevel22: return "Level22";
892        case OMX_VIDEO_AVCLevel3:  return "Level3";
893        case OMX_VIDEO_AVCLevel31: return "Level31";
894        case OMX_VIDEO_AVCLevel32: return "Level32";
895        case OMX_VIDEO_AVCLevel4:  return "Level4";
896        case OMX_VIDEO_AVCLevel41: return "Level41";
897        case OMX_VIDEO_AVCLevel42: return "Level42";
898        case OMX_VIDEO_AVCLevel5:  return "Level5";
899        case OMX_VIDEO_AVCLevel51: return "Level51";
900        case OMX_VIDEO_AVCLevel52: return "Level52";
901        default:                   return def;
902    }
903}
904
905inline static const char *asString(OMX_VIDEO_AVCLOOPFILTERTYPE i, const char *def = "??") {
906    switch (i) {
907        case OMX_VIDEO_AVCLoopFilterEnable:               return "Enable";
908//      case OMX_VIDEO_AVCLoopFilterDisable:              return "Disable";
909//      case OMX_VIDEO_AVCLoopFilterDisableSliceBoundary: return "DisableSliceBoundary";
910        default:                                          return def;
911    }
912}
913
914#endif // AS_STRING_FOR_OMX_VIDEO_H
915
916#endif // OMX_Video_h
917
918#ifdef OMX_VideoExt_h
919/* asString definitions if media/openmax/OMX_VideoExt.h was included */
920
921#ifndef AS_STRING_FOR_OMX_VIDEOEXT_H
922#define AS_STRING_FOR_OMX_VIDEOEXT_H
923
924inline static const char *asString(OMX_VIDEO_VP8PROFILETYPE i, const char *def = "??") {
925    switch (i) {
926        case OMX_VIDEO_VP8ProfileMain:    return "Main";
927        case OMX_VIDEO_VP8ProfileUnknown: return "Unknown";  // unused
928        default:                          return def;
929    }
930}
931
932inline static const char *asString(OMX_VIDEO_VP8LEVELTYPE i, const char *def = "??") {
933    switch (i) {
934        case OMX_VIDEO_VP8Level_Version0: return "_Version0";
935        case OMX_VIDEO_VP8Level_Version1: return "_Version1";
936        case OMX_VIDEO_VP8Level_Version2: return "_Version2";
937        case OMX_VIDEO_VP8Level_Version3: return "_Version3";
938        case OMX_VIDEO_VP8LevelUnknown:   return "Unknown";    // unused
939        default:                          return def;
940    }
941}
942
943inline static const char *asString(OMX_VIDEO_VP9PROFILETYPE i, const char *def = "??") {
944    switch (i) {
945        case OMX_VIDEO_VP9Profile0:    return "Profile0";
946        case OMX_VIDEO_VP9Profile1:    return "Profile1";
947        case OMX_VIDEO_VP9Profile2:    return "Profile2";
948        case OMX_VIDEO_VP9Profile3:    return "Profile3";
949        case OMX_VIDEO_VP9Profile2HDR: return "Profile2HDR";
950        case OMX_VIDEO_VP9Profile3HDR: return "Profile3HDR";
951        default:                       return def;
952    }
953}
954
955inline static const char *asString(OMX_VIDEO_VP9LEVELTYPE i, const char *def = "??") {
956    switch (i) {
957        case OMX_VIDEO_VP9Level1:  return "Level1";
958        case OMX_VIDEO_VP9Level11: return "Level11";
959        case OMX_VIDEO_VP9Level2:  return "Level2";
960        case OMX_VIDEO_VP9Level21: return "Level21";
961        case OMX_VIDEO_VP9Level3:  return "Level3";
962        case OMX_VIDEO_VP9Level31: return "Level31";
963        case OMX_VIDEO_VP9Level4:  return "Level4";
964        case OMX_VIDEO_VP9Level41: return "Level41";
965        case OMX_VIDEO_VP9Level5:  return "Level5";
966        case OMX_VIDEO_VP9Level51: return "Level51";
967        case OMX_VIDEO_VP9Level52: return "Level52";
968        case OMX_VIDEO_VP9Level6:  return "Level6";
969        case OMX_VIDEO_VP9Level61: return "Level61";
970        case OMX_VIDEO_VP9Level62: return "Level62";
971        default:                   return def;
972    }
973}
974
975inline static const char *asString(
976        OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE i, const char *def = "??") {
977    switch (i) {
978        case OMX_VIDEO_VPXTemporalLayerPatternNone:   return "None";
979        case OMX_VIDEO_VPXTemporalLayerPatternWebRTC: return "WebRTC";
980        default:                                      return def;
981    }
982}
983
984inline static const char *asString(OMX_VIDEO_HEVCPROFILETYPE i, const char *def = "!!") {
985    switch (i) {
986        case OMX_VIDEO_HEVCProfileUnknown:      return "Unknown";  // unused
987        case OMX_VIDEO_HEVCProfileMain:         return "Main";
988        case OMX_VIDEO_HEVCProfileMain10:       return "Main10";
989        case OMX_VIDEO_HEVCProfileMain10HDR10:  return "Main10HDR10";
990        default:                                return def;
991    }
992}
993
994inline static const char *asString(OMX_VIDEO_HEVCLEVELTYPE i, const char *def = "!!") {
995    switch (i) {
996        case OMX_VIDEO_HEVCLevelUnknown:    return "LevelUnknown";     // unused
997        case OMX_VIDEO_HEVCMainTierLevel1:  return "MainTierLevel1";
998        case OMX_VIDEO_HEVCHighTierLevel1:  return "HighTierLevel1";
999        case OMX_VIDEO_HEVCMainTierLevel2:  return "MainTierLevel2";
1000        case OMX_VIDEO_HEVCHighTierLevel2:  return "HighTierLevel2";
1001        case OMX_VIDEO_HEVCMainTierLevel21: return "MainTierLevel21";
1002        case OMX_VIDEO_HEVCHighTierLevel21: return "HighTierLevel21";
1003        case OMX_VIDEO_HEVCMainTierLevel3:  return "MainTierLevel3";
1004        case OMX_VIDEO_HEVCHighTierLevel3:  return "HighTierLevel3";
1005        case OMX_VIDEO_HEVCMainTierLevel31: return "MainTierLevel31";
1006        case OMX_VIDEO_HEVCHighTierLevel31: return "HighTierLevel31";
1007        case OMX_VIDEO_HEVCMainTierLevel4:  return "MainTierLevel4";
1008        case OMX_VIDEO_HEVCHighTierLevel4:  return "HighTierLevel4";
1009        case OMX_VIDEO_HEVCMainTierLevel41: return "MainTierLevel41";
1010        case OMX_VIDEO_HEVCHighTierLevel41: return "HighTierLevel41";
1011        case OMX_VIDEO_HEVCMainTierLevel5:  return "MainTierLevel5";
1012        case OMX_VIDEO_HEVCHighTierLevel5:  return "HighTierLevel5";
1013        case OMX_VIDEO_HEVCMainTierLevel51: return "MainTierLevel51";
1014        case OMX_VIDEO_HEVCHighTierLevel51: return "HighTierLevel51";
1015        case OMX_VIDEO_HEVCMainTierLevel52: return "MainTierLevel52";
1016        case OMX_VIDEO_HEVCHighTierLevel52: return "HighTierLevel52";
1017        case OMX_VIDEO_HEVCMainTierLevel6:  return "MainTierLevel6";
1018        case OMX_VIDEO_HEVCHighTierLevel6:  return "HighTierLevel6";
1019        case OMX_VIDEO_HEVCMainTierLevel61: return "MainTierLevel61";
1020        case OMX_VIDEO_HEVCHighTierLevel61: return "HighTierLevel61";
1021        case OMX_VIDEO_HEVCMainTierLevel62: return "MainTierLevel62";
1022        case OMX_VIDEO_HEVCHighTierLevel62: return "HighTierLevel62";
1023        default:                            return def;
1024    }
1025}
1026
1027inline static const char *asString(
1028        OMX_VIDEO_ANDROID_TEMPORALLAYERINGPATTERNTYPE i, const char *def = "??") {
1029    switch (i) {
1030        case OMX_VIDEO_AndroidTemporalLayeringPatternNone:    return "None";
1031        case OMX_VIDEO_AndroidTemporalLayeringPatternWebRTC:  return "WebRTC";
1032        case OMX_VIDEO_AndroidTemporalLayeringPatternAndroid: return "Android";
1033        default:                                              return def;
1034    }
1035}
1036
1037#endif // AS_STRING_FOR_OMX_VIDEOEXT_H
1038
1039#endif // OMX_VideoExt_h
1040
1041#ifdef ANDROID
1042} // namespace android
1043#endif
1044