On Sun, Feb 11, 2024 at 06:08:28PM +0100, Anton Khirnov wrote: > Makes it robust against adding fields before it, which will be useful in > following commits. > > Majority of the patch generated by the following Coccinelle script: > > @@ > typedef AVOption; > identifier arr_name; > initializer list il; > initializer list[8] il1; > expression tail; > @@ > AVOption arr_name[] = { il, { il1, > - tail > + .unit = tail > }, ... }; > > with some manual changes, as the script: > * has trouble with options defined inside macros > * sometimes does not handle options under an #else branch > * sometimes swallows whitespace > --- > fftools/ffmpeg_mux_init.c | 2 +- > libavcodec/aacdec_template.c | 16 +- > libavcodec/aacenc.c | 8 +- > libavcodec/ac3dec_float.c | 2 +- > libavcodec/ac3enc.c | 58 +-- > libavcodec/amfenc_av1.c | 154 ++++---- > libavcodec/amfenc_h264.c | 150 +++---- > libavcodec/amfenc_hevc.c | 136 +++---- > libavcodec/apedec.c | 4 +- > libavcodec/audiotoolboxenc.c | 12 +- > libavcodec/avdct.c | 44 +-- > libavcodec/bsf/av1_metadata.c | 4 +- > libavcodec/bsf/dump_extradata.c | 2 +- > libavcodec/bsf/dv_error_marker.c | 38 +- > libavcodec/bsf/filter_units.c | 20 +- > libavcodec/bsf/h264_metadata.c | 4 +- > libavcodec/bsf/h265_metadata.c | 2 +- > libavcodec/bsf/hapqa_extract.c | 6 +- > libavcodec/bsf/prores_metadata.c | 42 +- > libavcodec/bsf/remove_extradata.c | 2 +- > libavcodec/bsf/vp9_metadata.c | 4 +- > libavcodec/cbs_bsf.h | 4 +- > libavcodec/ccaption_dec.c | 8 +- > libavcodec/cfhdenc.c | 28 +- > libavcodec/cuviddec.c | 8 +- > libavcodec/dcadec.c | 6 +- > libavcodec/dnxhdenc.c | 14 +- > libavcodec/dolby_e.c | 8 +- > libavcodec/dxvenc.c | 4 +- > libavcodec/exr.c | 34 +- > libavcodec/exrenc.c | 16 +- > libavcodec/ffv1enc.c | 10 +- > libavcodec/flacenc.c | 36 +- > libavcodec/gif.c | 6 +- > libavcodec/hapenc.c | 14 +- > libavcodec/huffyuvenc.c | 8 +- > libavcodec/j2kenc.c | 24 +- > libavcodec/jpeglsenc.c | 8 +- > libavcodec/libaomenc.c | 28 +- > libavcodec/libaribb24.c | 6 +- > libavcodec/libaribcaption.c | 4 +- > libavcodec/libfdk-aacdec.c | 20 +- > libavcodec/libfdk-aacenc.c | 10 +- > libavcodec/libopenh264enc.c | 28 +- > libavcodec/libopenjpegenc.c | 36 +- > libavcodec/libopusenc.c | 18 +- > libavcodec/libsvtav1.c | 14 +- > libavcodec/libtwolame.c | 12 +- > libavcodec/libvpxenc.c | 60 +-- > libavcodec/libwebpenc_common.c | 16 +- > libavcodec/libx264.c | 70 ++-- > libavcodec/libxavs.c | 22 +- > libavcodec/libxeve.c | 34 +- > libavcodec/libxvid.c | 8 +- > libavcodec/libzvbi-teletextdec.c | 8 +- > libavcodec/ljpegenc.c | 8 +- > libavcodec/magicyuvenc.c | 8 +- > libavcodec/mediacodecenc.c | 226 +++++------ > libavcodec/mfenc.c | 34 +- > libavcodec/mjpegenc.c | 6 +- > libavcodec/mlpenc.c | 12 +- > libavcodec/mpeg12enc.c | 24 +- > libavcodec/mpegvideoenc.h | 54 +-- > libavcodec/nvenc_av1.c | 142 +++---- > libavcodec/nvenc_h264.c | 208 +++++----- > libavcodec/nvenc_hevc.c | 182 ++++----- > libavcodec/omx.c | 8 +- > libavcodec/options.c | 2 +- > libavcodec/options_table.h | 526 ++++++++++++------------- > libavcodec/opusenc.c | 4 +- > libavcodec/pngenc.c | 14 +- > libavcodec/profiles.h | 2 +- > libavcodec/proresenc_kostya.c | 30 +- > libavcodec/qsvdec.c | 24 +- > libavcodec/qsvenc.h | 54 +-- > libavcodec/qsvenc_av1.c | 6 +- > libavcodec/qsvenc_h264.c | 38 +- > libavcodec/qsvenc_hevc.c | 42 +- > libavcodec/qsvenc_mpeg2.c | 10 +- > libavcodec/qsvenc_vp9.c | 12 +- > libavcodec/s302m.c | 10 +- > libavcodec/snowenc.c | 16 +- > libavcodec/svq1enc.c | 8 +- > libavcodec/tiffenc.c | 10 +- > libavcodec/utvideoenc.c | 10 +- > libavcodec/vaapi_encode.h | 6 +- > libavcodec/vaapi_encode_av1.c | 14 +- > libavcodec/vaapi_encode_h264.c | 28 +- > libavcodec/vaapi_encode_h265.c | 20 +- > libavcodec/vaapi_encode_mpeg2.c | 8 +- > libavcodec/vbnenc.c | 8 +- > libavcodec/vc2enc.c | 26 +- > libavcodec/videotoolboxenc.c | 68 ++-- > libavdevice/bktr.c | 14 +- > libavdevice/caca.c | 10 +- > libavdevice/decklink_dec_c.c | 104 ++--- > libavdevice/decklink_enc_c.c | 48 +-- > libavdevice/iec61883.c | 8 +- > libavdevice/libcdio.c | 12 +- > libavdevice/openal-dec.c | 6 +- > libavdevice/v4l2.c | 22 +- > libavdevice/xcbgrab.c | 4 +- > libavfilter/af_aap.c | 20 +- > libavfilter/af_acrossover.c | 30 +- > libavfilter/af_acrusher.c | 6 +- > libavfilter/af_adeclick.c | 24 +- > libavfilter/af_adenorm.c | 10 +- > libavfilter/af_adynamicequalizer.c | 48 +-- > libavfilter/af_aemphasis.c | 26 +- > libavfilter/af_afade.c | 116 +++--- > libavfilter/af_afftdn.c | 62 +-- > libavfilter/af_afir.c | 34 +- > libavfilter/af_afwtdn.c | 16 +- > libavfilter/af_agate.c | 18 +- > libavfilter/af_aiir.c | 40 +- > libavfilter/af_amix.c | 8 +- > libavfilter/af_anequalizer.c | 6 +- > libavfilter/af_anlmdn.c | 10 +- > libavfilter/af_anlms.c | 20 +- > libavfilter/af_aphaser.c | 10 +- > libavfilter/af_apulsator.c | 20 +- > libavfilter/af_arls.c | 20 +- > libavfilter/af_asoftclip.c | 20 +- > libavfilter/af_aspectralstats.c | 32 +- > libavfilter/af_astats.c | 60 +-- > libavfilter/af_axcorrelate.c | 8 +- > libavfilter/af_biquads.c | 46 +-- > libavfilter/af_bs2b.c | 8 +- > libavfilter/af_deesser.c | 8 +- > libavfilter/af_firequalizer.c | 34 +- > libavfilter/af_flanger.c | 16 +- > libavfilter/af_haas.c | 10 +- > libavfilter/af_hdcd.c | 20 +- > libavfilter/af_headphone.c | 12 +- > libavfilter/af_loudnorm.c | 8 +- > libavfilter/af_rubberband.c | 56 +-- > libavfilter/af_sidechaincompress.c | 18 +- > libavfilter/af_silenceremove.c | 28 +- > libavfilter/af_sofalizer.c | 6 +- > libavfilter/af_stereotools.c | 34 +- > libavfilter/af_surround.c | 6 +- > libavfilter/af_volume.c | 20 +- > libavfilter/asrc_afirsrc.c | 58 +-- > libavfilter/asrc_anoisesrc.c | 18 +- > libavfilter/avf_abitscope.c | 8 +- > libavfilter/avf_ahistogram.c | 36 +- > libavfilter/avf_avectorscope.c | 38 +- > libavfilter/avf_showcqt.c | 16 +- > libavfilter/avf_showcwt.c | 62 +-- > libavfilter/avf_showfreqs.c | 40 +- > libavfilter/avf_showspectrum.c | 148 +++---- > libavfilter/avf_showvolume.c | 18 +- > libavfilter/avf_showwaves.c | 2 +- > libavfilter/avfilter.c | 2 +- > libavfilter/avfiltergraph.c | 4 +- > libavfilter/buffersrc.c | 48 +-- > libavfilter/dnn/dnn_backend_openvino.c | 8 +- > libavfilter/f_bench.c | 6 +- > libavfilter/f_drawgraph.c | 20 +- > libavfilter/f_ebur128.c | 36 +- > libavfilter/f_graphmonitor.c | 56 +-- > libavfilter/f_interleave.c | 8 +- > libavfilter/f_metadata.c | 28 +- > libavfilter/f_perms.c | 12 +- > libavfilter/f_sidedata.c | 50 +-- > libavfilter/framesync.c | 14 +- > libavfilter/qrencode.c | 18 +- > libavfilter/vaf_spectrumsynth.c | 22 +- > libavfilter/vf_atadenoise.c | 6 +- > libavfilter/vf_blend.c | 94 ++--- > libavfilter/vf_blend_vulkan.c | 14 +- > libavfilter/vf_bm3d.c | 6 +- > libavfilter/vf_bwdif.c | 8 +- > libavfilter/vf_chromanr.c | 6 +- > libavfilter/vf_chromashift.c | 12 +- > libavfilter/vf_ciescope.c | 68 ++-- > libavfilter/vf_codecview.c | 12 +- > libavfilter/vf_colorchannelmixer.c | 16 +- > libavfilter/vf_colorcorrect.c | 10 +- > libavfilter/vf_colorlevels.c | 16 +- > libavfilter/vf_colormap.c | 12 +- > libavfilter/vf_colorspace.c | 28 +- > libavfilter/vf_colorspace_cuda.c | 10 +- > libavfilter/vf_convolution.c | 14 +- > libavfilter/vf_convolve.c | 18 +- > libavfilter/vf_cover_rect.c | 6 +- > libavfilter/vf_cropdetect.c | 6 +- > libavfilter/vf_curves.c | 30 +- > libavfilter/vf_datascope.c | 14 +- > libavfilter/vf_deblock.c | 6 +- > libavfilter/vf_dedot.c | 6 +- > libavfilter/vf_deflicker.c | 18 +- > libavfilter/vf_deinterlace_vaapi.c | 18 +- > libavfilter/vf_derain.c | 10 +- > libavfilter/vf_deshake.c | 16 +- > libavfilter/vf_despill.c | 6 +- > libavfilter/vf_detelecine.c | 10 +- > libavfilter/vf_displace.c | 10 +- > libavfilter/vf_dnn_classify.c | 4 +- > libavfilter/vf_dnn_detect.c | 16 +- > libavfilter/vf_dnn_processing.c | 6 +- > libavfilter/vf_drawtext.c | 20 +- > libavfilter/vf_edgedetect.c | 22 +- > libavfilter/vf_entropy.c | 6 +- > libavfilter/vf_eq.c | 2 +- > libavfilter/vf_estdif.c | 10 +- > libavfilter/vf_extractplanes.c | 16 +- > libavfilter/vf_fade.c | 4 +- > libavfilter/vf_fftdnoiz.c | 6 +- > libavfilter/vf_fftfilt.c | 2 +- > libavfilter/vf_field.c | 6 +- > libavfilter/vf_fieldhint.c | 8 +- > libavfilter/vf_fieldmatch.c | 46 +-- > libavfilter/vf_fieldorder.c | 2 +- > libavfilter/vf_fillborders.c | 16 +- > libavfilter/vf_fps.c | 18 +- > libavfilter/vf_framerate.c | 6 +- > libavfilter/vf_geq.c | 12 +- > libavfilter/vf_guided.c | 12 +- > libavfilter/vf_histeq.c | 4 +- > libavfilter/vf_histogram.c | 54 +-- > libavfilter/vf_huesaturation.c | 16 +- > libavfilter/vf_hwmap.c | 10 +- > libavfilter/vf_iccgen.c | 58 +-- > libavfilter/vf_il.c | 42 +- > libavfilter/vf_lenscorrection.c | 6 +- > libavfilter/vf_lensfun.c | 42 +- > libavfilter/vf_libplacebo.c | 202 +++++----- > libavfilter/vf_lut3d.c | 30 +- > libavfilter/vf_maskedthreshold.c | 6 +- > libavfilter/vf_mcdeint.c | 4 +- > libavfilter/vf_mestimate.c | 4 +- > libavfilter/vf_minterpolate.c | 12 +- > libavfilter/vf_mix.c | 8 +- > libavfilter/vf_morpho.c | 22 +- > libavfilter/vf_negate.c | 16 +- > libavfilter/vf_nnedi.c | 76 ++-- > libavfilter/vf_noise.c | 12 +- > libavfilter/vf_overlay.c | 14 +- > libavfilter/vf_overlay_cuda.c | 10 +- > libavfilter/vf_overlay_qsv.c | 8 +- > libavfilter/vf_overlay_vaapi.c | 8 +- > libavfilter/vf_pad.c | 2 +- > libavfilter/vf_palettegen.c | 8 +- > libavfilter/vf_paletteuse.c | 22 +- > libavfilter/vf_perspective.c | 14 +- > libavfilter/vf_phase.c | 4 +- > libavfilter/vf_pixelize.c | 10 +- > libavfilter/vf_pp7.c | 8 +- > libavfilter/vf_pseudocolor.c | 48 +-- > libavfilter/vf_pullup.c | 8 +- > libavfilter/vf_remap.c | 2 +- > libavfilter/vf_remap_opencl.c | 6 +- > libavfilter/vf_scale.c | 54 +-- > libavfilter/vf_scale_cuda.c | 18 +- > libavfilter/vf_scale_npp.c | 32 +- > libavfilter/vf_scale_vaapi.c | 32 +- > libavfilter/vf_scale_vulkan.c | 20 +- > libavfilter/vf_selectivecolor.c | 6 +- > libavfilter/vf_setparams.c | 160 ++++---- > libavfilter/vf_sharpen_npp.c | 4 +- > libavfilter/vf_shear.c | 6 +- > libavfilter/vf_shufflepixels.c | 18 +- > libavfilter/vf_signalstats.c | 16 +- > libavfilter/vf_signature.c | 14 +- > libavfilter/vf_spp.c | 6 +- > libavfilter/vf_sr.c | 4 +- > libavfilter/vf_ssim360.c | 26 +- > libavfilter/vf_stereo3d.c | 114 +++--- > libavfilter/vf_subtitles.c | 8 +- > libavfilter/vf_telecine.c | 10 +- > libavfilter/vf_thumbnail.c | 8 +- > libavfilter/vf_tinterlace.c | 42 +- > libavfilter/vf_tonemap.c | 16 +- > libavfilter/vf_tonemap_opencl.c | 54 +-- > libavfilter/vf_tonemap_vaapi.c | 14 +- > libavfilter/vf_tpad.c | 8 +- > libavfilter/vf_transpose.c | 10 +- > libavfilter/vf_transpose_npp.c | 18 +- > libavfilter/vf_transpose_opencl.c | 10 +- > libavfilter/vf_transpose_vaapi.c | 10 +- > libavfilter/vf_transpose_vt.c | 10 +- > libavfilter/vf_transpose_vulkan.c | 10 +- > libavfilter/vf_v360.c | 224 +++++------ > libavfilter/vf_vaguedenoiser.c | 14 +- > libavfilter/vf_vectorscope.c | 62 +-- > libavfilter/vf_vidstabdetect.c | 6 +- > libavfilter/vf_vidstabtransform.c | 24 +- > libavfilter/vf_vignette.c | 12 +- > libavfilter/vf_vpp_qsv.c | 64 +-- > libavfilter/vf_w3fdif.c | 10 +- > libavfilter/vf_waveform.c | 94 ++--- > libavfilter/vf_weave.c | 10 +- > libavfilter/vf_xfade.c | 120 +++--- > libavfilter/vf_xfade_opencl.c | 22 +- > libavfilter/vf_xfade_vulkan.c | 36 +- > libavfilter/vf_yadif_videotoolbox.m | 6 +- > libavfilter/vf_zscale.c | 220 +++++------ > libavfilter/vsrc_ddagrab.c | 16 +- > libavfilter/vsrc_gradients.c | 14 +- > libavfilter/vsrc_mandelbrot.c | 20 +- > libavfilter/vsrc_mptestsrc.c | 26 +- > libavfilter/vsrc_sierpinski.c | 6 +- > libavfilter/vsrc_testsrc.c | 14 +- > libavfilter/vsrc_testsrc_vulkan.c | 14 +- > libavfilter/window_func.h | 46 +-- > libavfilter/yadif_common.c | 8 +- > libavformat/avisynth.c | 16 +- > libavformat/chromaprint.c | 8 +- > libavformat/dashenc.c | 24 +- > libavformat/flvenc.c | 12 +- > libavformat/hlsenc.c | 54 +-- > libavformat/http.c | 6 +- > libavformat/img2dec.c | 18 +- > libavformat/libamqp.c | 6 +- > libavformat/libopenmpt.c | 6 +- > libavformat/librist.c | 8 +- > libavformat/librtmp.c | 8 +- > libavformat/libsrt.c | 22 +- > libavformat/matroskaenc.c | 8 +- > libavformat/mov.c | 8 +- > libavformat/movenc.c | 58 +-- > libavformat/mpegtsenc.c | 34 +- > libavformat/mxfenc.c | 16 +- > libavformat/nutenc.c | 8 +- > libavformat/options_table.h | 80 ++-- > libavformat/rtmpproto.c | 14 +- > libavformat/rtpenc.h | 12 +- > libavformat/rtsp.c | 36 +- > libavformat/segment.c | 20 +- > libavformat/spdifenc.c | 4 +- > libavformat/unix.c | 8 +- > libavformat/wavenc.c | 16 +- > libavformat/webvttdec.c | 10 +- > libavutil/iamf.c | 26 +- > libavutil/tests/opt.c | 8 +- > libswresample/options.c | 70 ++-- > libswscale/options.c | 60 +-- > 338 files changed, 4659 insertions(+), 4659 deletions(-) some of these have formatting issues: (havent really reviewd just saw when applying locally) +++ b/libavcodec/vbnenc.c @@ -134,10 +134,10 @@ static av_cold int vbn_init(AVCodecContext *avctx) #define OFFSET(x) offsetof(VBNContext, x) #define FLAGS AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM static const AVOption options[] = { - { "format", "Texture format", OFFSET(format), AV_OPT_TYPE_INT, { .i64 = VBN_FORMAT_DXT5 }, VBN_FORMAT_RAW, VBN_FORMAT_DXT5, FLAGS, "format" }, - { "raw", "RAW texture", 0, AV_OPT_TYPE_CONST, { .i64 = VBN_FORMAT_RAW }, 0, 0, FLAGS, "format" }, - { "dxt1", "DXT1 texture", 0, AV_OPT_TYPE_CONST, { .i64 = VBN_FORMAT_DXT1 }, 0, 0, FLAGS, "format" }, - { "dxt5", "DXT5 texture", 0, AV_OPT_TYPE_CONST, { .i64 = VBN_FORMAT_DXT5 }, 0, 0, FLAGS, "format" }, + { "format", "Texture format", OFFSET(format), AV_OPT_TYPE_INT, { .i64 = VBN_FORMAT_DXT5 }, VBN_FORMAT_RAW, VBN_FORMAT_DXT5, FLAGS, .unit = "format" }, + { "raw", "RAW texture", 0, AV_OPT_TYPE_CONST, { .i64 = VBN_FORMAT_RAW }, 0, 0, FLAGS, .unit = "format" }, + { "dxt1", "DXT1 texture", 0, AV_OPT_TYPE_CONST, { .i64 = VBN_FORMAT_DXT1 }, 0, 0, FLAGS, .unit = "format" }, + { "dxt5", "DXT5 texture", 0, AV_OPT_TYPE_CONST, { .i64 = VBN_FORMAT_DXT5 }, 0, 0, FLAGS, .unit = "format" }, { NULL }, }; diff --git a/libavcodec/vc2enc.c b/libavcodec/vc2enc.c index d978c67a3b0..1f4a49ebb23 100644 --- a/libavcodec/vc2enc.c +++ b/libavcodec/vc2enc.c @@ -1187,19 +1187,19 @@ static av_cold int vc2_encode_init(AVCodecContext *avctx) #define VC2ENC_FLAGS (AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM) static const AVOption vc2enc_options[] = { - {"tolerance", "Max undershoot in percent", offsetof(VC2EncContext, tolerance), AV_OPT_TYPE_DOUBLE, {.dbl = 5.0f}, 0.0f, 45.0f, VC2ENC_FLAGS, "tolerance"}, - {"slice_width", "Slice width", offsetof(VC2EncContext, slice_width), AV_OPT_TYPE_INT, {.i64 = 32}, 32, 1024, VC2ENC_FLAGS, "slice_width"}, - {"slice_height", "Slice height", offsetof(VC2EncContext, slice_height), AV_OPT_TYPE_INT, {.i64 = 16}, 8, 1024, VC2ENC_FLAGS, "slice_height"}, - {"wavelet_depth", "Transform depth", offsetof(VC2EncContext, wavelet_depth), AV_OPT_TYPE_INT, {.i64 = 4}, 1, 5, VC2ENC_FLAGS, "wavelet_depth"}, - {"wavelet_type", "Transform type", offsetof(VC2EncContext, wavelet_idx), AV_OPT_TYPE_INT, {.i64 = VC2_TRANSFORM_9_7}, 0, VC2_TRANSFORMS_NB, VC2ENC_FLAGS, "wavelet_idx"}, - {"9_7", "Deslauriers-Dubuc (9,7)", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_TRANSFORM_9_7}, INT_MIN, INT_MAX, VC2ENC_FLAGS, "wavelet_idx"}, - {"5_3", "LeGall (5,3)", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_TRANSFORM_5_3}, INT_MIN, INT_MAX, VC2ENC_FLAGS, "wavelet_idx"}, - {"haar", "Haar (with shift)", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_TRANSFORM_HAAR_S}, INT_MIN, INT_MAX, VC2ENC_FLAGS, "wavelet_idx"}, - {"haar_noshift", "Haar (without shift)", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_TRANSFORM_HAAR}, INT_MIN, INT_MAX, VC2ENC_FLAGS, "wavelet_idx"}, - {"qm", "Custom quantization matrix", offsetof(VC2EncContext, quant_matrix), AV_OPT_TYPE_INT, {.i64 = VC2_QM_DEF}, 0, VC2_QM_NB, VC2ENC_FLAGS, "quant_matrix"}, - {"default", "Default from the specifications", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_QM_DEF}, INT_MIN, INT_MAX, VC2ENC_FLAGS, "quant_matrix"}, - {"color", "Prevents low bitrate discoloration", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_QM_COL}, INT_MIN, INT_MAX, VC2ENC_FLAGS, "quant_matrix"}, - {"flat", "Optimize for PSNR", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_QM_FLAT}, INT_MIN, INT_MAX, VC2ENC_FLAGS, "quant_matrix"}, + {"tolerance", "Max undershoot in percent", offsetof(VC2EncContext, tolerance), AV_OPT_TYPE_DOUBLE, {.dbl = 5.0f}, 0.0f, 45.0f, VC2ENC_FLAGS, .unit = "tolerance"}, + {"slice_width", "Slice width", offsetof(VC2EncContext, slice_width), AV_OPT_TYPE_INT, {.i64 = 32}, 32, 1024, VC2ENC_FLAGS, .unit = "slice_width"}, + {"slice_height", "Slice height", offsetof(VC2EncContext, slice_height), AV_OPT_TYPE_INT, {.i64 = 16}, 8, 1024, VC2ENC_FLAGS, .unit = "slice_height"}, + {"wavelet_depth", "Transform depth", offsetof(VC2EncContext, wavelet_depth), AV_OPT_TYPE_INT, {.i64 = 4}, 1, 5, VC2ENC_FLAGS, .unit = "wavelet_depth"}, + {"wavelet_type", "Transform type", offsetof(VC2EncContext, wavelet_idx), AV_OPT_TYPE_INT, {.i64 = VC2_TRANSFORM_9_7}, 0, VC2_TRANSFORMS_NB, VC2ENC_FLAGS, .unit = "wavelet_idx"}, + {"9_7", "Deslauriers-Dubuc (9,7)", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_TRANSFORM_9_7}, INT_MIN, INT_MAX, VC2ENC_FLAGS, .unit = "wavelet_idx"}, + {"5_3", "LeGall (5,3)", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_TRANSFORM_5_3}, INT_MIN, INT_MAX, VC2ENC_FLAGS, .unit = "wavelet_idx"}, + {"haar", "Haar (with shift)", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_TRANSFORM_HAAR_S}, INT_MIN, INT_MAX, VC2ENC_FLAGS, .unit = "wavelet_idx"}, + {"haar_noshift", "Haar (without shift)", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_TRANSFORM_HAAR}, INT_MIN, INT_MAX, VC2ENC_FLAGS, .unit = "wavelet_idx"}, + {"qm", "Custom quantization matrix", offsetof(VC2EncContext, quant_matrix), AV_OPT_TYPE_INT, {.i64 = VC2_QM_DEF}, 0, VC2_QM_NB, VC2ENC_FLAGS, .unit = "quant_matrix"}, + {"default", "Default from the specifications", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_QM_DEF}, INT_MIN, INT_MAX, VC2ENC_FLAGS, .unit = "quant_matrix"}, + {"color", "Prevents low bitrate discoloration", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_QM_COL}, INT_MIN, INT_MAX, VC2ENC_FLAGS, .unit = "quant_matrix"}, + {"flat", "Optimize for PSNR", 0, AV_OPT_TYPE_CONST, {.i64 = VC2_QM_FLAT}, INT_MIN, INT_MAX, VC2ENC_FLAGS, .unit = "quant_matrix"}, {NULL} [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The day soldiers stop bringing you their problems is the day you have stopped leading them. They have either lost confidence that you can help or concluded you do not care. Either case is a failure of leadership. - Colin Powell