summaryrefslogtreecommitdiff
path: root/omx/openmax/NVOMX_RendererExtensions.h
blob: 1316d8800323d7f4cf3434ed550a876e9437f92f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
/* Copyright (c) 2009 - 2013 NVIDIA Corporation.  All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining
 * a copy of this software and associated documentation files (the
 * "Software"), to deal in the Software without restriction, including
 * without limitation the rights to use, copy, modify, merge, publish,
 * distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject
 * to the following conditions:
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

/**
 * @file
 * <b>NVIDIA Tegra: OpenMAX Renderer Extension Interface</b>
 *
 */

#ifndef NVOMX_RendererExtensions_h_
#define NVOMX_RendererExtensions_h_

/**
 * @defgroup nv_omx_il_video_renderer Video Renderer
 *
 * This is the NVIDIA OpenMAX video renderer class extensions interface.
 *
 * These extensions include aspect ratio control, single frame stepping,
 * window and overlay control, frame capture, delivery statistics and more.
 *
 * @ingroup nvomx_renderer_extension
 * @{
 */

// The actual color format for the secondary overlay is determined by the overlay
#define NVX_COLOR_FormatDefaultSecondaryOverlay (OMX_COLOR_Format24BitABGR6666 + 1)

/** Config extension index to force video aspect ratio correction (letter-boxed).
 *  See ::NVX_CONFIG_KEEPASPECT
 */
#define NVX_INDEX_CONFIG_KEEPASPECT "OMX.Nvidia.index.config.keepaspect"
/** Holds data to force video aspect ratio correction. */
typedef struct NVX_CONFIG_KEEPASPECT {
    OMX_U32 nSize;                  /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;       /**< NVX extensions specification version information */
    OMX_BOOL bKeepAspect;           /**< Boolean to enable aspect ratio correction */
} NVX_CONFIG_KEEPASPECT;

/** Config extension index to force video aspect ratio correction (letter-boxed)
with pixel aspect ratio supplied
*  See ::NVX_CONFIG_FORCEASPECT
*/
#define NVX_INDEX_CONFIG_FORCEASPECT "OMX.Nvidia.index.config.forceaspect"
/** Holds data to force video aspect ratio correction with pixel aspect params. */
typedef struct NVX_CONFIG_FORCEASPECT {
    OMX_U32 nSize;                  /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;       /**< NVX extensions specification version information */
    OMX_U32  nNumerator;            /**< Numerator in pixel aspect ratio */
    OMX_U32  nDenominator;          /**< Denominator in pixel aspect ratio */
} NVX_CONFIG_FORCEASPECT;

// Allow manual override on WinA to permit power optimizations from client side
typedef enum
{
    NvxWindow_A = 0,
    NvxWindow_MAX = 0x7FFFFFFF
} ENvxWindowType;

typedef enum
{
    NvxWindowAction_TurnOn = 0,
    NvxWindowAction_TurnOff,
    NvxWindowAction_MAX = 0x7FFFFFFF
} ENvxWindowDispActionType;

/** Config extension index to disable/enable the primary display window and only show the video overlay.
 *  See ::NVX_CONFIG_WINDOWOVERRIDE
 */
#define NVX_INDEX_CONFIG_WINDOW_DISP_OVERRIDE "OMX.Nvidia.index.config.windisp"
/** Holds data to disable/enable the primary display window. */
typedef struct NVX_CONFIG_WINDOWOVERRIDE
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    ENvxWindowType eWindow;             /**< Primary display window type */
    ENvxWindowDispActionType eAction;   /**< Action */
} NVX_CONFIG_WINDOWOVERRIDE;

/** Config extension index to capture the uncompressed video frame data.
 *  See ::NVX_CONFIG_WINDOWOVERRIDE
 */
#define NVX_INDEX_CONFIG_CAPTURERAWFRAME "OMX.Nvidia.index.config.capturerawframe"
/** Holds data to capture the uncompressed video frame data. */
typedef struct NVX_CONFIG_CAPTURERAWFRAME
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_U8 *pBuffer;                    /**< Pointer to buffer to capture into */
    OMX_U32 nBufferSize;                /**< Size of buffer */
} NVX_CONFIG_CAPTURERAWFRAME;

/** Config extension index to select tiled vs linear video data format.
 *  Tiled is a more efficent format, but less compatible with third-party components.
 *
 *  See ::NVX_CONFIG_CUSTOMCOLORFORMAT
 */
#define NVX_INDEX_CONFIG_CUSTOMCOLORFORMAT "OMX.Nvidia.index.config.customcolorformat"
/** Holds data to select tiled versus linear video data format. */
typedef struct NVX_CONFIG_CUSTOMCOLORFORMAT
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_BOOL bTiled;                    /**< Boolean to enable tiled video format */
} NVX_CONFIG_CUSTOMCOLORFORMAT;

