[FFmpeg-devel] [PATCH 2/2] avfilter/avfilter: Add FFFilter, hide internals of AVFilter
Michael Niedermayer
michael at niedermayer.cc
Sun Jan 12 02:02:07 EET 2025
On Thu, Jan 09, 2025 at 03:47:39AM +0100, Andreas Rheinhardt wrote:
> Patch attached
> configure | 6
> libavfilter/aeval.c | 19
> libavfilter/af_aap.c | 12
> libavfilter/af_acontrast.c | 8
> libavfilter/af_acopy.c | 8
> libavfilter/af_acrossover.c | 14
> libavfilter/af_acrusher.c | 10
> libavfilter/af_adeclick.c | 20
> libavfilter/af_adecorrelate.c | 12
> libavfilter/af_adelay.c | 10
> libavfilter/af_adenorm.c | 12
> libavfilter/af_aderivative.c | 20
> libavfilter/af_adrc.c | 12
> libavfilter/af_adynamicequalizer.c | 12
> libavfilter/af_adynamicsmooth.c | 10
> libavfilter/af_aecho.c | 8
> libavfilter/af_aemphasis.c | 12
> libavfilter/af_aexciter.c | 10
> libavfilter/af_afade.c | 18
> libavfilter/af_afftdn.c | 12
> libavfilter/af_afftfilt.c | 12
> libavfilter/af_afir.c | 14
> libavfilter/af_aformat.c | 10
> libavfilter/af_afreqshift.c | 24
> libavfilter/af_afwtdn.c | 12
> libavfilter/af_agate.c | 20
> libavfilter/af_aiir.c | 12
> libavfilter/af_alimiter.c | 10
> libavfilter/af_amerge.c | 12
> libavfilter/af_amix.c | 12
> libavfilter/af_amultiply.c | 6
> libavfilter/af_anequalizer.c | 16
> libavfilter/af_anlmdn.c | 12
> libavfilter/af_anlms.c | 24
> libavfilter/af_anull.c | 8
> libavfilter/af_apad.c | 10
> libavfilter/af_aphaser.c | 8
> libavfilter/af_apsyclip.c | 12
> libavfilter/af_apulsator.c | 8
> libavfilter/af_aresample.c | 8
> libavfilter/af_arls.c | 12
> libavfilter/af_arnndn.c | 12
> libavfilter/af_asdr.c | 36 -
> libavfilter/af_asetnsamples.c | 10
> libavfilter/af_asetrate.c | 10
> libavfilter/af_ashowinfo.c | 8
> libavfilter/af_asoftclip.c | 12
> libavfilter/af_aspectralstats.c | 10
> libavfilter/af_asr.c | 10
> libavfilter/af_astats.c | 10
> libavfilter/af_asubboost.c | 12
> libavfilter/af_asupercut.c | 48 -
> libavfilter/af_atempo.c | 8
> libavfilter/af_atilt.c | 12
> libavfilter/af_axcorrelate.c | 8
> libavfilter/af_biquads.c | 11
> libavfilter/af_bs2b.c | 8
> libavfilter/af_channelmap.c | 8
> libavfilter/af_channelsplit.c | 11
> libavfilter/af_chorus.c | 8
> libavfilter/af_compand.c | 8
> libavfilter/af_compensationdelay.c | 10
> libavfilter/af_crossfeed.c | 10
> libavfilter/af_crystalizer.c | 12
> libavfilter/af_dcshift.c | 10
> libavfilter/af_deesser.c | 10
> libavfilter/af_dialoguenhance.c | 10
> libavfilter/af_drmeter.c | 10
> libavfilter/af_dynaudnorm.c | 12
> libavfilter/af_earwax.c | 6
> libavfilter/af_extrastereo.c | 10
> libavfilter/af_firequalizer.c | 8
> libavfilter/af_flanger.c | 8
> libavfilter/af_haas.c | 8
> libavfilter/af_hdcd.c | 8
> libavfilter/af_headphone.c | 11
> libavfilter/af_join.c | 11
> libavfilter/af_ladspa.c | 11
> libavfilter/af_loudnorm.c | 8
> libavfilter/af_lv2.c | 11
> libavfilter/af_mcompand.c | 8
> libavfilter/af_pan.c | 8
> libavfilter/af_replaygain.c | 10
> libavfilter/af_rubberband.c | 8
> libavfilter/af_sidechaincompress.c | 16
> libavfilter/af_silencedetect.c | 10
> libavfilter/af_silenceremove.c | 10
> libavfilter/af_sofalizer.c | 10
> libavfilter/af_speechnorm.c | 10
> libavfilter/af_stereotools.c | 10
> libavfilter/af_stereowiden.c | 10
> libavfilter/af_superequalizer.c | 8
> libavfilter/af_surround.c | 10
> libavfilter/af_tremolo.c | 10
> libavfilter/af_vibrato.c | 10
> libavfilter/af_virtualbass.c | 10
> libavfilter/af_volume.c | 10
> libavfilter/af_volumedetect.c | 8
> libavfilter/allfilters.c | 1171 ++++++++++++++++++------------------
> libavfilter/asink_anullsink.c | 8
> libavfilter/asrc_afdelaysrc.c | 9
> libavfilter/asrc_afirsrc.c | 18
> libavfilter/asrc_anoisesrc.c | 9
> libavfilter/asrc_anullsrc.c | 9
> libavfilter/asrc_flite.c | 9
> libavfilter/asrc_hilbert.c | 9
> libavfilter/asrc_sinc.c | 9
> libavfilter/asrc_sine.c | 9
> libavfilter/avf_a3dscope.c | 8
> libavfilter/avf_abitscope.c | 8
> libavfilter/avf_ahistogram.c | 8
> libavfilter/avf_aphasemeter.c | 11
> libavfilter/avf_avectorscope.c | 10
> libavfilter/avf_concat.c | 14
> libavfilter/avf_showcqt.c | 8
> libavfilter/avf_showcwt.c | 10
> libavfilter/avf_showfreqs.c | 8
> libavfilter/avf_showspatial.c | 10
> libavfilter/avf_showspectrum.c | 20
> libavfilter/avf_showvolume.c | 8
> libavfilter/avf_showwaves.c | 16
> libavfilter/avfilter.c | 41 -
> libavfilter/avfilter.h | 204 ------
> libavfilter/avfiltergraph.c | 17
> libavfilter/buffersink.c | 30
> libavfilter/buffersrc.c | 18
> libavfilter/f_bench.c | 20
> libavfilter/f_cue.c | 18
> libavfilter/f_drawgraph.c | 16
> libavfilter/f_ebur128.c | 12
> libavfilter/f_graphmonitor.c | 16
> libavfilter/f_interleave.c | 20
> libavfilter/f_latency.c | 18
> libavfilter/f_loop.c | 16
> libavfilter/f_metadata.c | 24
> libavfilter/f_perms.c | 24
> libavfilter/f_realtime.c | 20
> libavfilter/f_reverse.c | 12
> libavfilter/f_segment.c | 22
> libavfilter/f_select.c | 20
> libavfilter/f_sendcmd.c | 20
> libavfilter/f_sidedata.c | 24
> libavfilter/f_streamselect.c | 20
> libavfilter/f_zmq.c | 16
> libavfilter/filters.h | 207 ++++++
> libavfilter/formats.c | 2
> libavfilter/qrencode.c | 20
> libavfilter/setpts.c | 22
> libavfilter/settb.c | 20
> libavfilter/split.c | 22
> libavfilter/src_avsynctest.c | 9
> libavfilter/src_movie.c | 24
> libavfilter/stack_internal.c | 10
> libavfilter/tests/filtfmts.c | 10
> libavfilter/trim.c | 20
> libavfilter/vaf_spectrumsynth.c | 8
> libavfilter/vf_addroi.c | 12
> libavfilter/vf_alphamerge.c | 10
> libavfilter/vf_amplify.c | 10
> libavfilter/vf_aspect.c | 20
> libavfilter/vf_atadenoise.c | 10
> libavfilter/vf_avgblur.c | 10
> libavfilter/vf_avgblur_opencl.c | 18
> libavfilter/vf_avgblur_vulkan.c | 10
> libavfilter/vf_backgroundkey.c | 10
> libavfilter/vf_bbox.c | 10
> libavfilter/vf_bilateral.c | 12
> libavfilter/vf_bilateral_cuda.c | 9
> libavfilter/vf_bitplanenoise.c | 10
> libavfilter/vf_blackdetect.c | 10
> libavfilter/vf_blackframe.c | 10
> libavfilter/vf_blend.c | 20
> libavfilter/vf_blend_vulkan.c | 10
> libavfilter/vf_blockdetect.c | 10
> libavfilter/vf_blurdetect.c | 10
> libavfilter/vf_bm3d.c | 16
> libavfilter/vf_boxblur.c | 10
> libavfilter/vf_bwdif.c | 10
> libavfilter/vf_bwdif_cuda.c | 10
> libavfilter/vf_bwdif_vulkan.c | 12
> libavfilter/vf_cas.c | 10
> libavfilter/vf_ccrepack.c | 8
> libavfilter/vf_chromaber_vulkan.c | 10
> libavfilter/vf_chromakey.c | 20
> libavfilter/vf_chromakey_cuda.c | 9
> libavfilter/vf_chromanr.c | 10
> libavfilter/vf_chromashift.c | 20
> libavfilter/vf_ciescope.c | 8
> libavfilter/vf_codecview.c | 10
> libavfilter/vf_colorbalance.c | 10
> libavfilter/vf_colorchannelmixer.c | 10
> libavfilter/vf_colorconstancy.c | 10
> libavfilter/vf_colorcontrast.c | 10
> libavfilter/vf_colorcorrect.c | 10
> libavfilter/vf_colorize.c | 10
> libavfilter/vf_colorkey.c | 20
> libavfilter/vf_colorkey_opencl.c | 10
> libavfilter/vf_colorlevels.c | 10
> libavfilter/vf_colormap.c | 12
> libavfilter/vf_colormatrix.c | 10
> libavfilter/vf_colorspace.c | 10
> libavfilter/vf_colorspace_cuda.c | 9
> libavfilter/vf_colortemperature.c | 10
> libavfilter/vf_convolution.c | 60 -
> libavfilter/vf_convolution_opencl.c | 40 -
> libavfilter/vf_convolve.c | 30
> libavfilter/vf_copy.c | 8
> libavfilter/vf_coreimage.m | 18
> libavfilter/vf_corr.c | 14
> libavfilter/vf_cover_rect.c | 8
> libavfilter/vf_crop.c | 8
> libavfilter/vf_cropdetect.c | 10
> libavfilter/vf_curves.c | 10
> libavfilter/vf_datascope.c | 30
> libavfilter/vf_dblur.c | 10
> libavfilter/vf_dctdnoiz.c | 10
> libavfilter/vf_deband.c | 10
> libavfilter/vf_deblock.c | 10
> libavfilter/vf_decimate.c | 10
> libavfilter/vf_dedot.c | 10
> libavfilter/vf_deflicker.c | 8
> libavfilter/vf_deinterlace_vaapi.c | 8
> libavfilter/vf_dejudder.c | 8
> libavfilter/vf_delogo.c | 10
> libavfilter/vf_derain.c | 10
> libavfilter/vf_deshake.c | 8
> libavfilter/vf_deshake_opencl.c | 10
> libavfilter/vf_despill.c | 10
> libavfilter/vf_detelecine.c | 8
> libavfilter/vf_displace.c | 12
> libavfilter/vf_dnn_classify.c | 8
> libavfilter/vf_dnn_detect.c | 8
> libavfilter/vf_dnn_processing.c | 8
> libavfilter/vf_drawbox.c | 20
> libavfilter/vf_drawbox_vaapi.c | 8
> libavfilter/vf_drawtext.c | 10
> libavfilter/vf_edgedetect.c | 10
> libavfilter/vf_elbg.c | 8
> libavfilter/vf_entropy.c | 10
> libavfilter/vf_epx.c | 10
> libavfilter/vf_eq.c | 10
> libavfilter/vf_estdif.c | 10
> libavfilter/vf_exposure.c | 10
> libavfilter/vf_extractplanes.c | 18
> libavfilter/vf_fade.c | 12
> libavfilter/vf_feedback.c | 10
> libavfilter/vf_fftdnoiz.c | 12
> libavfilter/vf_fftfilt.c | 10
> libavfilter/vf_field.c | 8
> libavfilter/vf_fieldhint.c | 8
> libavfilter/vf_fieldmatch.c | 11
> libavfilter/vf_fieldorder.c | 10
> libavfilter/vf_fillborders.c | 10
> libavfilter/vf_find_rect.c | 10
> libavfilter/vf_flip_vulkan.c | 26
> libavfilter/vf_floodfill.c | 10
> libavfilter/vf_format.c | 24
> libavfilter/vf_fps.c | 10
> libavfilter/vf_framepack.c | 8
> libavfilter/vf_framerate.c | 10
> libavfilter/vf_framestep.c | 10
> libavfilter/vf_freezedetect.c | 10
> libavfilter/vf_freezeframes.c | 8
> libavfilter/vf_frei0r.c | 20
> libavfilter/vf_fspp.c | 10
> libavfilter/vf_fsync.c | 10
> libavfilter/vf_gblur.c | 10
> libavfilter/vf_gblur_vulkan.c | 10
> libavfilter/vf_geq.c | 10
> libavfilter/vf_gradfun.c | 10
> libavfilter/vf_grayworld.c | 8
> libavfilter/vf_guided.c | 14
> libavfilter/vf_hflip.c | 8
> libavfilter/vf_histeq.c | 10
> libavfilter/vf_histogram.c | 16
> libavfilter/vf_hqdn3d.c | 10
> libavfilter/vf_hqx.c | 10
> libavfilter/vf_hsvkey.c | 20
> libavfilter/vf_hue.c | 10
> libavfilter/vf_huesaturation.c | 10
> libavfilter/vf_hwdownload.c | 8
> libavfilter/vf_hwmap.c | 10
> libavfilter/vf_hwupload.c | 10
> libavfilter/vf_hwupload_cuda.c | 9
> libavfilter/vf_hysteresis.c | 10
> libavfilter/vf_iccdetect.c | 10
> libavfilter/vf_iccgen.c | 10
> libavfilter/vf_identity.c | 28
> libavfilter/vf_idet.c | 10
> libavfilter/vf_il.c | 10
> libavfilter/vf_kerndeint.c | 8
> libavfilter/vf_lagfun.c | 10
> libavfilter/vf_lcevc.c | 6
> libavfilter/vf_lenscorrection.c | 10
> libavfilter/vf_lensfun.c | 10
> libavfilter/vf_libopencv.c | 8
> libavfilter/vf_libplacebo.c | 10
> libavfilter/vf_libvmaf.c | 16
> libavfilter/vf_limitdiff.c | 14
> libavfilter/vf_limiter.c | 11
> libavfilter/vf_lumakey.c | 11
> libavfilter/vf_lut.c | 12
> libavfilter/vf_lut2.c | 24
> libavfilter/vf_lut3d.c | 33 -
> libavfilter/vf_maskedclamp.c | 11
> libavfilter/vf_maskedmerge.c | 11
> libavfilter/vf_maskedminmax.c | 22
> libavfilter/vf_maskedthreshold.c | 11
> libavfilter/vf_maskfun.c | 10
> libavfilter/vf_mcdeint.c | 8
> libavfilter/vf_median.c | 10
> libavfilter/vf_mergeplanes.c | 12
> libavfilter/vf_mestimate.c | 10
> libavfilter/vf_midequalizer.c | 10
> libavfilter/vf_minterpolate.c | 8
> libavfilter/vf_misc_vaapi.c | 16
> libavfilter/vf_mix.c | 22
> libavfilter/vf_monochrome.c | 10
> libavfilter/vf_morpho.c | 12
> libavfilter/vf_mpdecimate.c | 8
> libavfilter/vf_multiply.c | 10
> libavfilter/vf_negate.c | 10
> libavfilter/vf_neighbor.c | 12
> libavfilter/vf_neighbor_opencl.c | 18
> libavfilter/vf_nlmeans.c | 10
> libavfilter/vf_nlmeans_opencl.c | 10
> libavfilter/vf_nlmeans_vulkan.c | 10
> libavfilter/vf_nnedi.c | 10
> libavfilter/vf_noise.c | 10
> libavfilter/vf_normalize.c | 10
> libavfilter/vf_null.c | 8
> libavfilter/vf_ocr.c | 10
> libavfilter/vf_overlay.c | 12
> libavfilter/vf_overlay_cuda.c | 8
> libavfilter/vf_overlay_opencl.c | 10
> libavfilter/vf_overlay_qsv.c | 10
> libavfilter/vf_overlay_vaapi.c | 8
> libavfilter/vf_overlay_vulkan.c | 10
> libavfilter/vf_owdenoise.c | 10
> libavfilter/vf_pad.c | 8
> libavfilter/vf_pad_opencl.c | 10
> libavfilter/vf_pad_vaapi.c | 8
> libavfilter/vf_palettegen.c | 8
> libavfilter/vf_paletteuse.c | 8
> libavfilter/vf_perspective.c | 10
> libavfilter/vf_phase.c | 10
> libavfilter/vf_photosensitivity.c | 8
> libavfilter/vf_pixdesctest.c | 6
> libavfilter/vf_pixelize.c | 10
> libavfilter/vf_pp.c | 10
> libavfilter/vf_pp7.c | 10
> libavfilter/vf_premultiply.c | 30
> libavfilter/vf_procamp_vaapi.c | 8
> libavfilter/vf_program_opencl.c | 26
> libavfilter/vf_pseudocolor.c | 10
> libavfilter/vf_psnr.c | 14
> libavfilter/vf_pullup.c | 8
> libavfilter/vf_qp.c | 12
> libavfilter/vf_quirc.c | 12
> libavfilter/vf_random.c | 8
> libavfilter/vf_readeia608.c | 14
> libavfilter/vf_readvitc.c | 10
> libavfilter/vf_remap.c | 10
> libavfilter/vf_remap_opencl.c | 10
> libavfilter/vf_removegrain.c | 10
> libavfilter/vf_removelogo.c | 10
> libavfilter/vf_repeatfields.c | 6
> libavfilter/vf_rotate.c | 10
> libavfilter/vf_sab.c | 10
> libavfilter/vf_scale.c | 39 -
> libavfilter/vf_scale_cuda.c | 9
> libavfilter/vf_scale_npp.c | 31
> libavfilter/vf_scale_vaapi.c | 8
> libavfilter/vf_scale_vt.c | 10
> libavfilter/vf_scale_vulkan.c | 10
> libavfilter/vf_scdet.c | 10
> libavfilter/vf_scroll.c | 10
> libavfilter/vf_selectivecolor.c | 10
> libavfilter/vf_separatefields.c | 6
> libavfilter/vf_setparams.c | 30
> libavfilter/vf_sharpen_npp.c | 10
> libavfilter/vf_shear.c | 10
> libavfilter/vf_showinfo.c | 10
> libavfilter/vf_showpalette.c | 8
> libavfilter/vf_shuffleframes.c | 10
> libavfilter/vf_shufflepixels.c | 10
> libavfilter/vf_shuffleplanes.c | 10
> libavfilter/vf_signalstats.c | 10
> libavfilter/vf_signature.c | 12
> libavfilter/vf_siti.c | 10
> libavfilter/vf_smartblur.c | 10
> libavfilter/vf_spp.c | 10
> libavfilter/vf_sr.c | 8
> libavfilter/vf_ssim.c | 14
> libavfilter/vf_ssim360.c | 8
> libavfilter/vf_stack.c | 30
> libavfilter/vf_stereo3d.c | 10
> libavfilter/vf_subtitles.c | 16
> libavfilter/vf_super2xsai.c | 8
> libavfilter/vf_swaprect.c | 10
> libavfilter/vf_swapuv.c | 8
> libavfilter/vf_telecine.c | 8
> libavfilter/vf_threshold.c | 10
> libavfilter/vf_thumbnail.c | 12
> libavfilter/vf_thumbnail_cuda.c | 8
> libavfilter/vf_tile.c | 8
> libavfilter/vf_tiltandshift.c | 8
> libavfilter/vf_tinterlace.c | 16
> libavfilter/vf_tmidequalizer.c | 10
> libavfilter/vf_tonemap.c | 10
> libavfilter/vf_tonemap_opencl.c | 10
> libavfilter/vf_tonemap_vaapi.c | 8
> libavfilter/vf_tpad.c | 8
> libavfilter/vf_transpose.c | 10
> libavfilter/vf_transpose_npp.c | 8
> libavfilter/vf_transpose_opencl.c | 10
> libavfilter/vf_transpose_vaapi.c | 8
> libavfilter/vf_transpose_vt.c | 10
> libavfilter/vf_transpose_vulkan.c | 10
> libavfilter/vf_unsharp.c | 10
> libavfilter/vf_unsharp_opencl.c | 10
> libavfilter/vf_untile.c | 8
> libavfilter/vf_uspp.c | 10
> libavfilter/vf_v360.c | 10
> libavfilter/vf_vaguedenoiser.c | 10
> libavfilter/vf_varblur.c | 12
> libavfilter/vf_vectorscope.c | 8
> libavfilter/vf_vflip.c | 8
> libavfilter/vf_vfrdet.c | 8
> libavfilter/vf_vibrance.c | 10
> libavfilter/vf_vidstabdetect.c | 10
> libavfilter/vf_vidstabtransform.c | 8
> libavfilter/vf_vif.c | 14
> libavfilter/vf_vignette.c | 10
> libavfilter/vf_vmafmotion.c | 10
> libavfilter/vf_vpp_qsv.c | 10
> libavfilter/vf_w3fdif.c | 10
> libavfilter/vf_waveform.c | 10
> libavfilter/vf_weave.c | 20
> libavfilter/vf_xbr.c | 10
> libavfilter/vf_xfade.c | 10
> libavfilter/vf_xfade_opencl.c | 10
> libavfilter/vf_xfade_vulkan.c | 10
> libavfilter/vf_xmedian.c | 22
> libavfilter/vf_xpsnr.c | 10
> libavfilter/vf_yadif.c | 10
> libavfilter/vf_yadif_cuda.c | 10
> libavfilter/vf_yadif_videotoolbox.m | 10
> libavfilter/vf_yaepblur.c | 10
> libavfilter/vf_zoompan.c | 8
> libavfilter/vf_zscale.c | 10
> libavfilter/vsink_nullsink.c | 8
> libavfilter/vsrc_cellauto.c | 10
> libavfilter/vsrc_ddagrab.c | 12
> libavfilter/vsrc_gradients.c | 12
> libavfilter/vsrc_life.c | 10
> libavfilter/vsrc_mandelbrot.c | 10
> libavfilter/vsrc_mptestsrc.c | 10
> libavfilter/vsrc_perlin.c | 10
> libavfilter/vsrc_sierpinski.c | 12
> libavfilter/vsrc_testsrc.c | 146 +---
> libavfilter/vsrc_testsrc_vulkan.c | 12
> 462 files changed, 3595 insertions(+), 3611 deletions(-)
> 5e91db8d500a474d68dc6fa5829805f08439967c 0002-avfilter-avfilter-Add-FFFilter-hide-internals-of-AVF.patch
> From 9bfcf23977d6f6d1a5c7f8d77e2d5f69353c6112 Mon Sep 17 00:00:00 2001
> From: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> Date: Thu, 9 Jan 2025 02:42:11 +0100
> Subject: [PATCH 2/2] avfilter/avfilter: Add FFFilter, hide internals of
> AVFilter
>
> This patch is analogous to 20f972701806be20a77f808db332d9489343bb78:
> It hides the internal part of AVFilter by adding a new internal
> structure FFFilter (declared in filters.h) that has an AVFilter
> as its first member; the internal part of AVFilter is moved to
> this new structure.
seems to break this with enabled assertions (or something else in my tree)
In file included from libavfilter/buffersink.c:26:
libavfilter/buffersink.c: In function ‘av_buffersink_get_side_data’:
libavfilter/buffersink.c:373:27: error: ‘AVFilter’ {aka ‘const struct AVFilter’} has no member named ‘activate’
373 | av_assert0(ctx->filter->activate == activate);
| ^~
./libavutil/avassert.h:41:11: note: in definition of macro ‘av_assert0’
41 | if (!(cond)) { \
| ^~~~
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Republics decline into democracies and democracies degenerate into
despotisms. -- Aristotle
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250112/43317275/attachment.sig>
More information about the ffmpeg-devel
mailing list