1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Video for Linux Two controls header file 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Copyright (C) 1999-2012 the contributors 5*4882a593Smuzhiyun * 6*4882a593Smuzhiyun * This program is free software; you can redistribute it and/or modify 7*4882a593Smuzhiyun * it under the terms of the GNU General Public License as published by 8*4882a593Smuzhiyun * the Free Software Foundation; either version 2 of the License, or 9*4882a593Smuzhiyun * (at your option) any later version. 10*4882a593Smuzhiyun * 11*4882a593Smuzhiyun * This program is distributed in the hope that it will be useful, 12*4882a593Smuzhiyun * but WITHOUT ANY WARRANTY; without even the implied warranty of 13*4882a593Smuzhiyun * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*4882a593Smuzhiyun * GNU General Public License for more details. 15*4882a593Smuzhiyun * 16*4882a593Smuzhiyun * Alternatively you can redistribute this file under the terms of the 17*4882a593Smuzhiyun * BSD license as stated below: 18*4882a593Smuzhiyun * 19*4882a593Smuzhiyun * Redistribution and use in source and binary forms, with or without 20*4882a593Smuzhiyun * modification, are permitted provided that the following conditions 21*4882a593Smuzhiyun * are met: 22*4882a593Smuzhiyun * 1. Redistributions of source code must retain the above copyright 23*4882a593Smuzhiyun * notice, this list of conditions and the following disclaimer. 24*4882a593Smuzhiyun * 2. Redistributions in binary form must reproduce the above copyright 25*4882a593Smuzhiyun * notice, this list of conditions and the following disclaimer in 26*4882a593Smuzhiyun * the documentation and/or other materials provided with the 27*4882a593Smuzhiyun * distribution. 28*4882a593Smuzhiyun * 3. The names of its contributors may not be used to endorse or promote 29*4882a593Smuzhiyun * products derived from this software without specific prior written 30*4882a593Smuzhiyun * permission. 31*4882a593Smuzhiyun * 32*4882a593Smuzhiyun * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 33*4882a593Smuzhiyun * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 34*4882a593Smuzhiyun * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 35*4882a593Smuzhiyun * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 36*4882a593Smuzhiyun * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 37*4882a593Smuzhiyun * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 38*4882a593Smuzhiyun * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 39*4882a593Smuzhiyun * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 40*4882a593Smuzhiyun * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 41*4882a593Smuzhiyun * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 42*4882a593Smuzhiyun * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 43*4882a593Smuzhiyun * 44*4882a593Smuzhiyun * The contents of this header was split off from videodev2.h. All control 45*4882a593Smuzhiyun * definitions should be added to this header, which is included by 46*4882a593Smuzhiyun * videodev2.h. 47*4882a593Smuzhiyun */ 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun #ifndef __LINUX_V4L2_CONTROLS_H 50*4882a593Smuzhiyun #define __LINUX_V4L2_CONTROLS_H 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #include <linux/types.h> 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun /* Control classes */ 55*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ 56*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ 57*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */ 58*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator controls */ 59*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */ 60*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_JPEG 0x009d0000 /* JPEG-compression controls */ 61*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_IMAGE_SOURCE 0x009e0000 /* Image source controls */ 62*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_IMAGE_PROC 0x009f0000 /* Image processing controls */ 63*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_DV 0x00a00000 /* Digital Video controls */ 64*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */ 65*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */ 66*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_DETECT 0x00a30000 /* Detection controls */ 67*4882a593Smuzhiyun #define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000 /* Colorimetry controls */ 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun /* User-class control IDs */ 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun #define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900) 72*4882a593Smuzhiyun #define V4L2_CID_USER_BASE V4L2_CID_BASE 73*4882a593Smuzhiyun #define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1) 74*4882a593Smuzhiyun #define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0) 75*4882a593Smuzhiyun #define V4L2_CID_CONTRAST (V4L2_CID_BASE+1) 76*4882a593Smuzhiyun #define V4L2_CID_SATURATION (V4L2_CID_BASE+2) 77*4882a593Smuzhiyun #define V4L2_CID_HUE (V4L2_CID_BASE+3) 78*4882a593Smuzhiyun #define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5) 79*4882a593Smuzhiyun #define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6) 80*4882a593Smuzhiyun #define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7) 81*4882a593Smuzhiyun #define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8) 82*4882a593Smuzhiyun #define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9) 83*4882a593Smuzhiyun #define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10) 84*4882a593Smuzhiyun #define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11) /* Deprecated */ 85*4882a593Smuzhiyun #define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12) 86*4882a593Smuzhiyun #define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13) 87*4882a593Smuzhiyun #define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14) 88*4882a593Smuzhiyun #define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15) 89*4882a593Smuzhiyun #define V4L2_CID_GAMMA (V4L2_CID_BASE+16) 90*4882a593Smuzhiyun #define V4L2_CID_WHITENESS (V4L2_CID_GAMMA) /* Deprecated */ 91*4882a593Smuzhiyun #define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17) 92*4882a593Smuzhiyun #define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18) 93*4882a593Smuzhiyun #define V4L2_CID_GAIN (V4L2_CID_BASE+19) 94*4882a593Smuzhiyun #define V4L2_CID_HFLIP (V4L2_CID_BASE+20) 95*4882a593Smuzhiyun #define V4L2_CID_VFLIP (V4L2_CID_BASE+21) 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun #define V4L2_CID_POWER_LINE_FREQUENCY (V4L2_CID_BASE+24) 98*4882a593Smuzhiyun enum v4l2_power_line_frequency { 99*4882a593Smuzhiyun V4L2_CID_POWER_LINE_FREQUENCY_DISABLED = 0, 100*4882a593Smuzhiyun V4L2_CID_POWER_LINE_FREQUENCY_50HZ = 1, 101*4882a593Smuzhiyun V4L2_CID_POWER_LINE_FREQUENCY_60HZ = 2, 102*4882a593Smuzhiyun V4L2_CID_POWER_LINE_FREQUENCY_AUTO = 3, 103*4882a593Smuzhiyun }; 104*4882a593Smuzhiyun #define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25) 105*4882a593Smuzhiyun #define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26) 106*4882a593Smuzhiyun #define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27) 107*4882a593Smuzhiyun #define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28) 108*4882a593Smuzhiyun #define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29) 109*4882a593Smuzhiyun #define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30) 110*4882a593Smuzhiyun #define V4L2_CID_COLORFX (V4L2_CID_BASE+31) 111*4882a593Smuzhiyun enum v4l2_colorfx { 112*4882a593Smuzhiyun V4L2_COLORFX_NONE = 0, 113*4882a593Smuzhiyun V4L2_COLORFX_BW = 1, 114*4882a593Smuzhiyun V4L2_COLORFX_SEPIA = 2, 115*4882a593Smuzhiyun V4L2_COLORFX_NEGATIVE = 3, 116*4882a593Smuzhiyun V4L2_COLORFX_EMBOSS = 4, 117*4882a593Smuzhiyun V4L2_COLORFX_SKETCH = 5, 118*4882a593Smuzhiyun V4L2_COLORFX_SKY_BLUE = 6, 119*4882a593Smuzhiyun V4L2_COLORFX_GRASS_GREEN = 7, 120*4882a593Smuzhiyun V4L2_COLORFX_SKIN_WHITEN = 8, 121*4882a593Smuzhiyun V4L2_COLORFX_VIVID = 9, 122*4882a593Smuzhiyun V4L2_COLORFX_AQUA = 10, 123*4882a593Smuzhiyun V4L2_COLORFX_ART_FREEZE = 11, 124*4882a593Smuzhiyun V4L2_COLORFX_SILHOUETTE = 12, 125*4882a593Smuzhiyun V4L2_COLORFX_SOLARIZATION = 13, 126*4882a593Smuzhiyun V4L2_COLORFX_ANTIQUE = 14, 127*4882a593Smuzhiyun V4L2_COLORFX_SET_CBCR = 15, 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun #define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32) 130*4882a593Smuzhiyun #define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33) 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun #define V4L2_CID_ROTATE (V4L2_CID_BASE+34) 133*4882a593Smuzhiyun #define V4L2_CID_BG_COLOR (V4L2_CID_BASE+35) 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun #define V4L2_CID_CHROMA_GAIN (V4L2_CID_BASE+36) 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun #define V4L2_CID_ILLUMINATORS_1 (V4L2_CID_BASE+37) 138*4882a593Smuzhiyun #define V4L2_CID_ILLUMINATORS_2 (V4L2_CID_BASE+38) 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun #define V4L2_CID_MIN_BUFFERS_FOR_CAPTURE (V4L2_CID_BASE+39) 141*4882a593Smuzhiyun #define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE+40) 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun #define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41) 144*4882a593Smuzhiyun #define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42) 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun /* last CID + 1 */ 147*4882a593Smuzhiyun #define V4L2_CID_LASTP1 (V4L2_CID_BASE+43) 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun /* USER-class private control IDs */ 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun /* The base for the meye driver controls. See linux/meye.h for the list 152*4882a593Smuzhiyun * of controls. We reserve 16 controls for this driver. */ 153*4882a593Smuzhiyun #define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000) 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun /* The base for the bttv driver controls. 156*4882a593Smuzhiyun * We reserve 32 controls for this driver. */ 157*4882a593Smuzhiyun #define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010) 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun /* The base for the s2255 driver controls. 161*4882a593Smuzhiyun * We reserve 16 controls for this driver. */ 162*4882a593Smuzhiyun #define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030) 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun /* The base for the si476x driver controls. See include/media/si476x.h for the list 165*4882a593Smuzhiyun * of controls. Total of 16 controls is reserved for this driver */ 166*4882a593Smuzhiyun #define V4L2_CID_USER_SI476X_BASE (V4L2_CID_USER_BASE + 0x1040) 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun /* The base for the TI VPE driver controls. Total of 16 controls is reserved for 169*4882a593Smuzhiyun * this driver */ 170*4882a593Smuzhiyun #define V4L2_CID_USER_TI_VPE_BASE (V4L2_CID_USER_BASE + 0x1050) 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun /* The base for the saa7134 driver controls. 173*4882a593Smuzhiyun * We reserve 16 controls for this driver. */ 174*4882a593Smuzhiyun #define V4L2_CID_USER_SAA7134_BASE (V4L2_CID_USER_BASE + 0x1060) 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun /* The base for the adv7180 driver controls. 177*4882a593Smuzhiyun * We reserve 16 controls for this driver. */ 178*4882a593Smuzhiyun #define V4L2_CID_USER_ADV7180_BASE (V4L2_CID_USER_BASE + 0x1070) 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun /* The base for the tc35874x driver controls. 181*4882a593Smuzhiyun * We reserve 16 controls for this driver. */ 182*4882a593Smuzhiyun #define V4L2_CID_USER_TC358743_BASE (V4L2_CID_USER_BASE + 0x1080) 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun /* The base for the max217x driver controls. 185*4882a593Smuzhiyun * We reserve 32 controls for this driver 186*4882a593Smuzhiyun */ 187*4882a593Smuzhiyun #define V4L2_CID_USER_MAX217X_BASE (V4L2_CID_USER_BASE + 0x1090) 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun /* 190*4882a593Smuzhiyun * The base for the tc35874x driver controls. 191*4882a593Smuzhiyun * We reserve 16 controls for this driver. 192*4882a593Smuzhiyun */ 193*4882a593Smuzhiyun #define V4L2_CID_USER_TC35874X_BASE (V4L2_CID_USER_BASE + 0x10a0) 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun /* The base for the imx driver controls. 196*4882a593Smuzhiyun * We reserve 16 controls for this driver. */ 197*4882a593Smuzhiyun #define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0) 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun /* 200*4882a593Smuzhiyun * The base for the atmel isc driver controls. 201*4882a593Smuzhiyun * We reserve 32 controls for this driver. 202*4882a593Smuzhiyun */ 203*4882a593Smuzhiyun #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0) 204*4882a593Smuzhiyun 205*4882a593Smuzhiyun /* MPEG-class control IDs */ 206*4882a593Smuzhiyun /* The MPEG controls are applicable to all codec controls 207*4882a593Smuzhiyun * and the 'MPEG' part of the define is historical */ 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun #define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) 210*4882a593Smuzhiyun #define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1) 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun /* MPEG streams, specific to multiplexed streams */ 213*4882a593Smuzhiyun #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0) 214*4882a593Smuzhiyun enum v4l2_mpeg_stream_type { 215*4882a593Smuzhiyun V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, /* MPEG-2 program stream */ 216*4882a593Smuzhiyun V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, /* MPEG-2 transport stream */ 217*4882a593Smuzhiyun V4L2_MPEG_STREAM_TYPE_MPEG1_SS = 2, /* MPEG-1 system stream */ 218*4882a593Smuzhiyun V4L2_MPEG_STREAM_TYPE_MPEG2_DVD = 3, /* MPEG-2 DVD-compatible stream */ 219*4882a593Smuzhiyun V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, /* MPEG-1 VCD-compatible stream */ 220*4882a593Smuzhiyun V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */ 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun #define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1) 223*4882a593Smuzhiyun #define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2) 224*4882a593Smuzhiyun #define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3) 225*4882a593Smuzhiyun #define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4) 226*4882a593Smuzhiyun #define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5) 227*4882a593Smuzhiyun #define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6) 228*4882a593Smuzhiyun #define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7) 229*4882a593Smuzhiyun enum v4l2_mpeg_stream_vbi_fmt { 230*4882a593Smuzhiyun V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, /* No VBI in the MPEG stream */ 231*4882a593Smuzhiyun V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV format */ 232*4882a593Smuzhiyun }; 233*4882a593Smuzhiyun 234*4882a593Smuzhiyun /* MPEG audio controls specific to multiplexed streams */ 235*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100) 236*4882a593Smuzhiyun enum v4l2_mpeg_audio_sampling_freq { 237*4882a593Smuzhiyun V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0, 238*4882a593Smuzhiyun V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1, 239*4882a593Smuzhiyun V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2, 240*4882a593Smuzhiyun }; 241*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101) 242*4882a593Smuzhiyun enum v4l2_mpeg_audio_encoding { 243*4882a593Smuzhiyun V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0, 244*4882a593Smuzhiyun V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1, 245*4882a593Smuzhiyun V4L2_MPEG_AUDIO_ENCODING_LAYER_3 = 2, 246*4882a593Smuzhiyun V4L2_MPEG_AUDIO_ENCODING_AAC = 3, 247*4882a593Smuzhiyun V4L2_MPEG_AUDIO_ENCODING_AC3 = 4, 248*4882a593Smuzhiyun }; 249*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102) 250*4882a593Smuzhiyun enum v4l2_mpeg_audio_l1_bitrate { 251*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0, 252*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1, 253*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_96K = 2, 254*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_128K = 3, 255*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_160K = 4, 256*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_192K = 5, 257*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_224K = 6, 258*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_256K = 7, 259*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_288K = 8, 260*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_320K = 9, 261*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_352K = 10, 262*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_384K = 11, 263*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12, 264*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13, 265*4882a593Smuzhiyun }; 266*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103) 267*4882a593Smuzhiyun enum v4l2_mpeg_audio_l2_bitrate { 268*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0, 269*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1, 270*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_56K = 2, 271*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_64K = 3, 272*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_80K = 4, 273*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_96K = 5, 274*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_112K = 6, 275*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_128K = 7, 276*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_160K = 8, 277*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_192K = 9, 278*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_224K = 10, 279*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_256K = 11, 280*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12, 281*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13, 282*4882a593Smuzhiyun }; 283*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104) 284*4882a593Smuzhiyun enum v4l2_mpeg_audio_l3_bitrate { 285*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0, 286*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1, 287*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_48K = 2, 288*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_56K = 3, 289*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_64K = 4, 290*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_80K = 5, 291*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_96K = 6, 292*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_112K = 7, 293*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_128K = 8, 294*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_160K = 9, 295*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_192K = 10, 296*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_224K = 11, 297*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12, 298*4882a593Smuzhiyun V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13, 299*4882a593Smuzhiyun }; 300*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105) 301*4882a593Smuzhiyun enum v4l2_mpeg_audio_mode { 302*4882a593Smuzhiyun V4L2_MPEG_AUDIO_MODE_STEREO = 0, 303*4882a593Smuzhiyun V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1, 304*4882a593Smuzhiyun V4L2_MPEG_AUDIO_MODE_DUAL = 2, 305*4882a593Smuzhiyun V4L2_MPEG_AUDIO_MODE_MONO = 3, 306*4882a593Smuzhiyun }; 307*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106) 308*4882a593Smuzhiyun enum v4l2_mpeg_audio_mode_extension { 309*4882a593Smuzhiyun V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0, 310*4882a593Smuzhiyun V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1, 311*4882a593Smuzhiyun V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2, 312*4882a593Smuzhiyun V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3, 313*4882a593Smuzhiyun }; 314*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107) 315*4882a593Smuzhiyun enum v4l2_mpeg_audio_emphasis { 316*4882a593Smuzhiyun V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0, 317*4882a593Smuzhiyun V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1, 318*4882a593Smuzhiyun V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2, 319*4882a593Smuzhiyun }; 320*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108) 321*4882a593Smuzhiyun enum v4l2_mpeg_audio_crc { 322*4882a593Smuzhiyun V4L2_MPEG_AUDIO_CRC_NONE = 0, 323*4882a593Smuzhiyun V4L2_MPEG_AUDIO_CRC_CRC16 = 1, 324*4882a593Smuzhiyun }; 325*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109) 326*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110) 327*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111) 328*4882a593Smuzhiyun enum v4l2_mpeg_audio_ac3_bitrate { 329*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_32K = 0, 330*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_40K = 1, 331*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_48K = 2, 332*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_56K = 3, 333*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_64K = 4, 334*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_80K = 5, 335*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_96K = 6, 336*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_112K = 7, 337*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_128K = 8, 338*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_160K = 9, 339*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_192K = 10, 340*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_224K = 11, 341*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_256K = 12, 342*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_320K = 13, 343*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_384K = 14, 344*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_448K = 15, 345*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_512K = 16, 346*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_576K = 17, 347*4882a593Smuzhiyun V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18, 348*4882a593Smuzhiyun }; 349*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_MPEG_BASE+112) 350*4882a593Smuzhiyun enum v4l2_mpeg_audio_dec_playback { 351*4882a593Smuzhiyun V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO = 0, 352*4882a593Smuzhiyun V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO = 1, 353*4882a593Smuzhiyun V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT = 2, 354*4882a593Smuzhiyun V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT = 3, 355*4882a593Smuzhiyun V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO = 4, 356*4882a593Smuzhiyun V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO = 5, 357*4882a593Smuzhiyun }; 358*4882a593Smuzhiyun #define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113) 359*4882a593Smuzhiyun 360*4882a593Smuzhiyun /* MPEG video controls specific to multiplexed streams */ 361*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200) 362*4882a593Smuzhiyun enum v4l2_mpeg_video_encoding { 363*4882a593Smuzhiyun V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0, 364*4882a593Smuzhiyun V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1, 365*4882a593Smuzhiyun V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2, 366*4882a593Smuzhiyun }; 367*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201) 368*4882a593Smuzhiyun enum v4l2_mpeg_video_aspect { 369*4882a593Smuzhiyun V4L2_MPEG_VIDEO_ASPECT_1x1 = 0, 370*4882a593Smuzhiyun V4L2_MPEG_VIDEO_ASPECT_4x3 = 1, 371*4882a593Smuzhiyun V4L2_MPEG_VIDEO_ASPECT_16x9 = 2, 372*4882a593Smuzhiyun V4L2_MPEG_VIDEO_ASPECT_221x100 = 3, 373*4882a593Smuzhiyun }; 374*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202) 375*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203) 376*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204) 377*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205) 378*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206) 379*4882a593Smuzhiyun enum v4l2_mpeg_video_bitrate_mode { 380*4882a593Smuzhiyun V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, 381*4882a593Smuzhiyun V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1, 382*4882a593Smuzhiyun V4L2_MPEG_VIDEO_BITRATE_MODE_CQ = 2, 383*4882a593Smuzhiyun }; 384*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207) 385*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) 386*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) 387*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210) 388*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211) 389*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212) 390*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213) 391*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214) 392*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_MPEG_BASE+215) 393*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_MPEG_BASE+216) 394*4882a593Smuzhiyun enum v4l2_mpeg_video_header_mode { 395*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE = 0, 396*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME = 1, 397*4882a593Smuzhiyun 398*4882a593Smuzhiyun }; 399*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_MPEG_BASE+217) 400*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_MPEG_BASE+218) 401*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_MPEG_BASE+219) 402*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_MPEG_BASE+220) 403*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221) 404*4882a593Smuzhiyun enum v4l2_mpeg_video_multi_slice_mode { 405*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0, 406*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB = 1, 407*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES = 2, 408*4882a593Smuzhiyun #ifndef __KERNEL__ 409*4882a593Smuzhiyun /* Kept for backwards compatibility reasons. Stupid typo... */ 410*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_MB = 1, 411*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2, 412*4882a593Smuzhiyun #endif 413*4882a593Smuzhiyun }; 414*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222) 415*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223) 416*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) 417*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) 418*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) 419*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227) 420*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228) 421*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229) 422*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_MPEG_BASE+230) 423*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_MPEG_BASE+231) 424*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_LTR_COUNT (V4L2_CID_MPEG_BASE+232) 425*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (V4L2_CID_MPEG_BASE+233) 426*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_MPEG_BASE+234) 427*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_MPEG_BASE+235) 428*4882a593Smuzhiyun 429*4882a593Smuzhiyun /* CIDs for the MPEG-2 Part 2 (H.262) codec */ 430*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_BASE+270) 431*4882a593Smuzhiyun enum v4l2_mpeg_video_mpeg2_level { 432*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0, 433*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN = 1, 434*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440 = 2, 435*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH = 3, 436*4882a593Smuzhiyun }; 437*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_MPEG_BASE+271) 438*4882a593Smuzhiyun enum v4l2_mpeg_video_mpeg2_profile { 439*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE = 0, 440*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN = 1, 441*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG2_PROFILE_SNR_SCALABLE = 2, 442*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG2_PROFILE_SPATIALLY_SCALABLE = 3, 443*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG2_PROFILE_HIGH = 4, 444*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG2_PROFILE_MULTIVIEW = 5, 445*4882a593Smuzhiyun }; 446*4882a593Smuzhiyun 447*4882a593Smuzhiyun /* CIDs for the FWHT codec as used by the vicodec driver. */ 448*4882a593Smuzhiyun #define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_MPEG_BASE + 290) 449*4882a593Smuzhiyun #define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_MPEG_BASE + 291) 450*4882a593Smuzhiyun 451*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) 452*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) 453*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE+302) 454*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_MPEG_BASE+303) 455*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_MPEG_BASE+304) 456*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_MPEG_BASE+350) 457*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_MPEG_BASE+351) 458*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_MPEG_BASE+352) 459*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_MPEG_BASE+353) 460*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_MPEG_BASE+354) 461*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_MPEG_BASE+355) 462*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_MPEG_BASE+356) 463*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_MPEG_BASE+357) 464*4882a593Smuzhiyun enum v4l2_mpeg_video_h264_entropy_mode { 465*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC = 0, 466*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC = 1, 467*4882a593Smuzhiyun }; 468*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_MPEG_BASE+358) 469*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_MPEG_BASE+359) 470*4882a593Smuzhiyun enum v4l2_mpeg_video_h264_level { 471*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_1_0 = 0, 472*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_1B = 1, 473*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_1_1 = 2, 474*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_1_2 = 3, 475*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_1_3 = 4, 476*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_2_0 = 5, 477*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_2_1 = 6, 478*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_2_2 = 7, 479*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_3_0 = 8, 480*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_3_1 = 9, 481*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_3_2 = 10, 482*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_4_0 = 11, 483*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_4_1 = 12, 484*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_4_2 = 13, 485*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_5_0 = 14, 486*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_5_1 = 15, 487*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_5_2 = 16, 488*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_6_0 = 17, 489*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_6_1 = 18, 490*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LEVEL_6_2 = 19, 491*4882a593Smuzhiyun }; 492*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_MPEG_BASE+360) 493*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_MPEG_BASE+361) 494*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE+362) 495*4882a593Smuzhiyun enum v4l2_mpeg_video_h264_loop_filter_mode { 496*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED = 0, 497*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED = 1, 498*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2, 499*4882a593Smuzhiyun }; 500*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_MPEG_BASE+363) 501*4882a593Smuzhiyun enum v4l2_mpeg_video_h264_profile { 502*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE = 0, 503*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE = 1, 504*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_MAIN = 2, 505*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED = 3, 506*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_HIGH = 4, 507*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10 = 5, 508*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422 = 6, 509*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE = 7, 510*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA = 8, 511*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA = 9, 512*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA = 10, 513*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA = 11, 514*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE = 12, 515*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH = 13, 516*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA = 14, 517*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH = 15, 518*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH = 16, 519*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH = 17, 520*4882a593Smuzhiyun }; 521*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_MPEG_BASE+364) 522*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_MPEG_BASE+365) 523*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_MPEG_BASE+366) 524*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_MPEG_BASE+367) 525*4882a593Smuzhiyun enum v4l2_mpeg_video_h264_vui_sar_idc { 526*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED = 0, 527*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1 = 1, 528*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11 = 2, 529*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11 = 3, 530*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11 = 4, 531*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33 = 5, 532*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11 = 6, 533*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11 = 7, 534*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11 = 8, 535*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33 = 9, 536*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11 = 10, 537*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11 = 11, 538*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33 = 12, 539*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99 = 13, 540*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3 = 14, 541*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2 = 15, 542*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16, 543*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17, 544*4882a593Smuzhiyun }; 545*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_MPEG_BASE+368) 546*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_MPEG_BASE+369) 547*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_MPEG_BASE+370) 548*4882a593Smuzhiyun enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { 549*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHECKERBOARD = 0, 550*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN = 1, 551*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW = 2, 552*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE = 3, 553*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM = 4, 554*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL = 5, 555*4882a593Smuzhiyun }; 556*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_MPEG_BASE+371) 557*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_MPEG_BASE+372) 558*4882a593Smuzhiyun enum v4l2_mpeg_video_h264_fmo_map_type { 559*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES = 0, 560*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES = 1, 561*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER = 2, 562*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT = 3, 563*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN = 4, 564*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN = 5, 565*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT = 6, 566*4882a593Smuzhiyun }; 567*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_MPEG_BASE+373) 568*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_MPEG_BASE+374) 569*4882a593Smuzhiyun enum v4l2_mpeg_video_h264_fmo_change_dir { 570*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT = 0, 571*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT = 1, 572*4882a593Smuzhiyun }; 573*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_MPEG_BASE+375) 574*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_MPEG_BASE+376) 575*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_MPEG_BASE+377) 576*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_MPEG_BASE+378) 577*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_MPEG_BASE+379) 578*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_MPEG_BASE+380) 579*4882a593Smuzhiyun enum v4l2_mpeg_video_h264_hierarchical_coding_type { 580*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B = 0, 581*4882a593Smuzhiyun V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P = 1, 582*4882a593Smuzhiyun }; 583*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) 584*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382) 585*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_MPEG_BASE+383) 586*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_MPEG_BASE+384) 587*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+385) 588*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+386) 589*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+387) 590*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+388) 591*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+389) 592*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+390) 593*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE+391) 594*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE+392) 595*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE+393) 596*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE+394) 597*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE+395) 598*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE+396) 599*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE+397) 600*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) 601*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) 602*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) 603*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_MPEG_BASE+403) 604*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_MPEG_BASE+404) 605*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_MPEG_BASE+405) 606*4882a593Smuzhiyun enum v4l2_mpeg_video_mpeg4_level { 607*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_LEVEL_0 = 0, 608*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B = 1, 609*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_LEVEL_1 = 2, 610*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_LEVEL_2 = 3, 611*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_LEVEL_3 = 4, 612*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B = 5, 613*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_LEVEL_4 = 6, 614*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_LEVEL_5 = 7, 615*4882a593Smuzhiyun }; 616*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_MPEG_BASE+406) 617*4882a593Smuzhiyun enum v4l2_mpeg_video_mpeg4_profile { 618*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE = 0, 619*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE = 1, 620*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE = 2, 621*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE = 3, 622*4882a593Smuzhiyun V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 4, 623*4882a593Smuzhiyun }; 624*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_MPEG_BASE+407) 625*4882a593Smuzhiyun 626*4882a593Smuzhiyun /* Control IDs for VP8 streams 627*4882a593Smuzhiyun * Although VP8 is not part of MPEG we add these controls to the MPEG class 628*4882a593Smuzhiyun * as that class is already handling other video compression standards 629*4882a593Smuzhiyun */ 630*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_MPEG_BASE+500) 631*4882a593Smuzhiyun enum v4l2_vp8_num_partitions { 632*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION = 0, 633*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS = 1, 634*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS = 2, 635*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS = 3, 636*4882a593Smuzhiyun }; 637*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_MPEG_BASE+501) 638*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_MPEG_BASE+502) 639*4882a593Smuzhiyun enum v4l2_vp8_num_ref_frames { 640*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME = 0, 641*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME = 1, 642*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME = 2, 643*4882a593Smuzhiyun }; 644*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_MPEG_BASE+503) 645*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_MPEG_BASE+504) 646*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_MPEG_BASE+505) 647*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_MPEG_BASE+506) 648*4882a593Smuzhiyun enum v4l2_vp8_golden_frame_sel { 649*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0, 650*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1, 651*4882a593Smuzhiyun }; 652*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_MPEG_BASE+507) 653*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508) 654*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509) 655*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) 656*4882a593Smuzhiyun 657*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_MPEG_BASE+511) 658*4882a593Smuzhiyun enum v4l2_mpeg_video_vp8_profile { 659*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0, 660*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1, 661*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP8_PROFILE_2 = 2, 662*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP8_PROFILE_3 = 3, 663*4882a593Smuzhiyun }; 664*4882a593Smuzhiyun /* Deprecated alias for compatibility reasons. */ 665*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE 666*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_MPEG_BASE+512) 667*4882a593Smuzhiyun enum v4l2_mpeg_video_vp9_profile { 668*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0, 669*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1, 670*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2, 671*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3, 672*4882a593Smuzhiyun }; 673*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_VP9_LEVEL (V4L2_CID_MPEG_BASE+513) 674*4882a593Smuzhiyun enum v4l2_mpeg_video_vp9_level { 675*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_1_0 = 0, 676*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_1_1 = 1, 677*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_2_0 = 2, 678*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_2_1 = 3, 679*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_3_0 = 4, 680*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_3_1 = 5, 681*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_4_0 = 6, 682*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_4_1 = 7, 683*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_5_0 = 8, 684*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_5_1 = 9, 685*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_5_2 = 10, 686*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_6_0 = 11, 687*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_6_1 = 12, 688*4882a593Smuzhiyun V4L2_MPEG_VIDEO_VP9_LEVEL_6_2 = 13, 689*4882a593Smuzhiyun }; 690*4882a593Smuzhiyun 691*4882a593Smuzhiyun /* CIDs for HEVC encoding. */ 692*4882a593Smuzhiyun 693*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600) 694*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601) 695*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602) 696*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603) 697*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604) 698*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605) 699*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606) 700*4882a593Smuzhiyun enum v4l2_mpeg_video_hevc_hier_coding_type { 701*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0, 702*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1, 703*4882a593Smuzhiyun }; 704*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607) 705*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608) 706*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609) 707*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610) 708*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611) 709*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612) 710*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613) 711*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614) 712*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615) 713*4882a593Smuzhiyun enum v4l2_mpeg_video_hevc_profile { 714*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0, 715*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1, 716*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2, 717*4882a593Smuzhiyun }; 718*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616) 719*4882a593Smuzhiyun enum v4l2_mpeg_video_hevc_level { 720*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0, 721*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1, 722*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1 = 2, 723*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_3 = 3, 724*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1 = 4, 725*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_4 = 5, 726*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1 = 6, 727*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_5 = 7, 728*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1 = 8, 729*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2 = 9, 730*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_6 = 10, 731*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11, 732*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12, 733*4882a593Smuzhiyun }; 734*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617) 735*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618) 736*4882a593Smuzhiyun enum v4l2_mpeg_video_hevc_tier { 737*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0, 738*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1, 739*4882a593Smuzhiyun }; 740*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619) 741*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620) 742*4882a593Smuzhiyun enum v4l2_cid_mpeg_video_hevc_loop_filter_mode { 743*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0, 744*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1, 745*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2, 746*4882a593Smuzhiyun }; 747*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621) 748*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622) 749*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623) 750*4882a593Smuzhiyun enum v4l2_cid_mpeg_video_hevc_refresh_type { 751*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0, 752*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1, 753*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2, 754*4882a593Smuzhiyun }; 755*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624) 756*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625) 757*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626) 758*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627) 759*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628) 760*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629) 761*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630) 762*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631) 763*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632) 764*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633) 765*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634) 766*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635) 767*4882a593Smuzhiyun enum v4l2_cid_mpeg_video_hevc_size_of_length_field { 768*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0, 769*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1, 770*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2, 771*4882a593Smuzhiyun V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3, 772*4882a593Smuzhiyun }; 773*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636) 774*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637) 775*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638) 776*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639) 777*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640) 778*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641) 779*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642) 780*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643) 781*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644) 782*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (V4L2_CID_MPEG_BASE + 645) 783*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_BASE + 646) 784*4882a593Smuzhiyun enum v4l2_mpeg_video_frame_skip_mode { 785*4882a593Smuzhiyun V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED = 0, 786*4882a593Smuzhiyun V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1, 787*4882a593Smuzhiyun V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2, 788*4882a593Smuzhiyun }; 789*4882a593Smuzhiyun 790*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (V4L2_CID_MPEG_BASE + 647) 791*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (V4L2_CID_MPEG_BASE + 648) 792*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (V4L2_CID_MPEG_BASE + 649) 793*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_MPEG_BASE + 650) 794*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_MPEG_BASE + 651) 795*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_MPEG_BASE + 652) 796*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_MPEG_BASE + 653) 797*4882a593Smuzhiyun #define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_BASE + 654) 798*4882a593Smuzhiyun 799*4882a593Smuzhiyun /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ 800*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) 801*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) 802*4882a593Smuzhiyun enum v4l2_mpeg_cx2341x_video_spatial_filter_mode { 803*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, 804*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1, 805*4882a593Smuzhiyun }; 806*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1) 807*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2) 808*4882a593Smuzhiyun enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { 809*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0, 810*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, 811*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT = 2, 812*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3, 813*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4, 814*4882a593Smuzhiyun }; 815*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3) 816*4882a593Smuzhiyun enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type { 817*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0, 818*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, 819*4882a593Smuzhiyun }; 820*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4) 821*4882a593Smuzhiyun enum v4l2_mpeg_cx2341x_video_temporal_filter_mode { 822*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0, 823*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1, 824*4882a593Smuzhiyun }; 825*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5) 826*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6) 827*4882a593Smuzhiyun enum v4l2_mpeg_cx2341x_video_median_filter_type { 828*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0, 829*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1, 830*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT = 2, 831*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3, 832*4882a593Smuzhiyun V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4, 833*4882a593Smuzhiyun }; 834*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7) 835*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8) 836*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9) 837*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10) 838*4882a593Smuzhiyun #define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11) 839*4882a593Smuzhiyun 840*4882a593Smuzhiyun /* MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */ 841*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100) 842*4882a593Smuzhiyun 843*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_MPEG_MFC51_BASE+0) 844*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_MFC51_BASE+1) 845*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_MFC51_BASE+2) 846*4882a593Smuzhiyun enum v4l2_mpeg_mfc51_video_frame_skip_mode { 847*4882a593Smuzhiyun V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED = 0, 848*4882a593Smuzhiyun V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1, 849*4882a593Smuzhiyun V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2, 850*4882a593Smuzhiyun }; 851*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_MPEG_MFC51_BASE+3) 852*4882a593Smuzhiyun enum v4l2_mpeg_mfc51_video_force_frame_type { 853*4882a593Smuzhiyun V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED = 0, 854*4882a593Smuzhiyun V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME = 1, 855*4882a593Smuzhiyun V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED = 2, 856*4882a593Smuzhiyun }; 857*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_MPEG_MFC51_BASE+4) 858*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_MPEG_MFC51_BASE+5) 859*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_MPEG_MFC51_BASE+6) 860*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_MPEG_MFC51_BASE+7) 861*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_MPEG_MFC51_BASE+50) 862*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_MPEG_MFC51_BASE+51) 863*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_MPEG_MFC51_BASE+52) 864*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53) 865*4882a593Smuzhiyun #define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54) 866*4882a593Smuzhiyun 867*4882a593Smuzhiyun 868*4882a593Smuzhiyun /* Camera class control IDs */ 869*4882a593Smuzhiyun 870*4882a593Smuzhiyun #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) 871*4882a593Smuzhiyun #define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1) 872*4882a593Smuzhiyun 873*4882a593Smuzhiyun #define V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1) 874*4882a593Smuzhiyun enum v4l2_exposure_auto_type { 875*4882a593Smuzhiyun V4L2_EXPOSURE_AUTO = 0, 876*4882a593Smuzhiyun V4L2_EXPOSURE_MANUAL = 1, 877*4882a593Smuzhiyun V4L2_EXPOSURE_SHUTTER_PRIORITY = 2, 878*4882a593Smuzhiyun V4L2_EXPOSURE_APERTURE_PRIORITY = 3 879*4882a593Smuzhiyun }; 880*4882a593Smuzhiyun #define V4L2_CID_EXPOSURE_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+2) 881*4882a593Smuzhiyun #define V4L2_CID_EXPOSURE_AUTO_PRIORITY (V4L2_CID_CAMERA_CLASS_BASE+3) 882*4882a593Smuzhiyun 883*4882a593Smuzhiyun #define V4L2_CID_PAN_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+4) 884*4882a593Smuzhiyun #define V4L2_CID_TILT_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+5) 885*4882a593Smuzhiyun #define V4L2_CID_PAN_RESET (V4L2_CID_CAMERA_CLASS_BASE+6) 886*4882a593Smuzhiyun #define V4L2_CID_TILT_RESET (V4L2_CID_CAMERA_CLASS_BASE+7) 887*4882a593Smuzhiyun 888*4882a593Smuzhiyun #define V4L2_CID_PAN_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+8) 889*4882a593Smuzhiyun #define V4L2_CID_TILT_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+9) 890*4882a593Smuzhiyun 891*4882a593Smuzhiyun #define V4L2_CID_FOCUS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+10) 892*4882a593Smuzhiyun #define V4L2_CID_FOCUS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+11) 893*4882a593Smuzhiyun #define V4L2_CID_FOCUS_AUTO (V4L2_CID_CAMERA_CLASS_BASE+12) 894*4882a593Smuzhiyun 895*4882a593Smuzhiyun /* ddl@rock-chips.com : Add ioctrl - V4L2_CID_SCENE for camera scene control */ 896*4882a593Smuzhiyun #define V4L2_CID_CAMERA_CLASS_BASE_ROCK (V4L2_CID_CAMERA_CLASS_BASE + 40) 897*4882a593Smuzhiyun #define V4L2_CID_SCENE (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 1) 898*4882a593Smuzhiyun #define V4L2_CID_EFFECT (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 2) 899*4882a593Smuzhiyun #define V4L2_CID_FLASH (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 3) 900*4882a593Smuzhiyun #define V4L2_CID_FOCUS_CONTINUOUS (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 4) 901*4882a593Smuzhiyun #define V4L2_CID_FOCUSZONE (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 5) 902*4882a593Smuzhiyun #define V4L2_CID_FACEDETECT (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 6) 903*4882a593Smuzhiyun #define V4L2_CID_HDR (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 7) 904*4882a593Smuzhiyun #define V4L2_CID_ISO (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 8) 905*4882a593Smuzhiyun #define V4L2_CID_ANTIBANDING (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 9) 906*4882a593Smuzhiyun #define V4L2_CID_WHITEBALANCE_LOCK (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 10) 907*4882a593Smuzhiyun #define V4L2_CID_EXPOSURE_LOCK (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 11) 908*4882a593Smuzhiyun #define V4L2_CID_METERING_AREAS (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 12) 909*4882a593Smuzhiyun #define V4L2_CID_WDR (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 13) 910*4882a593Smuzhiyun #define V4L2_CID_EDGE (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 14) 911*4882a593Smuzhiyun #define V4L2_CID_JPEG_EXIF (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 15) 912*4882a593Smuzhiyun #define V4L2_CID_DEINTERLACE (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 16) 913*4882a593Smuzhiyun #define V4L2_CID_CHANNEL (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 17) 914*4882a593Smuzhiyun #define V4L2_CID_VIDEO_STATE (V4L2_CID_CAMERA_CLASS_BASE_ROCK + 18) 915*4882a593Smuzhiyun 916*4882a593Smuzhiyun #define V4L2_CID_ZOOM_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+13) 917*4882a593Smuzhiyun #define V4L2_CID_ZOOM_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+14) 918*4882a593Smuzhiyun #define V4L2_CID_ZOOM_CONTINUOUS (V4L2_CID_CAMERA_CLASS_BASE+15) 919*4882a593Smuzhiyun 920*4882a593Smuzhiyun #define V4L2_CID_PRIVACY (V4L2_CID_CAMERA_CLASS_BASE+16) 921*4882a593Smuzhiyun 922*4882a593Smuzhiyun #define V4L2_CID_IRIS_ABSOLUTE (V4L2_CID_CAMERA_CLASS_BASE+17) 923*4882a593Smuzhiyun #define V4L2_CID_IRIS_RELATIVE (V4L2_CID_CAMERA_CLASS_BASE+18) 924*4882a593Smuzhiyun 925*4882a593Smuzhiyun #define V4L2_CID_AUTO_EXPOSURE_BIAS (V4L2_CID_CAMERA_CLASS_BASE+19) 926*4882a593Smuzhiyun 927*4882a593Smuzhiyun #define V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE (V4L2_CID_CAMERA_CLASS_BASE+20) 928*4882a593Smuzhiyun enum v4l2_auto_n_preset_white_balance { 929*4882a593Smuzhiyun V4L2_WHITE_BALANCE_MANUAL = 0, 930*4882a593Smuzhiyun V4L2_WHITE_BALANCE_AUTO = 1, 931*4882a593Smuzhiyun V4L2_WHITE_BALANCE_INCANDESCENT = 2, 932*4882a593Smuzhiyun V4L2_WHITE_BALANCE_FLUORESCENT = 3, 933*4882a593Smuzhiyun V4L2_WHITE_BALANCE_FLUORESCENT_H = 4, 934*4882a593Smuzhiyun V4L2_WHITE_BALANCE_HORIZON = 5, 935*4882a593Smuzhiyun V4L2_WHITE_BALANCE_DAYLIGHT = 6, 936*4882a593Smuzhiyun V4L2_WHITE_BALANCE_FLASH = 7, 937*4882a593Smuzhiyun V4L2_WHITE_BALANCE_CLOUDY = 8, 938*4882a593Smuzhiyun V4L2_WHITE_BALANCE_SHADE = 9, 939*4882a593Smuzhiyun }; 940*4882a593Smuzhiyun 941*4882a593Smuzhiyun #define V4L2_CID_WIDE_DYNAMIC_RANGE (V4L2_CID_CAMERA_CLASS_BASE+21) 942*4882a593Smuzhiyun #define V4L2_CID_IMAGE_STABILIZATION (V4L2_CID_CAMERA_CLASS_BASE+22) 943*4882a593Smuzhiyun 944*4882a593Smuzhiyun #define V4L2_CID_ISO_SENSITIVITY (V4L2_CID_CAMERA_CLASS_BASE+23) 945*4882a593Smuzhiyun #define V4L2_CID_ISO_SENSITIVITY_AUTO (V4L2_CID_CAMERA_CLASS_BASE+24) 946*4882a593Smuzhiyun enum v4l2_iso_sensitivity_auto_type { 947*4882a593Smuzhiyun V4L2_ISO_SENSITIVITY_MANUAL = 0, 948*4882a593Smuzhiyun V4L2_ISO_SENSITIVITY_AUTO = 1, 949*4882a593Smuzhiyun }; 950*4882a593Smuzhiyun 951*4882a593Smuzhiyun #define V4L2_CID_EXPOSURE_METERING (V4L2_CID_CAMERA_CLASS_BASE+25) 952*4882a593Smuzhiyun enum v4l2_exposure_metering { 953*4882a593Smuzhiyun V4L2_EXPOSURE_METERING_AVERAGE = 0, 954*4882a593Smuzhiyun V4L2_EXPOSURE_METERING_CENTER_WEIGHTED = 1, 955*4882a593Smuzhiyun V4L2_EXPOSURE_METERING_SPOT = 2, 956*4882a593Smuzhiyun V4L2_EXPOSURE_METERING_MATRIX = 3, 957*4882a593Smuzhiyun }; 958*4882a593Smuzhiyun 959*4882a593Smuzhiyun #define V4L2_CID_SCENE_MODE (V4L2_CID_CAMERA_CLASS_BASE+26) 960*4882a593Smuzhiyun enum v4l2_scene_mode { 961*4882a593Smuzhiyun V4L2_SCENE_MODE_NONE = 0, 962*4882a593Smuzhiyun V4L2_SCENE_MODE_BACKLIGHT = 1, 963*4882a593Smuzhiyun V4L2_SCENE_MODE_BEACH_SNOW = 2, 964*4882a593Smuzhiyun V4L2_SCENE_MODE_CANDLE_LIGHT = 3, 965*4882a593Smuzhiyun V4L2_SCENE_MODE_DAWN_DUSK = 4, 966*4882a593Smuzhiyun V4L2_SCENE_MODE_FALL_COLORS = 5, 967*4882a593Smuzhiyun V4L2_SCENE_MODE_FIREWORKS = 6, 968*4882a593Smuzhiyun V4L2_SCENE_MODE_LANDSCAPE = 7, 969*4882a593Smuzhiyun V4L2_SCENE_MODE_NIGHT = 8, 970*4882a593Smuzhiyun V4L2_SCENE_MODE_PARTY_INDOOR = 9, 971*4882a593Smuzhiyun V4L2_SCENE_MODE_PORTRAIT = 10, 972*4882a593Smuzhiyun V4L2_SCENE_MODE_SPORTS = 11, 973*4882a593Smuzhiyun V4L2_SCENE_MODE_SUNSET = 12, 974*4882a593Smuzhiyun V4L2_SCENE_MODE_TEXT = 13, 975*4882a593Smuzhiyun }; 976*4882a593Smuzhiyun 977*4882a593Smuzhiyun #define V4L2_CID_3A_LOCK (V4L2_CID_CAMERA_CLASS_BASE+27) 978*4882a593Smuzhiyun #define V4L2_LOCK_EXPOSURE (1 << 0) 979*4882a593Smuzhiyun #define V4L2_LOCK_WHITE_BALANCE (1 << 1) 980*4882a593Smuzhiyun #define V4L2_LOCK_FOCUS (1 << 2) 981*4882a593Smuzhiyun 982*4882a593Smuzhiyun #define V4L2_CID_AUTO_FOCUS_START (V4L2_CID_CAMERA_CLASS_BASE+28) 983*4882a593Smuzhiyun #define V4L2_CID_AUTO_FOCUS_STOP (V4L2_CID_CAMERA_CLASS_BASE+29) 984*4882a593Smuzhiyun #define V4L2_CID_AUTO_FOCUS_STATUS (V4L2_CID_CAMERA_CLASS_BASE+30) 985*4882a593Smuzhiyun #define V4L2_AUTO_FOCUS_STATUS_IDLE (0 << 0) 986*4882a593Smuzhiyun #define V4L2_AUTO_FOCUS_STATUS_BUSY (1 << 0) 987*4882a593Smuzhiyun #define V4L2_AUTO_FOCUS_STATUS_REACHED (1 << 1) 988*4882a593Smuzhiyun #define V4L2_AUTO_FOCUS_STATUS_FAILED (1 << 2) 989*4882a593Smuzhiyun 990*4882a593Smuzhiyun #define V4L2_CID_AUTO_FOCUS_RANGE (V4L2_CID_CAMERA_CLASS_BASE+31) 991*4882a593Smuzhiyun enum v4l2_auto_focus_range { 992*4882a593Smuzhiyun V4L2_AUTO_FOCUS_RANGE_AUTO = 0, 993*4882a593Smuzhiyun V4L2_AUTO_FOCUS_RANGE_NORMAL = 1, 994*4882a593Smuzhiyun V4L2_AUTO_FOCUS_RANGE_MACRO = 2, 995*4882a593Smuzhiyun V4L2_AUTO_FOCUS_RANGE_INFINITY = 3, 996*4882a593Smuzhiyun }; 997*4882a593Smuzhiyun 998*4882a593Smuzhiyun #define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32) 999*4882a593Smuzhiyun #define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33) 1000*4882a593Smuzhiyun 1001*4882a593Smuzhiyun #define V4L2_CID_CAMERA_ORIENTATION (V4L2_CID_CAMERA_CLASS_BASE+34) 1002*4882a593Smuzhiyun #define V4L2_CAMERA_ORIENTATION_FRONT 0 1003*4882a593Smuzhiyun #define V4L2_CAMERA_ORIENTATION_BACK 1 1004*4882a593Smuzhiyun #define V4L2_CAMERA_ORIENTATION_EXTERNAL 2 1005*4882a593Smuzhiyun 1006*4882a593Smuzhiyun #define V4L2_CID_CAMERA_SENSOR_ROTATION (V4L2_CID_CAMERA_CLASS_BASE+35) 1007*4882a593Smuzhiyun 1008*4882a593Smuzhiyun /* FM Modulator class control IDs */ 1009*4882a593Smuzhiyun 1010*4882a593Smuzhiyun #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) 1011*4882a593Smuzhiyun #define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1) 1012*4882a593Smuzhiyun 1013*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 1) 1014*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_PI (V4L2_CID_FM_TX_CLASS_BASE + 2) 1015*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_PTY (V4L2_CID_FM_TX_CLASS_BASE + 3) 1016*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_PS_NAME (V4L2_CID_FM_TX_CLASS_BASE + 5) 1017*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_RADIO_TEXT (V4L2_CID_FM_TX_CLASS_BASE + 6) 1018*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_MONO_STEREO (V4L2_CID_FM_TX_CLASS_BASE + 7) 1019*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (V4L2_CID_FM_TX_CLASS_BASE + 8) 1020*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_COMPRESSED (V4L2_CID_FM_TX_CLASS_BASE + 9) 1021*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_DYNAMIC_PTY (V4L2_CID_FM_TX_CLASS_BASE + 10) 1022*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_TX_CLASS_BASE + 11) 1023*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (V4L2_CID_FM_TX_CLASS_BASE + 12) 1024*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_MUSIC_SPEECH (V4L2_CID_FM_TX_CLASS_BASE + 13) 1025*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (V4L2_CID_FM_TX_CLASS_BASE + 14) 1026*4882a593Smuzhiyun #define V4L2_CID_RDS_TX_ALT_FREQS (V4L2_CID_FM_TX_CLASS_BASE + 15) 1027*4882a593Smuzhiyun 1028*4882a593Smuzhiyun #define V4L2_CID_AUDIO_LIMITER_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 64) 1029*4882a593Smuzhiyun #define V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 65) 1030*4882a593Smuzhiyun #define V4L2_CID_AUDIO_LIMITER_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 66) 1031*4882a593Smuzhiyun 1032*4882a593Smuzhiyun #define V4L2_CID_AUDIO_COMPRESSION_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 80) 1033*4882a593Smuzhiyun #define V4L2_CID_AUDIO_COMPRESSION_GAIN (V4L2_CID_FM_TX_CLASS_BASE + 81) 1034*4882a593Smuzhiyun #define V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (V4L2_CID_FM_TX_CLASS_BASE + 82) 1035*4882a593Smuzhiyun #define V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (V4L2_CID_FM_TX_CLASS_BASE + 83) 1036*4882a593Smuzhiyun #define V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (V4L2_CID_FM_TX_CLASS_BASE + 84) 1037*4882a593Smuzhiyun 1038*4882a593Smuzhiyun #define V4L2_CID_PILOT_TONE_ENABLED (V4L2_CID_FM_TX_CLASS_BASE + 96) 1039*4882a593Smuzhiyun #define V4L2_CID_PILOT_TONE_DEVIATION (V4L2_CID_FM_TX_CLASS_BASE + 97) 1040*4882a593Smuzhiyun #define V4L2_CID_PILOT_TONE_FREQUENCY (V4L2_CID_FM_TX_CLASS_BASE + 98) 1041*4882a593Smuzhiyun 1042*4882a593Smuzhiyun #define V4L2_CID_TUNE_PREEMPHASIS (V4L2_CID_FM_TX_CLASS_BASE + 112) 1043*4882a593Smuzhiyun enum v4l2_preemphasis { 1044*4882a593Smuzhiyun V4L2_PREEMPHASIS_DISABLED = 0, 1045*4882a593Smuzhiyun V4L2_PREEMPHASIS_50_uS = 1, 1046*4882a593Smuzhiyun V4L2_PREEMPHASIS_75_uS = 2, 1047*4882a593Smuzhiyun }; 1048*4882a593Smuzhiyun #define V4L2_CID_TUNE_POWER_LEVEL (V4L2_CID_FM_TX_CLASS_BASE + 113) 1049*4882a593Smuzhiyun #define V4L2_CID_TUNE_ANTENNA_CAPACITOR (V4L2_CID_FM_TX_CLASS_BASE + 114) 1050*4882a593Smuzhiyun 1051*4882a593Smuzhiyun 1052*4882a593Smuzhiyun /* Flash and privacy (indicator) light controls */ 1053*4882a593Smuzhiyun 1054*4882a593Smuzhiyun #define V4L2_CID_FLASH_CLASS_BASE (V4L2_CTRL_CLASS_FLASH | 0x900) 1055*4882a593Smuzhiyun #define V4L2_CID_FLASH_CLASS (V4L2_CTRL_CLASS_FLASH | 1) 1056*4882a593Smuzhiyun 1057*4882a593Smuzhiyun #define V4L2_CID_FLASH_LED_MODE (V4L2_CID_FLASH_CLASS_BASE + 1) 1058*4882a593Smuzhiyun enum v4l2_flash_led_mode { 1059*4882a593Smuzhiyun V4L2_FLASH_LED_MODE_NONE, 1060*4882a593Smuzhiyun V4L2_FLASH_LED_MODE_FLASH, 1061*4882a593Smuzhiyun V4L2_FLASH_LED_MODE_TORCH, 1062*4882a593Smuzhiyun }; 1063*4882a593Smuzhiyun 1064*4882a593Smuzhiyun #define V4L2_CID_FLASH_STROBE_SOURCE (V4L2_CID_FLASH_CLASS_BASE + 2) 1065*4882a593Smuzhiyun enum v4l2_flash_strobe_source { 1066*4882a593Smuzhiyun V4L2_FLASH_STROBE_SOURCE_SOFTWARE, 1067*4882a593Smuzhiyun V4L2_FLASH_STROBE_SOURCE_EXTERNAL, 1068*4882a593Smuzhiyun }; 1069*4882a593Smuzhiyun 1070*4882a593Smuzhiyun #define V4L2_CID_FLASH_STROBE (V4L2_CID_FLASH_CLASS_BASE + 3) 1071*4882a593Smuzhiyun #define V4L2_CID_FLASH_STROBE_STOP (V4L2_CID_FLASH_CLASS_BASE + 4) 1072*4882a593Smuzhiyun #define V4L2_CID_FLASH_STROBE_STATUS (V4L2_CID_FLASH_CLASS_BASE + 5) 1073*4882a593Smuzhiyun 1074*4882a593Smuzhiyun #define V4L2_CID_FLASH_TIMEOUT (V4L2_CID_FLASH_CLASS_BASE + 6) 1075*4882a593Smuzhiyun #define V4L2_CID_FLASH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 7) 1076*4882a593Smuzhiyun #define V4L2_CID_FLASH_TORCH_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 8) 1077*4882a593Smuzhiyun #define V4L2_CID_FLASH_INDICATOR_INTENSITY (V4L2_CID_FLASH_CLASS_BASE + 9) 1078*4882a593Smuzhiyun 1079*4882a593Smuzhiyun #define V4L2_CID_FLASH_FAULT (V4L2_CID_FLASH_CLASS_BASE + 10) 1080*4882a593Smuzhiyun #define V4L2_FLASH_FAULT_OVER_VOLTAGE (1 << 0) 1081*4882a593Smuzhiyun #define V4L2_FLASH_FAULT_TIMEOUT (1 << 1) 1082*4882a593Smuzhiyun #define V4L2_FLASH_FAULT_OVER_TEMPERATURE (1 << 2) 1083*4882a593Smuzhiyun #define V4L2_FLASH_FAULT_SHORT_CIRCUIT (1 << 3) 1084*4882a593Smuzhiyun #define V4L2_FLASH_FAULT_OVER_CURRENT (1 << 4) 1085*4882a593Smuzhiyun #define V4L2_FLASH_FAULT_INDICATOR (1 << 5) 1086*4882a593Smuzhiyun #define V4L2_FLASH_FAULT_UNDER_VOLTAGE (1 << 6) 1087*4882a593Smuzhiyun #define V4L2_FLASH_FAULT_INPUT_VOLTAGE (1 << 7) 1088*4882a593Smuzhiyun #define V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE (1 << 8) 1089*4882a593Smuzhiyun 1090*4882a593Smuzhiyun #define V4L2_CID_FLASH_CHARGE (V4L2_CID_FLASH_CLASS_BASE + 11) 1091*4882a593Smuzhiyun #define V4L2_CID_FLASH_READY (V4L2_CID_FLASH_CLASS_BASE + 12) 1092*4882a593Smuzhiyun 1093*4882a593Smuzhiyun 1094*4882a593Smuzhiyun /* JPEG-class control IDs */ 1095*4882a593Smuzhiyun 1096*4882a593Smuzhiyun #define V4L2_CID_JPEG_CLASS_BASE (V4L2_CTRL_CLASS_JPEG | 0x900) 1097*4882a593Smuzhiyun #define V4L2_CID_JPEG_CLASS (V4L2_CTRL_CLASS_JPEG | 1) 1098*4882a593Smuzhiyun 1099*4882a593Smuzhiyun #define V4L2_CID_JPEG_CHROMA_SUBSAMPLING (V4L2_CID_JPEG_CLASS_BASE + 1) 1100*4882a593Smuzhiyun enum v4l2_jpeg_chroma_subsampling { 1101*4882a593Smuzhiyun V4L2_JPEG_CHROMA_SUBSAMPLING_444 = 0, 1102*4882a593Smuzhiyun V4L2_JPEG_CHROMA_SUBSAMPLING_422 = 1, 1103*4882a593Smuzhiyun V4L2_JPEG_CHROMA_SUBSAMPLING_420 = 2, 1104*4882a593Smuzhiyun V4L2_JPEG_CHROMA_SUBSAMPLING_411 = 3, 1105*4882a593Smuzhiyun V4L2_JPEG_CHROMA_SUBSAMPLING_410 = 4, 1106*4882a593Smuzhiyun V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY = 5, 1107*4882a593Smuzhiyun }; 1108*4882a593Smuzhiyun #define V4L2_CID_JPEG_RESTART_INTERVAL (V4L2_CID_JPEG_CLASS_BASE + 2) 1109*4882a593Smuzhiyun #define V4L2_CID_JPEG_COMPRESSION_QUALITY (V4L2_CID_JPEG_CLASS_BASE + 3) 1110*4882a593Smuzhiyun 1111*4882a593Smuzhiyun #define V4L2_CID_JPEG_ACTIVE_MARKER (V4L2_CID_JPEG_CLASS_BASE + 4) 1112*4882a593Smuzhiyun #define V4L2_JPEG_ACTIVE_MARKER_APP0 (1 << 0) 1113*4882a593Smuzhiyun #define V4L2_JPEG_ACTIVE_MARKER_APP1 (1 << 1) 1114*4882a593Smuzhiyun #define V4L2_JPEG_ACTIVE_MARKER_COM (1 << 16) 1115*4882a593Smuzhiyun #define V4L2_JPEG_ACTIVE_MARKER_DQT (1 << 17) 1116*4882a593Smuzhiyun #define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18) 1117*4882a593Smuzhiyun 1118*4882a593Smuzhiyun 1119*4882a593Smuzhiyun /* Image source controls */ 1120*4882a593Smuzhiyun #define V4L2_CID_IMAGE_SOURCE_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900) 1121*4882a593Smuzhiyun #define V4L2_CID_IMAGE_SOURCE_CLASS (V4L2_CTRL_CLASS_IMAGE_SOURCE | 1) 1122*4882a593Smuzhiyun 1123*4882a593Smuzhiyun #define V4L2_CID_VBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1) 1124*4882a593Smuzhiyun #define V4L2_CID_HBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2) 1125*4882a593Smuzhiyun #define V4L2_CID_ANALOGUE_GAIN (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3) 1126*4882a593Smuzhiyun #define V4L2_CID_TEST_PATTERN_RED (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 4) 1127*4882a593Smuzhiyun #define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5) 1128*4882a593Smuzhiyun #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6) 1129*4882a593Smuzhiyun #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7) 1130*4882a593Smuzhiyun #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8) 1131*4882a593Smuzhiyun 1132*4882a593Smuzhiyun 1133*4882a593Smuzhiyun /* Image processing controls */ 1134*4882a593Smuzhiyun 1135*4882a593Smuzhiyun #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900) 1136*4882a593Smuzhiyun #define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1) 1137*4882a593Smuzhiyun 1138*4882a593Smuzhiyun #define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1) 1139*4882a593Smuzhiyun #define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2) 1140*4882a593Smuzhiyun #define V4L2_CID_TEST_PATTERN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 3) 1141*4882a593Smuzhiyun #define V4L2_CID_DEINTERLACING_MODE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 4) 1142*4882a593Smuzhiyun #define V4L2_CID_DIGITAL_GAIN (V4L2_CID_IMAGE_PROC_CLASS_BASE + 5) 1143*4882a593Smuzhiyun 1144*4882a593Smuzhiyun /* DV-class control IDs defined by V4L2 */ 1145*4882a593Smuzhiyun #define V4L2_CID_DV_CLASS_BASE (V4L2_CTRL_CLASS_DV | 0x900) 1146*4882a593Smuzhiyun #define V4L2_CID_DV_CLASS (V4L2_CTRL_CLASS_DV | 1) 1147*4882a593Smuzhiyun 1148*4882a593Smuzhiyun #define V4L2_CID_DV_TX_HOTPLUG (V4L2_CID_DV_CLASS_BASE + 1) 1149*4882a593Smuzhiyun #define V4L2_CID_DV_TX_RXSENSE (V4L2_CID_DV_CLASS_BASE + 2) 1150*4882a593Smuzhiyun #define V4L2_CID_DV_TX_EDID_PRESENT (V4L2_CID_DV_CLASS_BASE + 3) 1151*4882a593Smuzhiyun #define V4L2_CID_DV_TX_MODE (V4L2_CID_DV_CLASS_BASE + 4) 1152*4882a593Smuzhiyun enum v4l2_dv_tx_mode { 1153*4882a593Smuzhiyun V4L2_DV_TX_MODE_DVI_D = 0, 1154*4882a593Smuzhiyun V4L2_DV_TX_MODE_HDMI = 1, 1155*4882a593Smuzhiyun }; 1156*4882a593Smuzhiyun #define V4L2_CID_DV_TX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 5) 1157*4882a593Smuzhiyun enum v4l2_dv_rgb_range { 1158*4882a593Smuzhiyun V4L2_DV_RGB_RANGE_AUTO = 0, 1159*4882a593Smuzhiyun V4L2_DV_RGB_RANGE_LIMITED = 1, 1160*4882a593Smuzhiyun V4L2_DV_RGB_RANGE_FULL = 2, 1161*4882a593Smuzhiyun }; 1162*4882a593Smuzhiyun 1163*4882a593Smuzhiyun #define V4L2_CID_DV_TX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 6) 1164*4882a593Smuzhiyun enum v4l2_dv_it_content_type { 1165*4882a593Smuzhiyun V4L2_DV_IT_CONTENT_TYPE_GRAPHICS = 0, 1166*4882a593Smuzhiyun V4L2_DV_IT_CONTENT_TYPE_PHOTO = 1, 1167*4882a593Smuzhiyun V4L2_DV_IT_CONTENT_TYPE_CINEMA = 2, 1168*4882a593Smuzhiyun V4L2_DV_IT_CONTENT_TYPE_GAME = 3, 1169*4882a593Smuzhiyun V4L2_DV_IT_CONTENT_TYPE_NO_ITC = 4, 1170*4882a593Smuzhiyun }; 1171*4882a593Smuzhiyun 1172*4882a593Smuzhiyun #define V4L2_CID_DV_RX_POWER_PRESENT (V4L2_CID_DV_CLASS_BASE + 100) 1173*4882a593Smuzhiyun #define V4L2_CID_DV_RX_RGB_RANGE (V4L2_CID_DV_CLASS_BASE + 101) 1174*4882a593Smuzhiyun #define V4L2_CID_DV_RX_IT_CONTENT_TYPE (V4L2_CID_DV_CLASS_BASE + 102) 1175*4882a593Smuzhiyun 1176*4882a593Smuzhiyun #define V4L2_CID_FM_RX_CLASS_BASE (V4L2_CTRL_CLASS_FM_RX | 0x900) 1177*4882a593Smuzhiyun #define V4L2_CID_FM_RX_CLASS (V4L2_CTRL_CLASS_FM_RX | 1) 1178*4882a593Smuzhiyun 1179*4882a593Smuzhiyun #define V4L2_CID_TUNE_DEEMPHASIS (V4L2_CID_FM_RX_CLASS_BASE + 1) 1180*4882a593Smuzhiyun enum v4l2_deemphasis { 1181*4882a593Smuzhiyun V4L2_DEEMPHASIS_DISABLED = V4L2_PREEMPHASIS_DISABLED, 1182*4882a593Smuzhiyun V4L2_DEEMPHASIS_50_uS = V4L2_PREEMPHASIS_50_uS, 1183*4882a593Smuzhiyun V4L2_DEEMPHASIS_75_uS = V4L2_PREEMPHASIS_75_uS, 1184*4882a593Smuzhiyun }; 1185*4882a593Smuzhiyun 1186*4882a593Smuzhiyun #define V4L2_CID_RDS_RECEPTION (V4L2_CID_FM_RX_CLASS_BASE + 2) 1187*4882a593Smuzhiyun #define V4L2_CID_RDS_RX_PTY (V4L2_CID_FM_RX_CLASS_BASE + 3) 1188*4882a593Smuzhiyun #define V4L2_CID_RDS_RX_PS_NAME (V4L2_CID_FM_RX_CLASS_BASE + 4) 1189*4882a593Smuzhiyun #define V4L2_CID_RDS_RX_RADIO_TEXT (V4L2_CID_FM_RX_CLASS_BASE + 5) 1190*4882a593Smuzhiyun #define V4L2_CID_RDS_RX_TRAFFIC_ANNOUNCEMENT (V4L2_CID_FM_RX_CLASS_BASE + 6) 1191*4882a593Smuzhiyun #define V4L2_CID_RDS_RX_TRAFFIC_PROGRAM (V4L2_CID_FM_RX_CLASS_BASE + 7) 1192*4882a593Smuzhiyun #define V4L2_CID_RDS_RX_MUSIC_SPEECH (V4L2_CID_FM_RX_CLASS_BASE + 8) 1193*4882a593Smuzhiyun 1194*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_CLASS_BASE (V4L2_CTRL_CLASS_RF_TUNER | 0x900) 1195*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_CLASS (V4L2_CTRL_CLASS_RF_TUNER | 1) 1196*4882a593Smuzhiyun 1197*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_BANDWIDTH_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 11) 1198*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_BANDWIDTH (V4L2_CID_RF_TUNER_CLASS_BASE + 12) 1199*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_RF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 32) 1200*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_LNA_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 41) 1201*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_LNA_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 42) 1202*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_MIXER_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 51) 1203*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_MIXER_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 52) 1204*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_IF_GAIN_AUTO (V4L2_CID_RF_TUNER_CLASS_BASE + 61) 1205*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_IF_GAIN (V4L2_CID_RF_TUNER_CLASS_BASE + 62) 1206*4882a593Smuzhiyun #define V4L2_CID_RF_TUNER_PLL_LOCK (V4L2_CID_RF_TUNER_CLASS_BASE + 91) 1207*4882a593Smuzhiyun 1208*4882a593Smuzhiyun 1209*4882a593Smuzhiyun /* Detection-class control IDs defined by V4L2 */ 1210*4882a593Smuzhiyun #define V4L2_CID_DETECT_CLASS_BASE (V4L2_CTRL_CLASS_DETECT | 0x900) 1211*4882a593Smuzhiyun #define V4L2_CID_DETECT_CLASS (V4L2_CTRL_CLASS_DETECT | 1) 1212*4882a593Smuzhiyun 1213*4882a593Smuzhiyun #define V4L2_CID_DETECT_MD_MODE (V4L2_CID_DETECT_CLASS_BASE + 1) 1214*4882a593Smuzhiyun enum v4l2_detect_md_mode { 1215*4882a593Smuzhiyun V4L2_DETECT_MD_MODE_DISABLED = 0, 1216*4882a593Smuzhiyun V4L2_DETECT_MD_MODE_GLOBAL = 1, 1217*4882a593Smuzhiyun V4L2_DETECT_MD_MODE_THRESHOLD_GRID = 2, 1218*4882a593Smuzhiyun V4L2_DETECT_MD_MODE_REGION_GRID = 3, 1219*4882a593Smuzhiyun }; 1220*4882a593Smuzhiyun #define V4L2_CID_DETECT_MD_GLOBAL_THRESHOLD (V4L2_CID_DETECT_CLASS_BASE + 2) 1221*4882a593Smuzhiyun #define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3) 1222*4882a593Smuzhiyun #define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4) 1223*4882a593Smuzhiyun 1224*4882a593Smuzhiyun #define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900) 1225*4882a593Smuzhiyun #define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1) 1226*4882a593Smuzhiyun 1227*4882a593Smuzhiyun #define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0) 1228*4882a593Smuzhiyun 1229*4882a593Smuzhiyun struct v4l2_ctrl_hdr10_cll_info { 1230*4882a593Smuzhiyun __u16 max_content_light_level; 1231*4882a593Smuzhiyun __u16 max_pic_average_light_level; 1232*4882a593Smuzhiyun }; 1233*4882a593Smuzhiyun 1234*4882a593Smuzhiyun #define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1) 1235*4882a593Smuzhiyun 1236*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5 1237*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000 1238*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5 1239*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000 1240*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5 1241*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000 1242*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5 1243*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000 1244*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000 1245*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000 1246*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1 1247*4882a593Smuzhiyun #define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000 1248*4882a593Smuzhiyun 1249*4882a593Smuzhiyun struct v4l2_ctrl_hdr10_mastering_display { 1250*4882a593Smuzhiyun __u16 display_primaries_x[3]; 1251*4882a593Smuzhiyun __u16 display_primaries_y[3]; 1252*4882a593Smuzhiyun __u16 white_point_x; 1253*4882a593Smuzhiyun __u16 white_point_y; 1254*4882a593Smuzhiyun __u32 max_display_mastering_luminance; 1255*4882a593Smuzhiyun __u32 min_display_mastering_luminance; 1256*4882a593Smuzhiyun }; 1257*4882a593Smuzhiyun 1258*4882a593Smuzhiyun #endif 1259