/** Config extension index to allow single frame stepping.
 *  See ::NVX_CONFIG_SINGLE_FRAME
 */
#define NVX_INDEX_CONFIG_SINGLE_FRAME "OMX.Nvidia.index.config.singleframe"
/** Holds data to allow single frame stepping. */
typedef struct NVX_CONFIG_SINGLE_FRAME
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_BOOL bEnableMode;               /**< Boolean to enable single frame stepping mode */
} NVX_CONFIG_SINGLE_FRAME;

/** Config extension index to query the number of frames rendered.
 *  See ::NVX_CONFIG_NUMRENDEREDFRAMES
 */
#define NVX_INDEX_CONFIG_NUMRENDEREDFRAMES "OMX.Nvidia.index.config.numrenderedframes"
/** Holds data to query the number of frames rendered. */
typedef struct NVX_CONFIG_NUMRENDEREDFRAMES
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_U32 nFrames;                    /**< Number of rendered frames */
} NVX_CONFIG_NUMRENDEREDFRAMES;

/** Config extension index to allow the video renderer to handle differing size and format video
 * frames on the fly.
 * This will cause a power/performance penalty.
 *
 *  See ::NVX_CONFIG_RENDERHINTMIXEDFRAMES
 */
#define NVX_INDEX_CONFIG_RENDERHINTMIXEDFRAMES "OMX.Nvidia.index.config.renderhintmixedframes"
/** Holds data to allow mixed format frame types. */
typedef struct NVX_CONFIG_RENDERHINTMIXEDFRAMES
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_BOOL bMixedFrames;              /**< Boolean to enable mixed frames support */
} NVX_CONFIG_RENDERHINTMIXEDFRAMES;

/** Config extension index to allow client to provide it's own overlay surface.
 *  See ::NVX_CONFIG_EXTERNALOVERLAY
 */
#define NVX_INDEX_CONFIG_EXTERNALOVERLAY "OMX.Nvidia.index.config.externaloverlay"
/** Holds data to allow the client to provide its own overlay surface. */
typedef struct NVX_CONFIG_EXTERNALOVERLAY
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_U64 oOverlayPtr;                /**< Pointer to application overlay surface */
} NVX_CONFIG_EXTERNALOVERLAY;

/** Config extension index to allow client to provide it's own A/V sync function.
 */
#define NVX_INDEX_CONFIG_EXTERNALAVSYNC "OMX.Nvidia.index.config.externalavsync"
/** A/V sync function for the callback routine. */
typedef void (* NVX_AVSYNC_CALLBACK) (
    OMX_PTR pAppData,                   /**< Application data (context) */
    OMX_TICKS nTimeStamp,               /**< Timestamp of the frame */
    OMX_U32 nFlags,                     /**< Flags of the frame */
    OMX_S32 xScale,                     /**< Current playback speed */
    OMX_BOOL *pDropFrame);              /**< Frame to be dropped (modified by the callback function) */
/** Holds data to allow the client to provide its own A/V sync callback function. */
typedef struct NVX_CONFIG_EXTERNALAVSYNC {
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_PTR pAppData;                   /**< Application data (context) for the callback */
    NVX_AVSYNC_CALLBACK AVSyncCallBack; /**< Callback routine address */
} NVX_CONFIG_EXTERNALAVSYNC;

/** Config extension index to request il to allocate rm surface instead of os memory.
 *  See ::NVX_CONFIG_ALLOCATERMSURF
 */
#define NVX_INDEX_CONFIG_ALLOCATERMSURF "OMX.Nvidia.index.config.rmsurf"
/** Holds data to allow il to allocate rm surface for ilclient. */
typedef struct NVX_CONFIG_ALLOCATERMSURF
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_BOOL bRmSurf;
} NVX_CONFIG_ALLOCATERMSURF;

/** Config extension index to enable smart dimmer functionality if video is played in full screen.
 *  See ::NVX_CONFIG_SMARTDIMMER
 */
#define NVX_INDEX_CONFIG_SMARTDIMMER "OMX.Nvidia.index.config.smartdimmer"
/** Holds data to enable/disable smart dimmer. */
typedef struct NVX_CONFIG_SMARTDIMMER {
    OMX_U32 nSize;                  /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;       /**< NVX extensions specification version information */
    OMX_BOOL bSmartDimmerEnable;    /**< Boolean to enable aspect ratio correction */
} NVX_CONFIG_SMARTDIMMER;

/** Config extension index to allow client to specify use of virtual desktop.
 *  See ::NVX_CONFIG_VIRTUALDESKTOP
 */
#define NVX_INDEX_CONFIG_VIRTUALDESKTOP "OMX.Nvidia.index.config.virtualdesktop"
/** Holds data to allow the client to provide a virtual desktop number. */
typedef struct NVX_CONFIG_VIRTUALDESKTOP
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nDesktopNumber;            /**< Virtual Desktop number */
} NVX_CONFIG_VIRTUALDESKTOP;

