| @@ -54,7 +54,7 @@ · 53 unmodified lines |
| 54 | 54 | |
| 55 | 55 | /* Control classes */ |
| 56 | 56 | #define V4L2_CTRL_CLASS_USER 0x00980000 /* Old-style 'user' controls */ |
| 57 | | −#define V4L2_CTRL_CLASS_MPEG 0x00990000 /* MPEG-compression controls */ |
| 57 | +#define V4L2_CTRL_CLASS_CODEC 0x00990000 /* Stateful codec controls */ |
| 58 | 58 | #define V4L2_CTRL_CLASS_CAMERA 0x009a0000 /* Camera class controls */ |
| 59 | 59 | #define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator controls */ |
| 60 | 60 | #define V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */ |
| @@ -65,6 +65,7 @@ · 4 unmodified lines |
| 65 | 65 | #define V4L2_CTRL_CLASS_FM_RX 0x00a10000 /* FM Receiver controls */ |
| 66 | 66 | #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000 /* RF tuner controls */ |
| 67 | 67 | #define V4L2_CTRL_CLASS_DETECT 0x00a30000 /* Detection controls */ |
| 68 | +#define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000 /* Stateless codecs controls */ |
| 68 | 69 | |
| 69 | 70 | /* User-class control IDs */ |
| 70 | 71 | |
| @@ -198,15 +199,21 @@ enum v4l2_colorfx { · 127 unmodified lines |
| 198 | 199 | */ |
| 199 | 200 | #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0) |
| 200 | 201 | |
| 202 | +/* |
| 203 | + * The base for the CODA driver controls. |
| 204 | + * We reserve 16 controls for this driver. |
| 205 | + */ |
| 206 | +#define V4L2_CID_USER_CODA_BASE (V4L2_CID_USER_BASE + 0x10e0) |
| 207 | + |
| 201 | 208 | /* MPEG-class control IDs */ |
| 202 | 209 | /* The MPEG controls are applicable to all codec controls |
| 203 | 210 | * and the 'MPEG' part of the define is historical */ |
| 204 | 211 | |
| 205 | | −#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900) |
| 206 | | −#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1) |
| 212 | +#define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900) |
| 213 | +#define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1) |
| 207 | 214 | |
| 208 | 215 | /* MPEG streams, specific to multiplexed streams */ |
| 209 | | −#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0) |
| 216 | +#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE+0) |
| 210 | 217 | enum v4l2_mpeg_stream_type { |
| 211 | 218 | V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, /* MPEG-2 program stream */ |
| 212 | 219 | V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, /* MPEG-2 transport stream */ |
| @@ -215,26 +222,26 @@ enum v4l2_mpeg_stream_type { · 2 unmodified lines |
| 215 | 222 | V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, /* MPEG-1 VCD-compatible stream */ |
| 216 | 223 | V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */ |
| 217 | 224 | }; |
| 218 | | −#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1) |
| 219 | | −#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2) |
| 220 | | −#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3) |
| 221 | | −#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4) |
| 222 | | −#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5) |
| 223 | | −#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6) |
| 224 | | −#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7) |
| 225 | +#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_CODEC_BASE+1) |
| 226 | +#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_CODEC_BASE+2) |
| 227 | +#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_CODEC_BASE+3) |
| 228 | +#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_CODEC_BASE+4) |
| 229 | +#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_CODEC_BASE+5) |
| 230 | +#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_CODEC_BASE+6) |
| 231 | +#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_CODEC_BASE+7) |
| 225 | 232 | enum v4l2_mpeg_stream_vbi_fmt { |
| 226 | 233 | V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, /* No VBI in the MPEG stream */ |
| 227 | 234 | V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV format */ |
| 228 | 235 | }; |
| 229 | 236 | |
| 230 | 237 | /* MPEG audio controls specific to multiplexed streams */ |
| 231 | | −#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100) |
| 238 | +#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_CODEC_BASE+100) |
| 232 | 239 | enum v4l2_mpeg_audio_sampling_freq { |
| 233 | 240 | V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0, |
| 234 | 241 | V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1, |
| 235 | 242 | V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2, |
| 236 | 243 | }; |
| 237 | | −#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101) |
| 244 | +#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_CODEC_BASE+101) |
| 238 | 245 | enum v4l2_mpeg_audio_encoding { |
| 239 | 246 | V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0, |
| 240 | 247 | V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1, |
| @@ -242,7 +249,7 @@ enum v4l2_mpeg_audio_encoding { · 1 unmodified line |
| 242 | 249 | V4L2_MPEG_AUDIO_ENCODING_AAC = 3, |
| 243 | 250 | V4L2_MPEG_AUDIO_ENCODING_AC3 = 4, |
| 244 | 251 | }; |
| 245 | | −#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102) |
| 252 | +#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_CODEC_BASE+102) |
| 246 | 253 | enum v4l2_mpeg_audio_l1_bitrate { |
| 247 | 254 | V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0, |
| 248 | 255 | V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1, |
| @@ -259,7 +266,7 @@ enum v4l2_mpeg_audio_l1_bitrate { · 10 unmodified lines |
| 259 | 266 | V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12, |
| 260 | 267 | V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13, |
| 261 | 268 | }; |
| 262 | | −#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103) |
| 269 | +#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_CODEC_BASE+103) |
| 263 | 270 | enum v4l2_mpeg_audio_l2_bitrate { |
| 264 | 271 | V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0, |
| 265 | 272 | V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1, |
| @@ -276,7 +283,7 @@ enum v4l2_mpeg_audio_l2_bitrate { · 10 unmodified lines |
| 276 | 283 | V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12, |
| 277 | 284 | V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13, |
| 278 | 285 | }; |
| 279 | | −#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104) |
| 286 | +#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_CODEC_BASE+104) |
| 280 | 287 | enum v4l2_mpeg_audio_l3_bitrate { |
| 281 | 288 | V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0, |
| 282 | 289 | V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1, |
| @@ -293,34 +300,34 @@ enum v4l2_mpeg_audio_l3_bitrate { · 10 unmodified lines |
| 293 | 300 | V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12, |
| 294 | 301 | V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13, |
| 295 | 302 | }; |
| 296 | | −#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105) |
| 303 | +#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_CODEC_BASE+105) |
| 297 | 304 | enum v4l2_mpeg_audio_mode { |
| 298 | 305 | V4L2_MPEG_AUDIO_MODE_STEREO = 0, |
| 299 | 306 | V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1, |
| 300 | 307 | V4L2_MPEG_AUDIO_MODE_DUAL = 2, |
| 301 | 308 | V4L2_MPEG_AUDIO_MODE_MONO = 3, |
| 302 | 309 | }; |
| 303 | | −#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106) |
| 310 | +#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_CODEC_BASE+106) |
| 304 | 311 | enum v4l2_mpeg_audio_mode_extension { |
| 305 | 312 | V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0, |
| 306 | 313 | V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1, |
| 307 | 314 | V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2, |
| 308 | 315 | V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3, |
| 309 | 316 | }; |
| 310 | | −#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107) |
| 317 | +#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_CODEC_BASE+107) |
| 311 | 318 | enum v4l2_mpeg_audio_emphasis { |
| 312 | 319 | V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0, |
| 313 | 320 | V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1, |
| 314 | 321 | V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2, |
| 315 | 322 | }; |
| 316 | | −#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108) |
| 323 | +#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_CODEC_BASE+108) |
| 317 | 324 | enum v4l2_mpeg_audio_crc { |
| 318 | 325 | V4L2_MPEG_AUDIO_CRC_NONE = 0, |
| 319 | 326 | V4L2_MPEG_AUDIO_CRC_CRC16 = 1, |
| 320 | 327 | }; |
| 321 | | −#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109) |
| 322 | | −#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110) |
| 323 | | −#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111) |
| 328 | +#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_CODEC_BASE+109) |
| 329 | +#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_CODEC_BASE+110) |
| 330 | +#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_CODEC_BASE+111) |
| 324 | 331 | enum v4l2_mpeg_audio_ac3_bitrate { |
| 325 | 332 | V4L2_MPEG_AUDIO_AC3_BITRATE_32K = 0, |
| 326 | 333 | V4L2_MPEG_AUDIO_AC3_BITRATE_40K = 1, |
| @@ -342,7 +349,7 @@ enum v4l2_mpeg_audio_ac3_bitrate { · 15 unmodified lines |
| 342 | 349 | V4L2_MPEG_AUDIO_AC3_BITRATE_576K = 17, |
| 343 | 350 | V4L2_MPEG_AUDIO_AC3_BITRATE_640K = 18, |
| 344 | 351 | }; |
| 345 | | −#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_MPEG_BASE+112) |
| 352 | +#define V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (V4L2_CID_CODEC_BASE+112) |
| 346 | 353 | enum v4l2_mpeg_audio_dec_playback { |
| 347 | 354 | V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO = 0, |
| 348 | 355 | V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO = 1, |
| @@ -351,52 +358,52 @@ enum v4l2_mpeg_audio_dec_playback { · 2 unmodified lines |
| 351 | 358 | V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO = 4, |
| 352 | 359 | V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO = 5, |
| 353 | 360 | }; |
| 354 | | −#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113) |
| 361 | +#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_CODEC_BASE+113) |
| 355 | 362 | |
| 356 | 363 | /* MPEG video controls specific to multiplexed streams */ |
| 357 | | −#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200) |
| 364 | +#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_CODEC_BASE+200) |
| 358 | 365 | enum v4l2_mpeg_video_encoding { |
| 359 | 366 | V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0, |
| 360 | 367 | V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1, |
| 361 | 368 | V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2, |
| 362 | 369 | }; |
| 363 | | −#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201) |
| 370 | +#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_CODEC_BASE+201) |
| 364 | 371 | enum v4l2_mpeg_video_aspect { |
| 365 | 372 | V4L2_MPEG_VIDEO_ASPECT_1x1 = 0, |
| 366 | 373 | V4L2_MPEG_VIDEO_ASPECT_4x3 = 1, |
| 367 | 374 | V4L2_MPEG_VIDEO_ASPECT_16x9 = 2, |
| 368 | 375 | V4L2_MPEG_VIDEO_ASPECT_221x100 = 3, |
| 369 | 376 | }; |
| 370 | | −#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202) |
| 371 | | −#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203) |
| 372 | | −#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204) |
| 373 | | −#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205) |
| 374 | | −#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206) |
| 377 | +#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_CODEC_BASE+202) |
| 378 | +#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_CODEC_BASE+203) |
| 379 | +#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_CODEC_BASE+204) |
| 380 | +#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_CODEC_BASE+205) |
| 381 | +#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_CODEC_BASE+206) |
| 375 | 382 | enum v4l2_mpeg_video_bitrate_mode { |
| 376 | 383 | V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0, |
| 377 | 384 | V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1, |
| 378 | 385 | V4L2_MPEG_VIDEO_BITRATE_MODE_CQ = 2, |
| 379 | 386 | }; |
| 380 | | −#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207) |
| 381 | | −#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208) |
| 382 | | −#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209) |
| 383 | | −#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210) |
| 384 | | −#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211) |
| 385 | | −#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212) |
| 386 | | −#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213) |
| 387 | | −#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214) |
| 388 | | −#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_MPEG_BASE+215) |
| 389 | | −#define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_MPEG_BASE+216) |
| 387 | +#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_CODEC_BASE+207) |
| 388 | +#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_CODEC_BASE+208) |
| 389 | +#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_CODEC_BASE+209) |
| 390 | +#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_CODEC_BASE+210) |
| 391 | +#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_CODEC_BASE+211) |
| 392 | +#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_CODEC_BASE+212) |
| 393 | +#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_CODEC_BASE+213) |
| 394 | +#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_CODEC_BASE+214) |
| 395 | +#define V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (V4L2_CID_CODEC_BASE+215) |
| 396 | +#define V4L2_CID_MPEG_VIDEO_HEADER_MODE (V4L2_CID_CODEC_BASE+216) |
| 390 | 397 | enum v4l2_mpeg_video_header_mode { |
| 391 | 398 | V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE = 0, |
| 392 | 399 | V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME = 1, |
| 393 | 400 | |
| 394 | 401 | }; |
| 395 | | −#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_MPEG_BASE+217) |
| 396 | | −#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_MPEG_BASE+218) |
| 397 | | −#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_MPEG_BASE+219) |
| 398 | | −#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_MPEG_BASE+220) |
| 399 | | −#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_MPEG_BASE+221) |
| 402 | +#define V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (V4L2_CID_CODEC_BASE+217) |
| 403 | +#define V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (V4L2_CID_CODEC_BASE+218) |
| 404 | +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (V4L2_CID_CODEC_BASE+219) |
| 405 | +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (V4L2_CID_CODEC_BASE+220) |
| 406 | +#define V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (V4L2_CID_CODEC_BASE+221) |
| 400 | 407 | enum v4l2_mpeg_video_multi_slice_mode { |
| 401 | 408 | V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE = 0, |
| 402 | 409 | V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB = 1, |
| @@ -407,24 +414,24 @@ enum v4l2_mpeg_video_multi_slice_mode { · 4 unmodified lines |
| 407 | 414 | V4L2_MPEG_VIDEO_MULTI_SICE_MODE_MAX_BYTES = 2, |
| 408 | 415 | #endif |
| 409 | 416 | }; |
| 410 | | −#define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_MPEG_BASE+222) |
| 411 | | −#define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_MPEG_BASE+223) |
| 412 | | −#define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_MPEG_BASE+224) |
| 413 | | −#define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_MPEG_BASE+225) |
| 414 | | −#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_MPEG_BASE+226) |
| 415 | | −#define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_MPEG_BASE+227) |
| 416 | | −#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_MPEG_BASE+228) |
| 417 | | −#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_MPEG_BASE+229) |
| 417 | +#define V4L2_CID_MPEG_VIDEO_VBV_SIZE (V4L2_CID_CODEC_BASE+222) |
| 418 | +#define V4L2_CID_MPEG_VIDEO_DEC_PTS (V4L2_CID_CODEC_BASE+223) |
| 419 | +#define V4L2_CID_MPEG_VIDEO_DEC_FRAME (V4L2_CID_CODEC_BASE+224) |
| 420 | +#define V4L2_CID_MPEG_VIDEO_VBV_DELAY (V4L2_CID_CODEC_BASE+225) |
| 421 | +#define V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (V4L2_CID_CODEC_BASE+226) |
| 422 | +#define V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (V4L2_CID_CODEC_BASE+227) |
| 423 | +#define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE+228) |
| 424 | +#define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE+229) |
| 418 | 425 | |
| 419 | 426 | /* CIDs for the MPEG-2 Part 2 (H.262) codec */ |
| 420 | | −#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_MPEG_BASE+270) |
| 427 | +#define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE+270) |
| 421 | 428 | enum v4l2_mpeg_video_mpeg2_level { |
| 422 | 429 | V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0, |
| 423 | 430 | V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN = 1, |
| 424 | 431 | V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440 = 2, |
| 425 | 432 | V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH = 3, |
| 426 | 433 | }; |
| 427 | | −#define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_MPEG_BASE+271) |
| 434 | +#define V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE (V4L2_CID_CODEC_BASE+271) |
| 428 | 435 | enum v4l2_mpeg_video_mpeg2_profile { |
| 429 | 436 | V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE = 0, |
| 430 | 437 | V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN = 1, |
| @@ -435,28 +442,28 @@ enum v4l2_mpeg_video_mpeg2_profile { · 4 unmodified lines |
| 435 | 442 | }; |
| 436 | 443 | |
| 437 | 444 | /* CIDs for the FWHT codec as used by the vicodec driver. */ |
| 438 | | −#define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_MPEG_BASE + 290) |
| 439 | | −#define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_MPEG_BASE + 291) |
| 440 | | − |
| 441 | | −#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_MPEG_BASE+300) |
| 442 | | −#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_MPEG_BASE+301) |
| 443 | | −#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_MPEG_BASE+302) |
| 444 | | −#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_MPEG_BASE+303) |
| 445 | | −#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_MPEG_BASE+304) |
| 446 | | −#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_MPEG_BASE+350) |
| 447 | | −#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_MPEG_BASE+351) |
| 448 | | −#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_MPEG_BASE+352) |
| 449 | | −#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_MPEG_BASE+353) |
| 450 | | −#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_MPEG_BASE+354) |
| 451 | | −#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_MPEG_BASE+355) |
| 452 | | −#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_MPEG_BASE+356) |
| 453 | | −#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_MPEG_BASE+357) |
| 445 | +#define V4L2_CID_FWHT_I_FRAME_QP (V4L2_CID_CODEC_BASE + 290) |
| 446 | +#define V4L2_CID_FWHT_P_FRAME_QP (V4L2_CID_CODEC_BASE + 291) |
| 447 | + |
| 448 | +#define V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (V4L2_CID_CODEC_BASE+300) |
| 449 | +#define V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (V4L2_CID_CODEC_BASE+301) |
| 450 | +#define V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (V4L2_CID_CODEC_BASE+302) |
| 451 | +#define V4L2_CID_MPEG_VIDEO_H263_MIN_QP (V4L2_CID_CODEC_BASE+303) |
| 452 | +#define V4L2_CID_MPEG_VIDEO_H263_MAX_QP (V4L2_CID_CODEC_BASE+304) |
| 453 | +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (V4L2_CID_CODEC_BASE+350) |
| 454 | +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (V4L2_CID_CODEC_BASE+351) |
| 455 | +#define V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (V4L2_CID_CODEC_BASE+352) |
| 456 | +#define V4L2_CID_MPEG_VIDEO_H264_MIN_QP (V4L2_CID_CODEC_BASE+353) |
| 457 | +#define V4L2_CID_MPEG_VIDEO_H264_MAX_QP (V4L2_CID_CODEC_BASE+354) |
| 458 | +#define V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (V4L2_CID_CODEC_BASE+355) |
| 459 | +#define V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (V4L2_CID_CODEC_BASE+356) |
| 460 | +#define V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (V4L2_CID_CODEC_BASE+357) |
| 454 | 461 | enum v4l2_mpeg_video_h264_entropy_mode { |
| 455 | 462 | V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC = 0, |
| 456 | 463 | V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC = 1, |
| 457 | 464 | }; |
| 458 | | −#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_MPEG_BASE+358) |
| 459 | | −#define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_MPEG_BASE+359) |
| 465 | +#define V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (V4L2_CID_CODEC_BASE+358) |
| 466 | +#define V4L2_CID_MPEG_VIDEO_H264_LEVEL (V4L2_CID_CODEC_BASE+359) |
| 460 | 467 | enum v4l2_mpeg_video_h264_level { |
| 461 | 468 | V4L2_MPEG_VIDEO_H264_LEVEL_1_0 = 0, |
| 462 | 469 | V4L2_MPEG_VIDEO_H264_LEVEL_1B = 1, |
| @@ -479,15 +486,15 @@ enum v4l2_mpeg_video_h264_level { · 16 unmodified lines |
| 479 | 486 | V4L2_MPEG_VIDEO_H264_LEVEL_6_1 = 18, |
| 480 | 487 | V4L2_MPEG_VIDEO_H264_LEVEL_6_2 = 19, |
| 481 | 488 | }; |
| 482 | | −#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_MPEG_BASE+360) |
| 483 | | −#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_MPEG_BASE+361) |
| 484 | | −#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE+362) |
| 489 | +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (V4L2_CID_CODEC_BASE+360) |
| 490 | +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (V4L2_CID_CODEC_BASE+361) |
| 491 | +#define V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (V4L2_CID_CODEC_BASE+362) |
| 485 | 492 | enum v4l2_mpeg_video_h264_loop_filter_mode { |
| 486 | 493 | V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED = 0, |
| 487 | 494 | V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED = 1, |
| 488 | 495 | V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2, |
| 489 | 496 | }; |
| 490 | | −#define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_MPEG_BASE+363) |
| 497 | +#define V4L2_CID_MPEG_VIDEO_H264_PROFILE (V4L2_CID_CODEC_BASE+363) |
| 491 | 498 | enum v4l2_mpeg_video_h264_profile { |
| 492 | 499 | V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE = 0, |
| 493 | 500 | V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE = 1, |
| @@ -508,10 +515,10 @@ enum v4l2_mpeg_video_h264_profile { · 14 unmodified lines |
| 508 | 515 | V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH = 16, |
| 509 | 516 | V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH = 17, |
| 510 | 517 | }; |
| 511 | | −#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_MPEG_BASE+364) |
| 512 | | −#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_MPEG_BASE+365) |
| 513 | | −#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_MPEG_BASE+366) |
| 514 | | −#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_MPEG_BASE+367) |
| 518 | +#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_CODEC_BASE+364) |
| 519 | +#define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_CODEC_BASE+365) |
| 520 | +#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (V4L2_CID_CODEC_BASE+366) |
| 521 | +#define V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (V4L2_CID_CODEC_BASE+367) |
| 515 | 522 | enum v4l2_mpeg_video_h264_vui_sar_idc { |
| 516 | 523 | V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED = 0, |
| 517 | 524 | V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1 = 1, |
| @@ -532,9 +539,9 @@ enum v4l2_mpeg_video_h264_vui_sar_idc { · 14 unmodified lines |
| 532 | 539 | V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1 = 16, |
| 533 | 540 | V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED = 17, |
| 534 | 541 | }; |
| 535 | | −#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_MPEG_BASE+368) |
| 536 | | −#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_MPEG_BASE+369) |
| 537 | | −#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_MPEG_BASE+370) |
| 542 | +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (V4L2_CID_CODEC_BASE+368) |
| 543 | +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (V4L2_CID_CODEC_BASE+369) |
| 544 | +#define V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (V4L2_CID_CODEC_BASE+370) |
| 538 | 545 | enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { |
| 539 | 546 | V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHECKERBOARD = 0, |
| 540 | 547 | V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN = 1, |
| @@ -543,8 +550,8 @@ enum v4l2_mpeg_video_h264_sei_fp_arrangement_type { · 2 unmodified lines |
| 543 | 550 | V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM = 4, |
| 544 | 551 | V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL = 5, |
| 545 | 552 | }; |
| 546 | | −#define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_MPEG_BASE+371) |
| 547 | | −#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_MPEG_BASE+372) |
| 553 | +#define V4L2_CID_MPEG_VIDEO_H264_FMO (V4L2_CID_CODEC_BASE+371) |
| 554 | +#define V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (V4L2_CID_CODEC_BASE+372) |
| 548 | 555 | enum v4l2_mpeg_video_h264_fmo_map_type { |
| 549 | 556 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES = 0, |
| 550 | 557 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES = 1, |
| @@ -554,36 +561,36 @@ enum v4l2_mpeg_video_h264_fmo_map_type { · 3 unmodified lines |
| 554 | 561 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN = 5, |
| 555 | 562 | V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT = 6, |
| 556 | 563 | }; |
| 557 | | −#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_MPEG_BASE+373) |
| 558 | | −#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_MPEG_BASE+374) |
| 564 | +#define V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (V4L2_CID_CODEC_BASE+373) |
| 565 | +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (V4L2_CID_CODEC_BASE+374) |
| 559 | 566 | enum v4l2_mpeg_video_h264_fmo_change_dir { |
| 560 | 567 | V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT = 0, |
| 561 | 568 | V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT = 1, |
| 562 | 569 | }; |
| 563 | | −#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_MPEG_BASE+375) |
| 564 | | −#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_MPEG_BASE+376) |
| 565 | | −#define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_MPEG_BASE+377) |
| 566 | | −#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_MPEG_BASE+378) |
| 567 | | −#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_MPEG_BASE+379) |
| 568 | | −#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_MPEG_BASE+380) |
| 570 | +#define V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (V4L2_CID_CODEC_BASE+375) |
| 571 | +#define V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (V4L2_CID_CODEC_BASE+376) |
| 572 | +#define V4L2_CID_MPEG_VIDEO_H264_ASO (V4L2_CID_CODEC_BASE+377) |
| 573 | +#define V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (V4L2_CID_CODEC_BASE+378) |
| 574 | +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (V4L2_CID_CODEC_BASE+379) |
| 575 | +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (V4L2_CID_CODEC_BASE+380) |
| 569 | 576 | enum v4l2_mpeg_video_h264_hierarchical_coding_type { |
| 570 | 577 | V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B = 0, |
| 571 | 578 | V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P = 1, |
| 572 | 579 | }; |
| 573 | | −#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381) |
| 574 | | −#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382) |
| 575 | | −#define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_MPEG_BASE+383) |
| 576 | | −#define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_MPEG_BASE+384) |
| 577 | | −#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+385) |
| 578 | | −#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+386) |
| 579 | | −#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_MPEG_BASE+387) |
| 580 | | −#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_MPEG_BASE+388) |
| 581 | | −#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400) |
| 582 | | −#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401) |
| 583 | | −#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402) |
| 584 | | −#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_MPEG_BASE+403) |
| 585 | | −#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_MPEG_BASE+404) |
| 586 | | −#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_MPEG_BASE+405) |
| 580 | +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_CODEC_BASE+381) |
| 581 | +#define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_CODEC_BASE+382) |
| 582 | +#define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_CODEC_BASE+383) |
| 583 | +#define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_CODEC_BASE+384) |
| 584 | +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+385) |
| 585 | +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+386) |
| 586 | +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (V4L2_CID_CODEC_BASE+387) |
| 587 | +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE+388) |
| 588 | +#define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_CODEC_BASE+400) |
| 589 | +#define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_CODEC_BASE+401) |
| 590 | +#define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_CODEC_BASE+402) |
| 591 | +#define V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (V4L2_CID_CODEC_BASE+403) |
| 592 | +#define V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (V4L2_CID_CODEC_BASE+404) |
| 593 | +#define V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (V4L2_CID_CODEC_BASE+405) |
| 587 | 594 | enum v4l2_mpeg_video_mpeg4_level { |
| 588 | 595 | V4L2_MPEG_VIDEO_MPEG4_LEVEL_0 = 0, |
| 589 | 596 | V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B = 1, |
| @@ -594,7 +601,7 @@ enum v4l2_mpeg_video_mpeg4_level { · 4 unmodified lines |
| 594 | 601 | V4L2_MPEG_VIDEO_MPEG4_LEVEL_4 = 6, |
| 595 | 602 | V4L2_MPEG_VIDEO_MPEG4_LEVEL_5 = 7, |
| 596 | 603 | }; |
| 597 | | −#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_MPEG_BASE+406) |
| 604 | +#define V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (V4L2_CID_CODEC_BASE+406) |
| 598 | 605 | enum v4l2_mpeg_video_mpeg4_profile { |
| 599 | 606 | V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE = 0, |
| 600 | 607 | V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE = 1, |
| @@ -602,40 +609,40 @@ enum v4l2_mpeg_video_mpeg4_profile { · 1 unmodified line |
| 602 | 609 | V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE = 3, |
| 603 | 610 | V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY = 4, |
| 604 | 611 | }; |
| 605 | | −#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_MPEG_BASE+407) |
| 612 | +#define V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (V4L2_CID_CODEC_BASE+407) |
| 606 | 613 | |
| 607 | 614 | /* Control IDs for VP8 streams |
| 608 | 615 | * Although VP8 is not part of MPEG we add these controls to the MPEG class |
| 609 | 616 | * as that class is already handling other video compression standards |
| 610 | 617 | */ |
| 611 | | −#define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_MPEG_BASE+500) |
| 618 | +#define V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (V4L2_CID_CODEC_BASE+500) |
| 612 | 619 | enum v4l2_vp8_num_partitions { |
| 613 | 620 | V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION = 0, |
| 614 | 621 | V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS = 1, |
| 615 | 622 | V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS = 2, |
| 616 | 623 | V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS = 3, |
| 617 | 624 | }; |
| 618 | | −#define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_MPEG_BASE+501) |
| 619 | | −#define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_MPEG_BASE+502) |
| 625 | +#define V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (V4L2_CID_CODEC_BASE+501) |
| 626 | +#define V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (V4L2_CID_CODEC_BASE+502) |
| 620 | 627 | enum v4l2_vp8_num_ref_frames { |
| 621 | 628 | V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME = 0, |
| 622 | 629 | V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME = 1, |
| 623 | 630 | V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME = 2, |
| 624 | 631 | }; |
| 625 | | −#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_MPEG_BASE+503) |
| 626 | | −#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_MPEG_BASE+504) |
| 627 | | −#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_MPEG_BASE+505) |
| 628 | | −#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_MPEG_BASE+506) |
| 632 | +#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (V4L2_CID_CODEC_BASE+503) |
| 633 | +#define V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (V4L2_CID_CODEC_BASE+504) |
| 634 | +#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (V4L2_CID_CODEC_BASE+505) |
| 635 | +#define V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (V4L2_CID_CODEC_BASE+506) |
| 629 | 636 | enum v4l2_vp8_golden_frame_sel { |
| 630 | 637 | V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV = 0, |
| 631 | 638 | V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD = 1, |
| 632 | 639 | }; |
| 633 | | −#define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_MPEG_BASE+507) |
| 634 | | −#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508) |
| 635 | | −#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509) |
| 636 | | −#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) |
| 640 | +#define V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (V4L2_CID_CODEC_BASE+507) |
| 641 | +#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_CODEC_BASE+508) |
| 642 | +#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_CODEC_BASE+509) |
| 643 | +#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_CODEC_BASE+510) |
| 637 | 644 | |
| 638 | | −#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_MPEG_BASE+511) |
| 645 | +#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_CODEC_BASE+511) |
| 639 | 646 | enum v4l2_mpeg_video_vp8_profile { |
| 640 | 647 | V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0, |
| 641 | 648 | V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1, |
| @@ -644,14 +651,14 @@ enum v4l2_mpeg_video_vp8_profile { · 2 unmodified lines |
| 644 | 651 | }; |
| 645 | 652 | /* Deprecated alias for compatibility reasons. */ |
| 646 | 653 | #define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE |
| 647 | | −#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_MPEG_BASE+512) |
| 654 | +#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_CODEC_BASE+512) |
| 648 | 655 | enum v4l2_mpeg_video_vp9_profile { |
| 649 | 656 | V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0, |
| 650 | 657 | V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1, |
| 651 | 658 | V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2, |
| 652 | 659 | V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3, |
| 653 | 660 | }; |
| 654 | | −#define V4L2_CID_MPEG_VIDEO_VP9_LEVEL (V4L2_CID_MPEG_BASE+513) |
| 661 | +#define V4L2_CID_MPEG_VIDEO_VP9_LEVEL (V4L2_CID_CODEC_BASE+513) |
| 655 | 662 | enum v4l2_mpeg_video_vp9_level { |
| 656 | 663 | V4L2_MPEG_VIDEO_VP9_LEVEL_1_0 = 0, |
| 657 | 664 | V4L2_MPEG_VIDEO_VP9_LEVEL_1_1 = 1, |
| @@ -671,32 +678,32 @@ enum v4l2_mpeg_video_vp9_level { · 13 unmodified lines |
| 671 | 678 | |
| 672 | 679 | /* CIDs for HEVC encoding. */ |
| 673 | 680 | |
| 674 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600) |
| 675 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601) |
| 676 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602) |
| 677 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603) |
| 678 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604) |
| 679 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605) |
| 680 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606) |
| 681 | +#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_CODEC_BASE + 600) |
| 682 | +#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_CODEC_BASE + 601) |
| 683 | +#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_CODEC_BASE + 602) |
| 684 | +#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_CODEC_BASE + 603) |
| 685 | +#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_CODEC_BASE + 604) |
| 686 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_CODEC_BASE + 605) |
| 687 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_CODEC_BASE + 606) |
| 681 | 688 | enum v4l2_mpeg_video_hevc_hier_coding_type { |
| 682 | 689 | V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0, |
| 683 | 690 | V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1, |
| 684 | 691 | }; |
| 685 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607) |
| 686 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608) |
| 687 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609) |
| 688 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610) |
| 689 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611) |
| 690 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612) |
| 691 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613) |
| 692 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614) |
| 693 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615) |
| 692 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_CODEC_BASE + 607) |
| 693 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_CODEC_BASE + 608) |
| 694 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_CODEC_BASE + 609) |
| 695 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_CODEC_BASE + 610) |
| 696 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_CODEC_BASE + 611) |
| 697 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_CODEC_BASE + 612) |
| 698 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_CODEC_BASE + 613) |
| 699 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_CODEC_BASE + 614) |
| 700 | +#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_CODEC_BASE + 615) |
| 694 | 701 | enum v4l2_mpeg_video_hevc_profile { |
| 695 | 702 | V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0, |
| 696 | 703 | V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1, |
| 697 | 704 | V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2, |
| 698 | 705 | }; |
| 699 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616) |
| 706 | +#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_CODEC_BASE + 616) |
| 700 | 707 | enum v4l2_mpeg_video_hevc_level { |
| 701 | 708 | V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0, |
| 702 | 709 | V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1, |
| @@ -712,56 +719,56 @@ enum v4l2_mpeg_video_hevc_level { · 9 unmodified lines |
| 712 | 719 | V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11, |
| 713 | 720 | V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12, |
| 714 | 721 | }; |
| 715 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617) |
| 716 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618) |
| 722 | +#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_CODEC_BASE + 617) |
| 723 | +#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_CODEC_BASE + 618) |
| 717 | 724 | enum v4l2_mpeg_video_hevc_tier { |
| 718 | 725 | V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0, |
| 719 | 726 | V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1, |
| 720 | 727 | }; |
| 721 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619) |
| 722 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620) |
| 728 | +#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_CODEC_BASE + 619) |
| 729 | +#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_CODEC_BASE + 620) |
| 723 | 730 | enum v4l2_cid_mpeg_video_hevc_loop_filter_mode { |
| 724 | 731 | V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0, |
| 725 | 732 | V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1, |
| 726 | 733 | V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2, |
| 727 | 734 | }; |
| 728 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621) |
| 729 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622) |
| 730 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623) |
| 735 | +#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_CODEC_BASE + 621) |
| 736 | +#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_CODEC_BASE + 622) |
| 737 | +#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_CODEC_BASE + 623) |
| 731 | 738 | enum v4l2_cid_mpeg_video_hevc_refresh_type { |
| 732 | 739 | V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0, |
| 733 | 740 | V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1, |
| 734 | 741 | V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2, |
| 735 | 742 | }; |
| 736 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624) |
| 737 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625) |
| 738 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626) |
| 739 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627) |
| 740 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628) |
| 741 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629) |
| 742 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630) |
| 743 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631) |
| 744 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632) |
| 745 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633) |
| 746 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634) |
| 747 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635) |
| 743 | +#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_CODEC_BASE + 624) |
| 744 | +#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_CODEC_BASE + 625) |
| 745 | +#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_CODEC_BASE + 626) |
| 746 | +#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_CODEC_BASE + 627) |
| 747 | +#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_CODEC_BASE + 628) |
| 748 | +#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_CODEC_BASE + 629) |
| 749 | +#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_CODEC_BASE + 630) |
| 750 | +#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_CODEC_BASE + 631) |
| 751 | +#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_CODEC_BASE + 632) |
| 752 | +#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_CODEC_BASE + 633) |
| 753 | +#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_CODEC_BASE + 634) |
| 754 | +#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_CODEC_BASE + 635) |
| 748 | 755 | enum v4l2_cid_mpeg_video_hevc_size_of_length_field { |
| 749 | 756 | V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0, |
| 750 | 757 | V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1, |
| 751 | 758 | V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2, |
| 752 | 759 | V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3, |
| 753 | 760 | }; |
| 754 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636) |
| 755 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637) |
| 756 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638) |
| 757 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639) |
| 758 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640) |
| 759 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641) |
| 760 | | −#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642) |
| 761 | | −#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643) |
| 762 | | −#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644) |
| 763 | | −#define V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (V4L2_CID_MPEG_BASE + 645) |
| 764 | | −#define V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_BASE + 646) |
| 761 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_CODEC_BASE + 636) |
| 762 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_CODEC_BASE + 637) |
| 763 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_CODEC_BASE + 638) |
| 764 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_CODEC_BASE + 639) |
| 765 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_CODEC_BASE + 640) |
| 766 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_CODEC_BASE + 641) |
| 767 | +#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_CODEC_BASE + 642) |
| 768 | +#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_CODEC_BASE + 643) |
| 769 | +#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_CODEC_BASE + 644) |
| 770 | +#define V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (V4L2_CID_CODEC_BASE + 645) |
| 771 | +#define V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (V4L2_CID_CODEC_BASE + 646) |
| 765 | 772 | enum v4l2_mpeg_video_frame_skip_mode { |
| 766 | 773 | V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED = 0, |
| 767 | 774 | V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1, |
| @@ -769,14 +776,14 @@ enum v4l2_mpeg_video_frame_skip_mode { · 1 unmodified line |
| 769 | 776 | }; |
| 770 | 777 | |
| 771 | 778 | /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ |
| 772 | | −#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) |
| 773 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) |
| 779 | +#define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000) |
| 780 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+0) |
| 774 | 781 | enum v4l2_mpeg_cx2341x_video_spatial_filter_mode { |
| 775 | 782 | V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0, |
| 776 | 783 | V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1, |
| 777 | 784 | }; |
| 778 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1) |
| 779 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2) |
| 785 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_CODEC_CX2341X_BASE+1) |
| 786 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+2) |
| 780 | 787 | enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { |
| 781 | 788 | V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0, |
| 782 | 789 | V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, |
| @@ -784,18 +791,18 @@ enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type { · 1 unmodified line |
| 784 | 791 | V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3, |
| 785 | 792 | V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4, |
| 786 | 793 | }; |
| 787 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3) |
| 794 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+3) |
| 788 | 795 | enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type { |
| 789 | 796 | V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0, |
| 790 | 797 | V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1, |
| 791 | 798 | }; |
| 792 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4) |
| 799 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE+4) |
| 793 | 800 | enum v4l2_mpeg_cx2341x_video_temporal_filter_mode { |
| 794 | 801 | V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0, |
| 795 | 802 | V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1, |
| 796 | 803 | }; |
| 797 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5) |
| 798 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6) |
| 804 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_CODEC_CX2341X_BASE+5) |
| 805 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_CODEC_CX2341X_BASE+6) |
| 799 | 806 | enum v4l2_mpeg_cx2341x_video_median_filter_type { |
| 800 | 807 | V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0, |
| 801 | 808 | V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1, |
| @@ -803,38 +810,38 @@ enum v4l2_mpeg_cx2341x_video_median_filter_type { · 1 unmodified line |
| 803 | 810 | V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3, |
| 804 | 811 | V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4, |
| 805 | 812 | }; |
| 806 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7) |
| 807 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8) |
| 808 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9) |
| 809 | | −#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10) |
| 810 | | −#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11) |
| 813 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_CODEC_CX2341X_BASE+7) |
| 814 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_CODEC_CX2341X_BASE+8) |
| 815 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_CODEC_CX2341X_BASE+9) |
| 816 | +#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_CODEC_CX2341X_BASE+10) |
| 817 | +#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_CODEC_CX2341X_BASE+11) |
| 811 | 818 | |
| 812 | 819 | /* MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */ |
| 813 | | −#define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100) |
| 820 | +#define V4L2_CID_CODEC_MFC51_BASE (V4L2_CTRL_CLASS_CODEC | 0x1100) |
| 814 | 821 | |
| 815 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_MPEG_MFC51_BASE+0) |
| 816 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_MPEG_MFC51_BASE+1) |
| 817 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_MPEG_MFC51_BASE+2) |
| 822 | +#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (V4L2_CID_CODEC_MFC51_BASE+0) |
| 823 | +#define V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_MFC51_BASE+1) |
| 824 | +#define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (V4L2_CID_CODEC_MFC51_BASE+2) |
| 818 | 825 | enum v4l2_mpeg_mfc51_video_frame_skip_mode { |
| 819 | 826 | V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED = 0, |
| 820 | 827 | V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT = 1, |
| 821 | 828 | V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT = 2, |
| 822 | 829 | }; |
| 823 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_MPEG_MFC51_BASE+3) |
| 830 | +#define V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (V4L2_CID_CODEC_MFC51_BASE+3) |
| 824 | 831 | enum v4l2_mpeg_mfc51_video_force_frame_type { |
| 825 | 832 | V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_DISABLED = 0, |
| 826 | 833 | V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_I_FRAME = 1, |
| 827 | 834 | V4L2_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE_NOT_CODED = 2, |
| 828 | 835 | }; |
| 829 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_MPEG_MFC51_BASE+4) |
| 830 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_MPEG_MFC51_BASE+5) |
| 831 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_MPEG_MFC51_BASE+6) |
| 832 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_MPEG_MFC51_BASE+7) |
| 833 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_MPEG_MFC51_BASE+50) |
| 834 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_MPEG_MFC51_BASE+51) |
| 835 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_MPEG_MFC51_BASE+52) |
| 836 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53) |
| 837 | | −#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54) |
| 836 | +#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING (V4L2_CID_CODEC_MFC51_BASE+4) |
| 837 | +#define V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (V4L2_CID_CODEC_MFC51_BASE+5) |
| 838 | +#define V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (V4L2_CID_CODEC_MFC51_BASE+6) |
| 839 | +#define V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (V4L2_CID_CODEC_MFC51_BASE+7) |
| 840 | +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (V4L2_CID_CODEC_MFC51_BASE+50) |
| 841 | +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (V4L2_CID_CODEC_MFC51_BASE+51) |
| 842 | +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (V4L2_CID_CODEC_MFC51_BASE+52) |
| 843 | +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_CODEC_MFC51_BASE+53) |
| 844 | +#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_CODEC_MFC51_BASE+54) |
| 838 | 845 | |
| 839 | 846 | /* Camera class control IDs */ |
| 840 | 847 | |
| @@ -1171,4 +1178,470 @@ enum v4l2_detect_md_mode { · 330 unmodified lines |
| 1171 | 1178 | #define V4L2_CID_DETECT_MD_THRESHOLD_GRID (V4L2_CID_DETECT_CLASS_BASE + 3) |
| 1172 | 1179 | #define V4L2_CID_DETECT_MD_REGION_GRID (V4L2_CID_DETECT_CLASS_BASE + 4) |
| 1173 | 1180 | |
| 1181 | + |
| 1182 | +/* Stateless CODECs controls */ |
| 1183 | +#define V4L2_CID_CODEC_STATELESS_BASE (V4L2_CTRL_CLASS_CODEC_STATELESS | 0x900) |
| 1184 | +#define V4L2_CID_CODEC_STATELESS_CLASS (V4L2_CTRL_CLASS_CODEC_STATELESS | 1) |
| 1185 | + |
| 1186 | +#define V4L2_CID_STATELESS_H264_DECODE_MODE (V4L2_CID_CODEC_STATELESS_BASE + 0) |
| 1187 | +/** |
| 1188 | + * enum v4l2_stateless_h264_decode_mode - Decoding mode |
| 1189 | + * |
| 1190 | + * @V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED: indicates that decoding |
| 1191 | + * is performed one slice at a time. In this mode, |
| 1192 | + * V4L2_CID_STATELESS_H264_SLICE_PARAMS must contain the parsed slice |
| 1193 | + * parameters and the OUTPUT buffer must contain a single slice. |
| 1194 | + * V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF feature is used |
| 1195 | + * in order to support multislice frames. |
| 1196 | + * @V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED: indicates that |
| 1197 | + * decoding is performed per frame. The OUTPUT buffer must contain |
| 1198 | + * all slices and also both fields. This mode is typically supported |
| 1199 | + * by device drivers that are able to parse the slice(s) header(s) |
| 1200 | + * in hardware. When this mode is selected, |
| 1201 | + * V4L2_CID_STATELESS_H264_SLICE_PARAMS is not used. |
| 1202 | + */ |
| 1203 | +enum v4l2_stateless_h264_decode_mode { |
| 1204 | + V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED, |
| 1205 | + V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED, |
| 1206 | +}; |
| 1207 | + |
| 1208 | +#define V4L2_CID_STATELESS_H264_START_CODE (V4L2_CID_CODEC_STATELESS_BASE + 1) |
| 1209 | +/** |
| 1210 | + * enum v4l2_stateless_h264_start_code - Start code |
| 1211 | + * |
| 1212 | + * @V4L2_STATELESS_H264_START_CODE_NONE: slices are passed |
| 1213 | + * to the driver without any start code. |
| 1214 | + * @V4L2_STATELESS_H264_START_CODE_ANNEX_B: slices are passed |
| 1215 | + * to the driver with an Annex B start code prefix |
| 1216 | + * (legal start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001). |
| 1217 | + * This mode is typically supported by device drivers that parse |
| 1218 | + * the start code in hardware. |
| 1219 | + */ |
| 1220 | +enum v4l2_stateless_h264_start_code { |
| 1221 | + V4L2_STATELESS_H264_START_CODE_NONE, |
| 1222 | + V4L2_STATELESS_H264_START_CODE_ANNEX_B, |
| 1223 | +}; |
| 1224 | + |
| 1225 | +#define V4L2_H264_SPS_CONSTRAINT_SET0_FLAG 0x01 |
| 1226 | +#define V4L2_H264_SPS_CONSTRAINT_SET1_FLAG 0x02 |
| 1227 | +#define V4L2_H264_SPS_CONSTRAINT_SET2_FLAG 0x04 |
| 1228 | +#define V4L2_H264_SPS_CONSTRAINT_SET3_FLAG 0x08 |
| 1229 | +#define V4L2_H264_SPS_CONSTRAINT_SET4_FLAG 0x10 |
| 1230 | +#define V4L2_H264_SPS_CONSTRAINT_SET5_FLAG 0x20 |
| 1231 | + |
| 1232 | +#define V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE 0x01 |
| 1233 | +#define V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS 0x02 |
| 1234 | +#define V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO 0x04 |
| 1235 | +#define V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED 0x08 |
| 1236 | +#define V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY 0x10 |
| 1237 | +#define V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD 0x20 |
| 1238 | +#define V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE 0x40 |
| 1239 | + |
| 1240 | +#define V4L2_H264_SPS_HAS_CHROMA_FORMAT(sps) \ |
| 1241 | + ((sps)->profile_idc == 100 || (sps)->profile_idc == 110 || \ |
| 1242 | + (sps)->profile_idc == 122 || (sps)->profile_idc == 244 || \ |
| 1243 | + (sps)->profile_idc == 44 || (sps)->profile_idc == 83 || \ |
| 1244 | + (sps)->profile_idc == 86 || (sps)->profile_idc == 118 || \ |
| 1245 | + (sps)->profile_idc == 128 || (sps)->profile_idc == 138 || \ |
| 1246 | + (sps)->profile_idc == 139 || (sps)->profile_idc == 134 || \ |
| 1247 | + (sps)->profile_idc == 135) |
| 1248 | + |
| 1249 | +#define V4L2_CID_STATELESS_H264_SPS (V4L2_CID_CODEC_STATELESS_BASE + 2) |
| 1250 | +/** |
| 1251 | + * struct v4l2_ctrl_h264_sps - H264 sequence parameter set |
| 1252 | + * |
| 1253 | + * All the members on this sequence parameter set structure match the |
| 1254 | + * sequence parameter set syntax as specified by the H264 specification. |
| 1255 | + * |
| 1256 | + * @profile_idc: see H264 specification. |
| 1257 | + * @constraint_set_flags: see H264 specification. |
| 1258 | + * @level_idc: see H264 specification. |
| 1259 | + * @seq_parameter_set_id: see H264 specification. |
| 1260 | + * @chroma_format_idc: see H264 specification. |
| 1261 | + * @bit_depth_luma_minus8: see H264 specification. |
| 1262 | + * @bit_depth_chroma_minus8: see H264 specification. |
| 1263 | + * @log2_max_frame_num_minus4: see H264 specification. |
| 1264 | + * @pic_order_cnt_type: see H264 specification. |
| 1265 | + * @log2_max_pic_order_cnt_lsb_minus4: see H264 specification. |
| 1266 | + * @max_num_ref_frames: see H264 specification. |
| 1267 | + * @num_ref_frames_in_pic_order_cnt_cycle: see H264 specification. |
| 1268 | + * @offset_for_ref_frame: see H264 specification. |
| 1269 | + * @offset_for_non_ref_pic: see H264 specification. |
| 1270 | + * @offset_for_top_to_bottom_field: see H264 specification. |
| 1271 | + * @pic_width_in_mbs_minus1: see H264 specification. |
| 1272 | + * @pic_height_in_map_units_minus1: see H264 specification. |
| 1273 | + * @flags: see V4L2_H264_SPS_FLAG_{}. |
| 1274 | + */ |
| 1275 | +struct v4l2_ctrl_h264_sps { |
| 1276 | + __u8 profile_idc; |
| 1277 | + __u8 constraint_set_flags; |
| 1278 | + __u8 level_idc; |
| 1279 | + __u8 seq_parameter_set_id; |
| 1280 | + __u8 chroma_format_idc; |
| 1281 | + __u8 bit_depth_luma_minus8; |
| 1282 | + __u8 bit_depth_chroma_minus8; |
| 1283 | + __u8 log2_max_frame_num_minus4; |
| 1284 | + __u8 pic_order_cnt_type; |
| 1285 | + __u8 log2_max_pic_order_cnt_lsb_minus4; |
| 1286 | + __u8 max_num_ref_frames; |
| 1287 | + __u8 num_ref_frames_in_pic_order_cnt_cycle; |
| 1288 | + __s32 offset_for_ref_frame[255]; |
| 1289 | + __s32 offset_for_non_ref_pic; |
| 1290 | + __s32 offset_for_top_to_bottom_field; |
| 1291 | + __u16 pic_width_in_mbs_minus1; |
| 1292 | + __u16 pic_height_in_map_units_minus1; |
| 1293 | + __u32 flags; |
| 1294 | +}; |
| 1295 | + |
| 1296 | +#define V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE 0x0001 |
| 1297 | +#define V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT 0x0002 |
| 1298 | +#define V4L2_H264_PPS_FLAG_WEIGHTED_PRED 0x0004 |
| 1299 | +#define V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT 0x0008 |
| 1300 | +#define V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED 0x0010 |
| 1301 | +#define V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT 0x0020 |
| 1302 | +#define V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE 0x0040 |
| 1303 | +#define V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT 0x0080 |
| 1304 | + |
| 1305 | +#define V4L2_CID_STATELESS_H264_PPS (V4L2_CID_CODEC_STATELESS_BASE + 3) |
| 1306 | +/** |
| 1307 | + * struct v4l2_ctrl_h264_pps - H264 picture parameter set |
| 1308 | + * |
| 1309 | + * Except where noted, all the members on this picture parameter set |
| 1310 | + * structure match the sequence parameter set syntax as specified |
| 1311 | + * by the H264 specification. |
| 1312 | + * |
| 1313 | + * In particular, V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT flag |
| 1314 | + * has a specific meaning. This flag should be set if a non-flat |
| 1315 | + * scaling matrix applies to the picture. In this case, applications |
| 1316 | + * are expected to use V4L2_CID_STATELESS_H264_SCALING_MATRIX, |
| 1317 | + * to pass the values of the non-flat matrices. |
| 1318 | + * |
| 1319 | + * @pic_parameter_set_id: see H264 specification. |
| 1320 | + * @seq_parameter_set_id: see H264 specification. |
| 1321 | + * @num_slice_groups_minus1: see H264 specification. |
| 1322 | + * @num_ref_idx_l0_default_active_minus1: see H264 specification. |
| 1323 | + * @num_ref_idx_l1_default_active_minus1: see H264 specification. |
| 1324 | + * @weighted_bipred_idc: see H264 specification. |
| 1325 | + * @pic_init_qp_minus26: see H264 specification. |
| 1326 | + * @pic_init_qs_minus26: see H264 specification. |
| 1327 | + * @chroma_qp_index_offset: see H264 specification. |
| 1328 | + * @second_chroma_qp_index_offset: see H264 specification. |
| 1329 | + * @flags: see V4L2_H264_PPS_FLAG_{}. |
| 1330 | + */ |
| 1331 | +struct v4l2_ctrl_h264_pps { |
| 1332 | + __u8 pic_parameter_set_id; |
| 1333 | + __u8 seq_parameter_set_id; |
| 1334 | + __u8 num_slice_groups_minus1; |
| 1335 | + __u8 num_ref_idx_l0_default_active_minus1; |
| 1336 | + __u8 num_ref_idx_l1_default_active_minus1; |
| 1337 | + __u8 weighted_bipred_idc; |
| 1338 | + __s8 pic_init_qp_minus26; |
| 1339 | + __s8 pic_init_qs_minus26; |
| 1340 | + __s8 chroma_qp_index_offset; |
| 1341 | + __s8 second_chroma_qp_index_offset; |
| 1342 | + __u16 flags; |
| 1343 | +}; |
| 1344 | + |
| 1345 | +#define V4L2_CID_STATELESS_H264_SCALING_MATRIX (V4L2_CID_CODEC_STATELESS_BASE + 4) |
| 1346 | +/** |
| 1347 | + * struct v4l2_ctrl_h264_scaling_matrix - H264 scaling matrices |
| 1348 | + * |
| 1349 | + * @scaling_list_4x4: scaling matrix after applying the inverse |
| 1350 | + * scanning process. Expected list order is Intra Y, Intra Cb, |
| 1351 | + * Intra Cr, Inter Y, Inter Cb, Inter Cr. The values on each |
| 1352 | + * scaling list are expected in raster scan order. |
| 1353 | + * @scaling_list_8x8: scaling matrix after applying the inverse |
| 1354 | + * scanning process. Expected list order is Intra Y, Inter Y, |
| 1355 | + * Intra Cb, Inter Cb, Intra Cr, Inter Cr. The values on each |
| 1356 | + * scaling list are expected in raster scan order. |
| 1357 | + * |
| 1358 | + * Note that the list order is different for the 4x4 and 8x8 |
| 1359 | + * matrices as per the H264 specification, see table 7-2 "Assignment |
| 1360 | + * of mnemonic names to scaling list indices and specification of |
| 1361 | + * fall-back rule". |
| 1362 | + */ |
| 1363 | +struct v4l2_ctrl_h264_scaling_matrix { |
| 1364 | + __u8 scaling_list_4x4[6][16]; |
| 1365 | + __u8 scaling_list_8x8[6][64]; |
| 1366 | +}; |
| 1367 | + |
| 1368 | +struct v4l2_h264_weight_factors { |
| 1369 | + __s16 luma_weight[32]; |
| 1370 | + __s16 luma_offset[32]; |
| 1371 | + __s16 chroma_weight[32][2]; |
| 1372 | + __s16 chroma_offset[32][2]; |
| 1373 | +}; |
| 1374 | + |
| 1375 | +#define V4L2_H264_CTRL_PRED_WEIGHTS_REQUIRED(pps, slice) \ |
| 1376 | + ((((pps)->flags & V4L2_H264_PPS_FLAG_WEIGHTED_PRED) && \ |
| 1377 | + ((slice)->slice_type == V4L2_H264_SLICE_TYPE_P || \ |
| 1378 | + (slice)->slice_type == V4L2_H264_SLICE_TYPE_SP)) || \ |
| 1379 | + ((pps)->weighted_bipred_idc == 1 && \ |
| 1380 | + (slice)->slice_type == V4L2_H264_SLICE_TYPE_B)) |
| 1381 | + |
| 1382 | +#define V4L2_CID_STATELESS_H264_PRED_WEIGHTS (V4L2_CID_CODEC_STATELESS_BASE + 5) |
| 1383 | +/** |
| 1384 | + * struct v4l2_ctrl_h264_pred_weights - Prediction weight table |
| 1385 | + * |
| 1386 | + * Prediction weight table, which matches the syntax specified |
| 1387 | + * by the H264 specification. |
| 1388 | + * |
| 1389 | + * @luma_log2_weight_denom: see H264 specification. |
| 1390 | + * @chroma_log2_weight_denom: see H264 specification. |
| 1391 | + * @weight_factors: luma and chroma weight factors. |
| 1392 | + */ |
| 1393 | +struct v4l2_ctrl_h264_pred_weights { |
| 1394 | + __u16 luma_log2_weight_denom; |
| 1395 | + __u16 chroma_log2_weight_denom; |
| 1396 | + struct v4l2_h264_weight_factors weight_factors[2]; |
| 1397 | +}; |
| 1398 | + |
| 1399 | +#define V4L2_H264_SLICE_TYPE_P 0 |
| 1400 | +#define V4L2_H264_SLICE_TYPE_B 1 |
| 1401 | +#define V4L2_H264_SLICE_TYPE_I 2 |
| 1402 | +#define V4L2_H264_SLICE_TYPE_SP 3 |
| 1403 | +#define V4L2_H264_SLICE_TYPE_SI 4 |
| 1404 | + |
| 1405 | +#define V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x01 |
| 1406 | +#define V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH 0x02 |
| 1407 | + |
| 1408 | +#define V4L2_H264_TOP_FIELD_REF 0x1 |
| 1409 | +#define V4L2_H264_BOTTOM_FIELD_REF 0x2 |
| 1410 | +#define V4L2_H264_FRAME_REF 0x3 |
| 1411 | + |
| 1412 | +/** |
| 1413 | + * struct v4l2_h264_reference - H264 picture reference |
| 1414 | + * |
| 1415 | + * @fields: indicates how the picture is referenced. |
| 1416 | + * Valid values are V4L2_H264_{}_REF. |
| 1417 | + * @index: index into v4l2_ctrl_h264_decode_params.dpb[]. |
| 1418 | + */ |
| 1419 | +struct v4l2_h264_reference { |
| 1420 | + __u8 fields; |
| 1421 | + __u8 index; |
| 1422 | +}; |
| 1423 | + |
| 1424 | +/* |
| 1425 | + * Maximum DPB size, as specified by section 'A.3.1 Level limits |
| 1426 | + * common to the Baseline, Main, and Extended profiles'. |
| 1427 | + */ |
| 1428 | +#define V4L2_H264_NUM_DPB_ENTRIES 16 |
| 1429 | +#define V4L2_H264_REF_LIST_LEN (2 * V4L2_H264_NUM_DPB_ENTRIES) |
| 1430 | + |
| 1431 | +#define V4L2_CID_STATELESS_H264_SLICE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 6) |
| 1432 | +/** |
| 1433 | + * struct v4l2_ctrl_h264_slice_params - H264 slice parameters |
| 1434 | + * |
| 1435 | + * This structure holds the H264 syntax elements that are specified |
| 1436 | + * as non-invariant for the slices in a given frame. |
| 1437 | + * |
| 1438 | + * Slice invariant syntax elements are contained in struct |
| 1439 | + * v4l2_ctrl_h264_decode_params. This is done to reduce the API surface |
| 1440 | + * on frame-based decoders, where slice header parsing is done by the |
| 1441 | + * hardware. |
| 1442 | + * |
| 1443 | + * Slice invariant syntax elements are specified in specification section |
| 1444 | + * "7.4.3 Slice header semantics". |
| 1445 | + * |
| 1446 | + * Except where noted, the members on this struct match the slice header syntax. |
| 1447 | + * |
| 1448 | + * @header_bit_size: offset in bits to slice_data() from the beginning of this slice. |
| 1449 | + * @first_mb_in_slice: see H264 specification. |
| 1450 | + * @slice_type: see H264 specification. |
| 1451 | + * @colour_plane_id: see H264 specification. |
| 1452 | + * @redundant_pic_cnt: see H264 specification. |
| 1453 | + * @cabac_init_idc: see H264 specification. |
| 1454 | + * @slice_qp_delta: see H264 specification. |
| 1455 | + * @slice_qs_delta: see H264 specification. |
| 1456 | + * @disable_deblocking_filter_idc: see H264 specification. |
| 1457 | + * @slice_alpha_c0_offset_div2: see H264 specification. |
| 1458 | + * @slice_beta_offset_div2: see H264 specification. |
| 1459 | + * @num_ref_idx_l0_active_minus1: see H264 specification. |
| 1460 | + * @num_ref_idx_l1_active_minus1: see H264 specification. |
| 1461 | + * @reserved: padding field. Should be zeroed by applications. |
| 1462 | + * @ref_pic_list0: reference picture list 0 after applying the per-slice modifications. |
| 1463 | + * @ref_pic_list1: reference picture list 1 after applying the per-slice modifications. |
| 1464 | + * @flags: see V4L2_H264_SLICE_FLAG_{}. |
| 1465 | + */ |
| 1466 | +struct v4l2_ctrl_h264_slice_params { |
| 1467 | + __u32 header_bit_size; |
| 1468 | + __u32 first_mb_in_slice; |
| 1469 | + __u8 slice_type; |
| 1470 | + __u8 colour_plane_id; |
| 1471 | + __u8 redundant_pic_cnt; |
| 1472 | + __u8 cabac_init_idc; |
| 1473 | + __s8 slice_qp_delta; |
| 1474 | + __s8 slice_qs_delta; |
| 1475 | + __u8 disable_deblocking_filter_idc; |
| 1476 | + __s8 slice_alpha_c0_offset_div2; |
| 1477 | + __s8 slice_beta_offset_div2; |
| 1478 | + __u8 num_ref_idx_l0_active_minus1; |
| 1479 | + __u8 num_ref_idx_l1_active_minus1; |
| 1480 | + |
| 1481 | + __u8 reserved; |
| 1482 | + |
| 1483 | + struct v4l2_h264_reference ref_pic_list0[V4L2_H264_REF_LIST_LEN]; |
| 1484 | + struct v4l2_h264_reference ref_pic_list1[V4L2_H264_REF_LIST_LEN]; |
| 1485 | + |
| 1486 | + __u32 flags; |
| 1487 | +}; |
| 1488 | + |
| 1489 | +#define V4L2_H264_DPB_ENTRY_FLAG_VALID 0x01 |
| 1490 | +#define V4L2_H264_DPB_ENTRY_FLAG_ACTIVE 0x02 |
| 1491 | +#define V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM 0x04 |
| 1492 | +#define V4L2_H264_DPB_ENTRY_FLAG_FIELD 0x08 |
| 1493 | + |
| 1494 | +/** |
| 1495 | + * struct v4l2_h264_dpb_entry - H264 decoded picture buffer entry |
| 1496 | + * |
| 1497 | + * @reference_ts: timestamp of the V4L2 capture buffer to use as reference. |
| 1498 | + * The timestamp refers to the timestamp field in struct v4l2_buffer. |
| 1499 | + * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64. |
| 1500 | + * @pic_num: matches PicNum variable assigned during the reference |
| 1501 | + * picture lists construction process. |
| 1502 | + * @frame_num: frame identifier which matches frame_num syntax element. |
| 1503 | + * @fields: indicates how the DPB entry is referenced. Valid values are |
| 1504 | + * V4L2_H264_{}_REF. |
| 1505 | + * @reserved: padding field. Should be zeroed by applications. |
| 1506 | + * @top_field_order_cnt: matches TopFieldOrderCnt picture value. |
| 1507 | + * @bottom_field_order_cnt: matches BottomFieldOrderCnt picture value. |
| 1508 | + * Note that picture field is indicated by v4l2_buffer.field. |
| 1509 | + * @flags: see V4L2_H264_DPB_ENTRY_FLAG_{}. |
| 1510 | + */ |
| 1511 | +struct v4l2_h264_dpb_entry { |
| 1512 | + __u64 reference_ts; |
| 1513 | + __u32 pic_num; |
| 1514 | + __u16 frame_num; |
| 1515 | + __u8 fields; |
| 1516 | + __u8 reserved[5]; |
| 1517 | + __s32 top_field_order_cnt; |
| 1518 | + __s32 bottom_field_order_cnt; |
| 1519 | + __u32 flags; |
| 1520 | +}; |
| 1521 | + |
| 1522 | +#define V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC 0x01 |
| 1523 | +#define V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC 0x02 |
| 1524 | +#define V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD 0x04 |
| 1525 | + |
| 1526 | +#define V4L2_CID_STATELESS_H264_DECODE_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 7) |
| 1527 | +/** |
| 1528 | + * struct v4l2_ctrl_h264_decode_params - H264 decoding parameters |
| 1529 | + * |
| 1530 | + * @dpb: decoded picture buffer. |
| 1531 | + * @nal_ref_idc: slice header syntax element. |
| 1532 | + * @frame_num: slice header syntax element. |
| 1533 | + * @top_field_order_cnt: matches TopFieldOrderCnt picture value. |
| 1534 | + * @bottom_field_order_cnt: matches BottomFieldOrderCnt picture value. |
| 1535 | + * Note that picture field is indicated by v4l2_buffer.field. |
| 1536 | + * @idr_pic_id: slice header syntax element. |
| 1537 | + * @pic_order_cnt_lsb: slice header syntax element. |
| 1538 | + * @delta_pic_order_cnt_bottom: slice header syntax element. |
| 1539 | + * @delta_pic_order_cnt0: slice header syntax element. |
| 1540 | + * @delta_pic_order_cnt1: slice header syntax element. |
| 1541 | + * @dec_ref_pic_marking_bit_size: size in bits of dec_ref_pic_marking() |
| 1542 | + * syntax element. |
| 1543 | + * @pic_order_cnt_bit_size: size in bits of pic order count syntax. |
| 1544 | + * @slice_group_change_cycle: slice header syntax element. |
| 1545 | + * @reserved: padding field. Should be zeroed by applications. |
| 1546 | + * @flags: see V4L2_H264_DECODE_PARAM_FLAG_{}. |
| 1547 | + */ |
| 1548 | +struct v4l2_ctrl_h264_decode_params { |
| 1549 | + struct v4l2_h264_dpb_entry dpb[V4L2_H264_NUM_DPB_ENTRIES]; |
| 1550 | + __u16 nal_ref_idc; |
| 1551 | + __u16 frame_num; |
| 1552 | + __s32 top_field_order_cnt; |
| 1553 | + __s32 bottom_field_order_cnt; |
| 1554 | + __u16 idr_pic_id; |
| 1555 | + __u16 pic_order_cnt_lsb; |
| 1556 | + __s32 delta_pic_order_cnt_bottom; |
| 1557 | + __s32 delta_pic_order_cnt0; |
| 1558 | + __s32 delta_pic_order_cnt1; |
| 1559 | + __u32 dec_ref_pic_marking_bit_size; |
| 1560 | + __u32 pic_order_cnt_bit_size; |
| 1561 | + __u32 slice_group_change_cycle; |
| 1562 | + |
| 1563 | + __u32 reserved; |
| 1564 | + __u32 flags; |
| 1565 | +}; |
| 1566 | + |
| 1567 | + |
| 1568 | +/* Stateless FWHT control, used by the vicodec driver */ |
| 1569 | + |
| 1570 | +/* Current FWHT version */ |
| 1571 | +#define V4L2_FWHT_VERSION 3 |
| 1572 | + |
| 1573 | +/* Set if this is an interlaced format */ |
| 1574 | +#define V4L2_FWHT_FL_IS_INTERLACED BIT(0) |
| 1575 | +/* Set if this is a bottom-first (NTSC) interlaced format */ |
| 1576 | +#define V4L2_FWHT_FL_IS_BOTTOM_FIRST BIT(1) |
| 1577 | +/* Set if each 'frame' contains just one field */ |
| 1578 | +#define V4L2_FWHT_FL_IS_ALTERNATE BIT(2) |
| 1579 | +/* |
| 1580 | + * If V4L2_FWHT_FL_IS_ALTERNATE was set, then this is set if this |
| 1581 | + * 'frame' is the bottom field, else it is the top field. |
| 1582 | + */ |
| 1583 | +#define V4L2_FWHT_FL_IS_BOTTOM_FIELD BIT(3) |
| 1584 | +/* Set if the Y' plane is uncompressed */ |
| 1585 | +#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED BIT(4) |
| 1586 | +/* Set if the Cb plane is uncompressed */ |
| 1587 | +#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED BIT(5) |
| 1588 | +/* Set if the Cr plane is uncompressed */ |
| 1589 | +#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED BIT(6) |
| 1590 | +/* Set if the chroma plane is full height, if cleared it is half height */ |
| 1591 | +#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT BIT(7) |
| 1592 | +/* Set if the chroma plane is full width, if cleared it is half width */ |
| 1593 | +#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH BIT(8) |
| 1594 | +/* Set if the alpha plane is uncompressed */ |
| 1595 | +#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED BIT(9) |
| 1596 | +/* Set if this is an I Frame */ |
| 1597 | +#define V4L2_FWHT_FL_I_FRAME BIT(10) |
| 1598 | + |
| 1599 | +/* A 4-values flag - the number of components - 1 */ |
| 1600 | +#define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16) |
| 1601 | +#define V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET 16 |
| 1602 | + |
| 1603 | +/* A 4-values flag - the pixel encoding type */ |
| 1604 | +#define V4L2_FWHT_FL_PIXENC_MSK GENMASK(20, 19) |
| 1605 | +#define V4L2_FWHT_FL_PIXENC_OFFSET 19 |
| 1606 | +#define V4L2_FWHT_FL_PIXENC_YUV (1 << V4L2_FWHT_FL_PIXENC_OFFSET) |
| 1607 | +#define V4L2_FWHT_FL_PIXENC_RGB (2 << V4L2_FWHT_FL_PIXENC_OFFSET) |
| 1608 | +#define V4L2_FWHT_FL_PIXENC_HSV (3 << V4L2_FWHT_FL_PIXENC_OFFSET) |
| 1609 | + |
| 1610 | +#define V4L2_CID_STATELESS_FWHT_PARAMS (V4L2_CID_CODEC_STATELESS_BASE + 100) |
| 1611 | +/** |
| 1612 | + * struct v4l2_ctrl_fwht_params - FWHT parameters |
| 1613 | + * |
| 1614 | + * @backward_ref_ts: timestamp of the V4L2 capture buffer to use as reference. |
| 1615 | + * The timestamp refers to the timestamp field in struct v4l2_buffer. |
| 1616 | + * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64. |
| 1617 | + * @version: must be V4L2_FWHT_VERSION. |
| 1618 | + * @width: width of frame. |
| 1619 | + * @height: height of frame. |
| 1620 | + * @flags: FWHT flags (see V4L2_FWHT_FL_*). |
| 1621 | + * @colorspace: the colorspace (enum v4l2_colorspace). |
| 1622 | + * @xfer_func: the transfer function (enum v4l2_xfer_func). |
| 1623 | + * @ycbcr_enc: the Y'CbCr encoding (enum v4l2_ycbcr_encoding). |
| 1624 | + * @quantization: the quantization (enum v4l2_quantization). |
| 1625 | + */ |
| 1626 | +struct v4l2_ctrl_fwht_params { |
| 1627 | + __u64 backward_ref_ts; |
| 1628 | + __u32 version; |
| 1629 | + __u32 width; |
| 1630 | + __u32 height; |
| 1631 | + __u32 flags; |
| 1632 | + __u32 colorspace; |
| 1633 | + __u32 xfer_func; |
| 1634 | + __u32 ycbcr_enc; |
| 1635 | + __u32 quantization; |
| 1636 | +}; |
| 1637 | + |
| 1638 | +/* MPEG-compression definitions kept for backwards compatibility */ |
| 1639 | +#ifndef __KERNEL__ |
| 1640 | +#define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC |
| 1641 | +#define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS |
| 1642 | +#define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE |
| 1643 | +#define V4L2_CID_MPEG_CX2341X_BASE V4L2_CID_CODEC_CX2341X_BASE |
| 1644 | +#define V4L2_CID_MPEG_MFC51_BASE V4L2_CID_CODEC_MFC51_BASE |
| 1645 | +#endif |
| 1646 | + |
| 1174 | 1647 | #endif |