1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-28 20:53:54 +02:00
FFmpeg/libavfilter
Paul B Mahol 274112c88d avfilter/f_ebur128: add all sample rates support
The magic constants come from the unofficial "ITU-R BS.1770-1 filter
specifications"¹ by Raiden (libebur128) which relies on "Parameter
Quantization in Direct-Form Recursive Audio Filters"² by Brian
Neunaber.

The constants seem to include a quantization bias, for example:
- Vb is supposed to be exactly √Vh in a high shelf filter
- the Pre-filter Gain should likely be 4dB
- Pre Q and RLB Q are respectively very close to √½ and ½

Those are not adjusted to prevent the values from drifting away from
the official specifications.

An alternative to this approach would be to requantize on the fly as
proposed by pbelkner³, where the 48kHz code path would use the exact
specifications constants while derivating constants for other
frequencies.

[1]: https://www.scribd.com/document/49991813/ITU-R-BS-1770-1-filters
[2]: https://www.scribd.com/document/6531763/Direct-Form-Filter-Parameter-Quantization
[3]: https://hydrogenaud.io/index.php?topic=86116.msg740092#msg740092
2021-07-25 12:15:29 +02:00
..
aarch64
cuda avfilter/cuda: fix ptx inflation with large payloads 2021-06-24 20:58:47 +02:00
dnn Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
opencl
tests avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
x86 Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
.gitignore
aeval.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_acontrast.c
af_acopy.c
af_acrossover.c
af_acrusher.c
af_adeclick.c
af_adelay.c
af_adenorm.c
af_aderivative.c
af_aecho.c
af_aemphasis.c
af_aexciter.c
af_afade.c
af_afftdn.c
af_afftfilt.c
af_afir.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
af_afir.h
af_aformat.c
af_afreqshift.c
af_afwtdn.c avfilter/af_afwtdn: add forgotten break statement 2021-07-25 11:47:47 +02:00
af_agate.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_aiir.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_alimiter.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_amerge.c
af_amix.c
af_amultiply.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_anequalizer.c
af_anlmdn.c avfilter/af_anlmdn: add longer names of filter options 2021-07-25 10:23:30 +02:00
af_anlmdndsp.h
af_anlms.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_anull.c
af_apad.c
af_aphaser.c
af_apulsator.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
af_aresample.c
af_arnndn.c
af_asetnsamples.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_asetrate.c
af_ashowinfo.c Remove/replace some unnecessary avcodec.h inclusions 2021-07-22 15:29:46 +02:00
af_asoftclip.c
af_asr.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_astats.c avfilter/af_astats: Only print header lines when values are to be printed 2021-07-14 10:31:33 +02:00
af_asubboost.c
af_asupercut.c
af_atempo.c
af_axcorrelate.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_biquads.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
af_bs2b.c
af_channelmap.c
af_channelsplit.c
af_chorus.c
af_compand.c
af_compensationdelay.c
af_crossfeed.c
af_crystalizer.c
af_dcshift.c
af_deesser.c
af_drmeter.c avfilter/af_drmeter: Check that there is data 2021-07-20 17:16:13 +02:00
af_dynaudnorm.c
af_earwax.c
af_extrastereo.c
af_firequalizer.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
af_flanger.c
af_haas.c
af_hdcd.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
af_headphone.c avfilter/af_headphone: switch to TX FFT from avutil 2021-07-24 12:24:40 +02:00
af_join.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_ladspa.c
af_loudnorm.c
af_lv2.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_mcompand.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_pan.c
af_replaygain.c
af_rubberband.c
af_sidechaincompress.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
af_silencedetect.c
af_silenceremove.c
af_sofalizer.c avfilter/af_sofalizer: switch to TX FFT from avutil 2021-07-24 12:24:40 +02:00
af_speechnorm.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
af_stereotools.c
af_stereowiden.c
af_superequalizer.c
af_surround.c
af_tremolo.c
af_vibrato.c
af_volume.c
af_volume.h
af_volumedetect.c
allfilters.c avfilter: add afwtdn filter 2021-07-24 12:24:40 +02:00
asink_anullsink.c
asrc_afirsrc.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
asrc_anoisesrc.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
asrc_anullsrc.c
asrc_flite.c
asrc_hilbert.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
asrc_sinc.c avcodec/avcodec: Stop including channel_layout.h in avcodec.h 2021-07-22 11:14:31 +02:00
asrc_sine.c
atadenoise.h
audio.c
audio.h
avf_abitscope.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
avf_ahistogram.c
avf_aphasemeter.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
avf_avectorscope.c
avf_concat.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
avf_showcqt.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
avf_showcqt.h
avf_showfreqs.c
avf_showspatial.c
avf_showspectrum.c avfilter/avf_showspectrum: fix not rendering all channels with fscale=log:mode=separate 2021-07-24 17:30:58 +02:00
avf_showvolume.c
avf_showwaves.c
avfilter.c
avfilter.h
avfiltergraph.c
avfilterres.rc
bbox.c
bbox.h
blend.h
boxblur.c
boxblur.h Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
bufferqueue.h
buffersink.c
buffersink.h
buffersrc.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
buffersrc.h
bwdif.h
colorspace.c
colorspace.h
colorspacedsp_template.c
colorspacedsp_yuv2yuv_template.c
colorspacedsp.c
colorspacedsp.h
convolution.h
deshake.h
dnn_filter_common.c avfilter/dnn_filter_common: Use const where appropriate 2021-07-06 10:47:57 +08:00
dnn_filter_common.h avfilter/dnn_filter_common: Use const where appropriate 2021-07-06 10:47:57 +08:00
dnn_interface.h
drawutils.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
drawutils.h
ebur128.c
ebur128.h
f_bench.c
f_cue.c
f_drawgraph.c
f_ebur128.c avfilter/f_ebur128: add all sample rates support 2021-07-25 12:15:29 +02:00
f_graphmonitor.c
f_interleave.c
f_loop.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
f_metadata.c avfilter/f_metadata: do not return the frame early if there is no metadata 2021-07-06 21:58:19 +02:00
f_perms.c
f_realtime.c
f_reverse.c
f_select.c
f_sendcmd.c
f_sidedata.c
f_streamselect.c
f_zmq.c
fifo.c
filters.h
formats.c
formats.h Remove obsolete version.h inclusions 2021-07-22 14:34:31 +02:00
framepool.c
framepool.h
framequeue.c
framequeue.h
framerate.h
framesync.c
framesync.h
gblur.h
generate_wave_table.c
generate_wave_table.h
glslang.cpp
glslang.h
gradfun.h
graphdump.c
graphparser.c
hermite.h
hflip.h
internal.h avfilter/internal: Mark ff_filter_get_nb_threads() as av_pure 2021-07-18 22:33:34 +02:00
lavfutils.c lavfi/lavfutils: include required headers explicitly 2021-06-10 16:51:44 +02:00
lavfutils.h
libavfilter.v
limiter.h
log2_tab.c
lswsutils.c
lswsutils.h
Makefile avfilter: add afwtdn filter 2021-07-24 12:24:40 +02:00
maskedclamp.h
maskedmerge.h
median_template.c
median.h
motion_estimation.c
motion_estimation.h
opencl_source.h
opencl.c
opencl.h
phase_template.c
psnr.h
pthread.c avutil/internal, swresample/audioconvert: Remove cpu.h inclusions 2021-07-22 14:33:45 +02:00
qp_table.c
qp_table.h
qsvvpp.c
qsvvpp.h
removegrain.h
scale_eval.c
scale_eval.h
scene_sad.c
scene_sad.h
setpts.c
settb.c
signature_lookup.c lavfi/signature: fix always true expression 2021-07-25 05:10:33 +05:30
signature.h
split.c
src_movie.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
ssim.h
stereo3d.h
thread.h
threshold.h
tinterlace.h
transform.c
transform.h
transpose.h
trim.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
unsharp.h
v360.h avfilter/vf_v360: add cylindrical equal area format 2021-06-30 00:12:41 +02:00
vaapi_vpp.c
vaapi_vpp.h
vaf_spectrumsynth.c
version.h avfilter: add afwtdn filter 2021-07-24 12:24:40 +02:00
vf_addroi.c
vf_alphamerge.c
vf_amplify.c
vf_aspect.c
vf_atadenoise.c
vf_avgblur_opencl.c
vf_avgblur_vulkan.c
vf_avgblur.c
vf_bbox.c
vf_bilateral.c
vf_bitplanenoise.c
vf_blackdetect.c
vf_blackframe.c
vf_blend.c
vf_bm3d.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_boxblur.c
vf_bwdif.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_cas.c
vf_chromaber_vulkan.c
vf_chromakey.c
vf_chromanr.c avfilter/vf_chromanr: add also euclidean distance for calculations 2021-07-17 15:18:30 +02:00
vf_chromashift.c
vf_ciescope.c avfilter/vf_ciescope: Fix undefined behavior in rgb_to_xy() with black 2021-06-08 18:00:05 +02:00
vf_codecview.c
vf_colorbalance.c
vf_colorchannelmixer.c
vf_colorconstancy.c
vf_colorcontrast.c
vf_colorcorrect.c
vf_colorize.c
vf_colorkey_opencl.c
vf_colorkey.c
vf_colorlevels.c
vf_colormatrix.c
vf_colorspace.c
vf_colortemperature.c
vf_convolution_opencl.c
vf_convolution.c
vf_convolve.c
vf_copy.c
vf_coreimage.m
vf_cover_rect.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_crop.c
vf_cropdetect.c
vf_curves.c
vf_datascope.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_dblur.c
vf_dctdnoiz.c avfilter/vf_dctdnoiz: Check threads 2021-06-08 18:00:05 +02:00
vf_deband.c
vf_deblock.c
vf_decimate.c
vf_dedot.c
vf_deflicker.c
vf_deinterlace_qsv.c
vf_deinterlace_vaapi.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_dejudder.c
vf_delogo.c
vf_derain.c
vf_deshake_opencl.c
vf_deshake.c
vf_despill.c
vf_detelecine.c
vf_displace.c
vf_dnn_classify.c
vf_dnn_detect.c
vf_dnn_processing.c
vf_drawbox.c lavfi/vf_drawbox.c: fix CID 1485004 2021-06-09 09:18:02 +08:00
vf_drawtext.c lavfi/vf_drawtext.c: fix CID 1485003 2021-06-09 09:18:02 +08:00
vf_edgedetect.c
vf_elbg.c
vf_entropy.c
vf_epx.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_eq.c
vf_eq.h
vf_estdif.c avfilter/[vf_nnedi, vf_estdif]: check interlaced flag on correct frame 2021-07-16 09:22:36 +02:00
vf_exposure.c
vf_extractplanes.c
vf_fade.c
vf_fftdnoiz.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_fftfilt.c
vf_field.c
vf_fieldhint.c
vf_fieldmatch.c
vf_fieldorder.c
vf_fillborders.c avfilter/vf_fillborders: add another mode 2021-07-24 20:23:58 +02:00
vf_find_rect.c
vf_floodfill.c
vf_format.c
vf_fps.c avfilter/fps: remove unconventional acronyms 2021-07-06 11:43:31 +05:30
vf_framepack.c
vf_framerate.c
vf_framestep.c
vf_freezedetect.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_freezeframes.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_frei0r.c
vf_fspp.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_fspp.h
vf_gblur.c
vf_geq.c
vf_gradfun.c avutil/internal, swresample/audioconvert: Remove cpu.h inclusions 2021-07-22 14:33:45 +02:00
vf_guided.c avfilter/vf_guided: support single input 2021-06-29 16:05:31 +08:00
vf_hflip.c
vf_histeq.c
vf_histogram.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_hqdn3d.c avfilter/vf_hqdn3d: fix left shift of negative numbers 2021-06-05 16:59:37 +02:00
vf_hqdn3d.h
vf_hqx.c
vf_hue.c
vf_hwdownload.c
vf_hwmap.c
vf_hwupload_cuda.c
vf_hwupload.c
vf_hysteresis.c
vf_identity.c
vf_idet.c avutil/internal, swresample/audioconvert: Remove cpu.h inclusions 2021-07-22 14:33:45 +02:00
vf_idet.h
vf_il.c
vf_kerndeint.c
vf_lagfun.c
vf_lenscorrection.c
vf_lensfun.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_libopencv.c
vf_libvmaf.c
vf_limiter.c
vf_lumakey.c
vf_lut2.c
vf_lut3d.c
vf_lut.c
vf_maskedclamp.c
vf_maskedmerge.c
vf_maskedminmax.c
vf_maskedthreshold.c
vf_maskfun.c
vf_mcdeint.c
vf_median.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_mergeplanes.c
vf_mestimate.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_midequalizer.c
vf_minterpolate.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_misc_vaapi.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_mix.c
vf_monochrome.c
vf_mpdecimate.c
vf_neighbor_opencl.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_neighbor.c
vf_nlmeans_opencl.c
vf_nlmeans.c
vf_nlmeans.h
vf_nnedi.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_noise.c
vf_noise.h
vf_normalize.c
vf_null.c
vf_ocr.c
vf_overlay_cuda.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_overlay_cuda.cu
vf_overlay_opencl.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_overlay_qsv.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_overlay_vulkan.c
vf_overlay.c
vf_overlay.h
vf_owdenoise.c
vf_pad_opencl.c
vf_pad.c
vf_palettegen.c
vf_paletteuse.c
vf_perspective.c
vf_phase.c
vf_photosensitivity.c
vf_pixdesctest.c
vf_pp7.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_pp7.h
vf_pp.c
vf_premultiply.c
vf_procamp_vaapi.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_program_opencl.c
vf_pseudocolor.c avfilter/vf_pseudocolor: add solar preset 2021-07-24 23:12:13 +02:00
vf_psnr.c
vf_pullup.c
vf_pullup.h
vf_qp.c
vf_random.c
vf_readeia608.c
vf_readvitc.c
vf_remap.c
vf_removegrain.c
vf_removelogo.c
vf_repeatfields.c
vf_rotate.c
vf_sab.c
vf_scale_cuda.c avfilter/scale_cuda: add support for pixel format conversion 2021-06-25 01:44:30 +02:00
vf_scale_cuda.cu avfilter/scale_cuda: add support for pixel format conversion 2021-06-25 01:44:30 +02:00
vf_scale_cuda.h
vf_scale_npp.c
vf_scale_qsv.c
vf_scale_vaapi.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_scale_vulkan.c
vf_scale.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_scdet.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_scroll.c
vf_selectivecolor.c
vf_separatefields.c
vf_setparams.c
vf_shear.c
vf_showinfo.c
vf_showpalette.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_shuffleframes.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_shufflepixels.c avfilter/vf_shufflepixels: Check ff_get_video_buffer() 2021-07-23 15:06:21 +02:00
vf_shuffleplanes.c
vf_signalstats.c
vf_signature.c
vf_smartblur.c
vf_spp.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_spp.h
vf_sr.c
vf_ssim.c
vf_stack.c
vf_stereo3d.c
vf_subtitles.c avfilter/vf_subtitles: allow using embedded fonts 2021-05-29 11:32:23 +05:30
vf_super2xsai.c
vf_swaprect.c
vf_swapuv.c
vf_telecine.c
vf_threshold.c avfilter/vf_threshold: add support for commands 2021-07-25 11:24:18 +02:00
vf_thumbnail_cuda.c avfilter: compress CUDA PTX code if possible 2021-06-22 14:05:44 +02:00
vf_thumbnail_cuda.cu
vf_thumbnail.c
vf_tile.c
vf_tinterlace.c
vf_tmidequalizer.c
vf_tonemap_opencl.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_tonemap_vaapi.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_tonemap.c
vf_tpad.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_transpose_npp.c
vf_transpose_opencl.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_transpose_vaapi.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_transpose.c
vf_unsharp_opencl.c
vf_unsharp.c
vf_untile.c
vf_uspp.c
vf_v360.c avfilter/vf_v360: avoid doubles in fov_from_dfov() 2021-07-17 23:27:51 +02:00
vf_vaguedenoiser.c
vf_vectorscope.c
vf_vflip.c
vf_vfrdet.c
vf_vibrance.c
vf_vidstabdetect.c
vf_vidstabtransform.c
vf_vif.c
vf_vignette.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_vmafmotion.c avfilter/vf_vmafmotion: Check dimensions 2021-05-29 20:14:24 +02:00
vf_vpp_qsv.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_w3fdif.c avfilter/vf_w3fdif: fix time base for large denominators 2021-07-16 09:09:58 +02:00
vf_waveform.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_weave.c
vf_xbr.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_xfade_opencl.c Remove unnecessary mem.h inclusions 2021-07-22 14:47:57 +02:00
vf_xfade.c
vf_xmedian.c
vf_yadif_cuda.c avfilter: compress CUDA PTX code if possible 2021-06-22 14:05:44 +02:00
vf_yadif_cuda.cu
vf_yadif.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_yaepblur.c
vf_zoompan.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
vf_zscale.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
video.c Remove unnecessary avassert.h inclusions 2021-07-22 15:02:30 +02:00
video.h
vidstabutils.c
vidstabutils.h
vif.h
vmaf_motion.h
vsink_nullsink.c
vsrc_cellauto.c
vsrc_gradients.c
vsrc_life.c
vsrc_mandelbrot.c
vsrc_mptestsrc.c
vsrc_sierpinski.c
vsrc_testsrc.c
vulkan.c
vulkan.h
w3fdif.h
window_func.h
yadif_common.c
yadif.h