/** Config extension index to allow the video renderer to always enable display vsync wait.
 * This is to prevent tearing when there is no actual timestamp on video frames like camera preview.
 *
 *  See ::NVX_CONFIG_RENDERHINTCAMERAPREVIEW
 */
#define NVX_INDEX_CONFIG_RENDERHINTCAMERAPREVIEW "OMX.Nvidia.index.config.renderhintcamerapreview"
/** Holds data to allow camera preview mode. */
typedef struct NVX_CONFIG_RENDERHINTCAMERAPREVIEW
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_BOOL bCameraPreviewMode;        /**< Boolean to enable camera preview support */
} NVX_CONFIG_RENDERHINTCAMERAPREVIEW;

/** Config extension index to allow client to provide it's own overlay surface.
 *  See ::NVX_CONFIG_EXTERNALOVERLAY
 */
#define NVX_INDEX_CONFIG_ANDROIDWINDOW "OMX.Nvidia.index.config.androidwindow"

/** Holds data to allow the client to provide its own overlay surface. */
typedef struct NVX_CONFIG_ANDROIDWINDOW
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_PTR oAndroidWindowPtr;          /**< Pointer to ANW */
} NVX_CONFIG_ANDROIDWINDOW;

/** Config extension index to allow client to provide its own overlay surface
 *  for camera preview.  See ::NVX_CONFIG_EXTERNALOVERLAY
 */
#define NVX_INDEX_CONFIG_CAMERAPREVIEW "OMX.Nvidia.index.config.camerapreview"

/** Holds data to allow the client to provide its own overlay surface. */
typedef struct NVX_CONFIG_CAMERAPREVIEW
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_PTR oAndroidCameraPreviewPtr;          /**< Pointer to a camera-preview interface */
} NVX_CONFIG_CAMERAPREVIEW;

/** Config extension index to allow client to specify the overlay surface
 *  index.
 *  See ::NVX_CONFIG_OVERLAYINDEX
 */
#define NVX_INDEX_CONFIG_OVERLAYINDEX "OMX.Nvidia.index.config.overlayindex"

/** Holds data to allow client to specify the overlay surface index */
typedef struct NVX_CONFIG_OVERLAYINDEX
{
    OMX_U32 nSize;
    OMX_VERSIONTYPE nVersion;
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_U32 index;
} NVX_CONFIG_OVERLAYINDEX;

/** Config extension index to allow window mode on secondary displays
 *  See ::NVX_CONFIG_ALLOWSECONDARYWINDOW
 */
#define NVX_INDEX_CONFIG_ALLOWSECONDARYWINDOW "OMX.Nvidia.index.config.allowsecondarywindow"

/** Holds data to allow window mode on secondary displays */
typedef struct NVX_CONFIG_ALLOWSECONDARYWINDOW
{
    OMX_U32 nSize;
    OMX_VERSIONTYPE nVersion;
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_BOOL bAllow;
} NVX_CONFIG_ALLOWSECONDARYWINDOW;

/** @} */

/**
 * @defgroup nv_omx_il_audio_renderer Audio Renderer
 *
 * This is the NVIDIA OpenMAX audio renderer class extensions interface.
 *
 * These extensions include HDMI and IS2 output control, graphic equalizer,
 * dynamic range compression and automatic gain control, IIR filter setup and more.
 *
 * @ingroup nvomx_renderer_extension
 * @{
 */

/** Number of bands for graphic equalizer */
#define EQBANDS 5
/** Number of channels for graphic equalizer */
#define EQ_NO_CHANNEL 2

/** Number of parametric equalizer filter types */
#define MIXER_NUM_PARA_EQ_FILTERS         4
/** Band-pass parametric equalizer filter */
#define MIXER_BANDPASS_IIR_FILTER         1
/** High-pass parametric equalizer filter */
#define MIXER_HIGHPASS_IIR_FILTER         2
/** Low-pass parametric equalizer filter */
#define MIXER_LOWPASS_IIR_FILTER          3

/** Defines the audio output types. */
typedef enum NVX_AUDIO_OUTPUTTYPE {
    NVX_AUDIO_OutputI2S = 0,
    NVX_AUDIO_OutputHdmi,
    NVX_AUDIO_OutputMusic,
    NVX_AUDIO_OutputRingtone,
    NVX_AUDIO_OutputSpdif,
    NVX_AUDIO_OutputIEC,
    NVX_AUDIO_Force32 = 0x7FFFFFFF
} NVX_AUDIO_OUTPUTTYPE;

/** Config extension index to select audio output device.
 *  See ::NVX_CONFIG_AUDIOOUTPUT
 */
#define NVX_INDEX_CONFIG_AUDIO_OUTPUT "OMX.Nvidia.index.config.audio.output"
/** Holds data to select audio output device. */
typedef struct NVX_CONFIG_AUDIOOUTPUT {
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    NVX_AUDIO_OUTPUTTYPE eOutputType;   /**< Audio output type */
} NVX_CONFIG_AUDIOOUTPUT;

/** Config extension index to disable timestamp event notifications.
 *  Disabling the events help lower power consumption.
 *
 *  See ::NVX_CONFIG_DISABLETSUPDATES
 */
#define NVX_INDEX_CONFIG_DISABLETIMESTAMPUPDATES "OMX.Nvidia.index.config.disabletimestampupdates"
/** Holds data to disable timestamp event notifications. */
typedef struct NVX_CONFIG_DISABLETSUPDATES {
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_BOOL bDisableTSUpdates;         /**< Boolean to disable timestamp event notification */
} NVX_CONFIG_DISABLETSUPDATES;

/** Config extension index to setup the graphic equalizer.
 *  See ::NVX_CONFIG_AUDIO_GRAPHICEQ
 */
#define NVX_INDEX_CONFIG_AUDIO_GRAPHICEQ "OMX.Nvidia.index.config.audio.graphiceq"
/** Holds data to setup the graphic equalizer. */
typedef struct NVX_CONFIG_AUDIO_GRAPHICEQ
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_U32 bEnable;                    /**< Boolean to enable the EQ */
    OMX_S32 dBGain[EQ_NO_CHANNEL][EQBANDS];     /**< Gain in dB per channel and frequency band */
}NVX_CONFIG_AUDIO_GRAPHICEQ;

/** Config extension index to setup dynamic range compression (DRC) and automatic gain control (AGC).
 *  See ::NVX_CONFIG_AUDIO_DRCPROPERTY
 */
#define NVX_INDEX_CONFIG_AUDIO_DRCPROPERTY "OMX.Nvidia.index.config.audio.drcproperty"
/** Holds data to setup dynamic range compression. */
typedef struct NVX_CONFIG_AUDIO_DRCPROPERTY
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_S32   EnableDrc;                /**< Boolean to enable DRC */
    OMX_S32   ClippingTh;               /**< Clipping threshold in dB (UpperCompTh <= ClipTh <= 0dB) */
    OMX_S32   LowerCompTh;              /**< Lower compression threshold in dB (NoiseGateTh <= LowerCompTh <= UpperCompTh) */
    OMX_S32   UpperCompTh;              /**< Upper compression threshold in dB (LowerCompTh <= UpperCompTh <= ClipTh) */
    OMX_S32   NoiseGateTh;              /**< Noise gate threshold in dB (-90dB <= NoiseGateTh <= LowerCompTh) */
}NVX_CONFIG_AUDIO_DRCPROPERTY;

/** Config extension index to setup the parametric equalizer filter.
 *  See ::NVX_CONFIG_AUDIO_PARAEQFILTER
 */
#define NVX_INDEX_CONFIG_AUDIO_PARAEQFILTER "OMX.Nvidia.index.config.audio.paraeqfilter"
/** Holds data to setup the parametric equalizer filter. */
typedef struct NVX_CONFIG_AUDIO_PARAEQFILTER
{
    OMX_U32 nSize;                      /**< Size of the structure in bytes */
    OMX_VERSIONTYPE nVersion;           /**< NVX extensions specification version information */
    OMX_U32 nPortIndex;                 /**< Port that this struct applies to */
    OMX_U32   bEnable;                  /**< Boolean to enable parametric equalizer */
    OMX_U32   bUpdate;                                  /**< Boolean indicates new filter parameters when already enabled */
    OMX_U32   FilterType[MIXER_NUM_PARA_EQ_FILTERS];    /**< MIXER_LOWPASS_IIR_FILTER, MIXER_BANDPASS_IIR_FILTER or MIXER_HIGHPASS_IIR_FILTER */
    OMX_S32   F0[MIXER_NUM_PARA_EQ_FILTERS];            /**< Frequency array in Hz (Range 0 - Fs/2) */
    OMX_S32   BndWdth[MIXER_NUM_PARA_EQ_FILTERS];       /**< Bandwidth array in Hz (Range 0 - Fs/2) */
    OMX_S32   dBGain[MIXER_NUM_PARA_EQ_FILTERS];        /**< Decibel gain array in dB (Limit +/- 12.0 dB) */
}NVX_CONFIG_AUDIO_PARAEQFILTER;

/** Config extension index to query audio session id from audio renderer
 * Use OMX_PARAM_U32TYPE in GetConfig()
 */
#define NVX_INDEX_CONFIG_AUDIO_SESSION_ID "OMX.Nvidia.index.config.audiosessionid"

/** @} */
#endif

/* File EOF */