ffmpeg/libavfilter
Leandro Santiago 69cbda5770 lavfi/vf_drawtext: fix memory management when destroying font face
Ref https://trac.ffmpeg.org/ticket/11152

According to harfbuzz docs, hb_ft_font_set_funcs() does not need to be
called, as, quoted:

```
An #hb_font_t object created with hb_ft_font_create()
is preconfigured for FreeType font functions and does not
require this function to be used.
```

Using this function seems to cause memory management issues between
harfbuzz and freetype, and could be eliminated.

This commit also call hb_ft_font_changed() when the underlying FC_Face
changes size, as stated on hardbuzz:

```
HarfBuzz also provides a utility function called hb_ft_font_changed() that you should call
whenever you have altered the properties of your underlying FT_Face, as well as a hb_ft_get_face()
that you can call on an hb_font_t font object to fetch its underlying FT_Face.
```

Finally, the execution order between hb_font_destroy() and
hb_buffer_destroy() is flipped to match the order of creation of
the respective objects.

Signed-off-by: Leandro Santiago <leandrosansilva@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2024-11-19 23:50:49 +01:00
..
aarch64
cuda
dnn
metal
opencl
riscv
tests
vulkan libavfilter/Makefile: add a makefile for Vulkan shaders 2024-10-15 17:45:20 +02:00
x86
.gitignore
Makefile libavfilter/Makefile: add a makefile for Vulkan shaders 2024-10-15 17:45:20 +02:00
aap_template.c
adynamicequalizer_template.c
aeval.c
af_aap.c
af_acontrast.c
af_acopy.c
af_acrossover.c
af_acrusher.c
af_adeclick.c
af_adecorrelate.c
af_adelay.c
af_adenorm.c
af_aderivative.c
af_adrc.c
af_adynamicequalizer.c
af_adynamicsmooth.c
af_aecho.c
af_aemphasis.c
af_aexciter.c
af_afade.c
af_afftdn.c
af_afftfilt.c
af_afir.c
af_afirdsp.h
af_aformat.c
af_afreqshift.c
af_afwtdn.c
af_agate.c
af_aiir.c
af_alimiter.c
af_amerge.c
af_amix.c
af_amultiply.c
af_anequalizer.c
af_anlmdn.c
af_anlmdndsp.h
af_anlms.c
af_anull.c
af_apad.c
af_aphaser.c
af_apsyclip.c
af_apulsator.c
af_aresample.c
af_arls.c
af_arnndn.c
af_asdr.c
af_asetnsamples.c
af_asetrate.c
af_ashowinfo.c
af_asoftclip.c
af_aspectralstats.c
af_asr.c
af_astats.c
af_asubboost.c
af_asupercut.c
af_atempo.c
af_atilt.c
af_axcorrelate.c
af_biquads.c
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_dialoguenhance.c
af_drmeter.c
af_dynaudnorm.c
af_earwax.c
af_extrastereo.c
af_firequalizer.c
af_flanger.c
af_haas.c
af_hdcd.c
af_headphone.c
af_join.c
af_ladspa.c
af_loudnorm.c
af_lv2.c
af_mcompand.c
af_pan.c
af_replaygain.c
af_rubberband.c
af_sidechaincompress.c
af_silencedetect.c
af_silenceremove.c
af_sofalizer.c
af_speechnorm.c
af_stereotools.c
af_stereowiden.c
af_superequalizer.c
af_surround.c
af_tremolo.c
af_vibrato.c
af_virtualbass.c
af_volume.c
af_volume.h
af_volumedetect.c
afir_template.c
allfilters.c
anlms_template.c
arls_template.c
asink_anullsink.c
asrc_afdelaysrc.c
asrc_afirsrc.c
asrc_anoisesrc.c
asrc_anullsrc.c
asrc_flite.c
asrc_hilbert.c
asrc_sinc.c
asrc_sine.c
atadenoise.h
audio.c
audio.h
avf_a3dscope.c
avf_abitscope.c
avf_ahistogram.c
avf_aphasemeter.c
avf_avectorscope.c
avf_concat.c
avf_showcqt.c
avf_showcqt.h
avf_showcwt.c
avf_showfreqs.c
avf_showspatial.c
avf_showspectrum.c
avf_showvolume.c
avf_showwaves.c
avfilter.c
avfilter.h
avfilter_internal.h
avfiltergraph.c
avfilterres.rc
bbox.c
bbox.h
blend.h
blend_modes.c
boxblur.c
boxblur.h
bufferqueue.h
buffersink.c
buffersink.h
buffersrc.c
buffersrc.h
bwdifdsp.c
bwdifdsp.h
ccfifo.c
ccfifo.h
colorchannelmixer_template.c
colorspace.c
colorspace.h
colorspacedsp.c
colorspacedsp.h
colorspacedsp_template.c
colorspacedsp_yuv2yuv_template.c
convolution.h
dialoguenhance_template.c
dnn_filter_common.c
dnn_filter_common.h
dnn_interface.h
drawutils.c
drawutils.h
ebur128.c
ebur128.h
edge_common.c
edge_common.h
edge_template.c
f_bench.c
f_cue.c
f_drawgraph.c
f_ebur128.c
f_graphmonitor.c
f_interleave.c
f_latency.c
f_loop.c avfilter/f_loop: fix aloop activate logic 2024-11-11 21:56:34 +01:00
f_metadata.c
f_perms.c
f_realtime.c
f_reverse.c
f_segment.c
f_select.c
f_sendcmd.c
f_sidedata.c
f_streamselect.c
f_zmq.c
fflcms2.c
fflcms2.h
file_open.c
filters.h
formats.c
formats.h
framepool.c avfilter/framepool: align the frame buffers 2024-11-09 19:33:56 -03:00
framepool.h
framequeue.c
framequeue.h
framerate.h
framesync.c
framesync.h
gblur.h
generate_wave_table.c
generate_wave_table.h
gradfun.h
graphdump.c
graphparser.c
hermite.h
hflip.h
lavfutils.c
lavfutils.h
libavfilter.v
limiter.h
log2_tab.c
lswsutils.c
lswsutils.h
lut3d.h
maskedclamp.h
maskedmerge.h
median.h
median_template.c
motion_estimation.c
motion_estimation.h
opencl.c
opencl.h
opencl_source.h
palette.c
palette.h
perlin.c
perlin.h
phase_template.c
preserve_color.h
psnr.c
psnr.h
pthread.c
qp_table.c
qp_table.h
qrencode.c
qsvvpp.c
qsvvpp.h
removegrain.h
scale_eval.c
scale_eval.h
scene_sad.c
scene_sad.h
setpts.c
settb.c
signature.h
signature_lookup.c
silenceremove_template.c
split.c
src_avsynctest.c
src_movie.c
ssim.h
stack_internal.c
stack_internal.h
stereo3d.h
textutils.c
textutils.h
threshold.h
tinterlace.h
transform.c
transform.h
transpose.h
trim.c
v360.h
vaapi_vpp.c
vaapi_vpp.h
vaf_spectrumsynth.c
version.c
version.h avfilter/scale_cuda: frame crop support 2024-11-01 17:10:34 +01:00
version_major.h
vf_addroi.c
vf_alphamerge.c
vf_amplify.c
vf_aspect.c
vf_atadenoise.c
vf_avgblur.c
vf_avgblur_opencl.c
vf_avgblur_vulkan.c
vf_backgroundkey.c
vf_bbox.c
vf_bilateral.c
vf_bilateral_cuda.c
vf_bilateral_cuda.cu
vf_bitplanenoise.c
vf_blackdetect.c
vf_blackframe.c
vf_blend.c
vf_blend_init.h
vf_blend_vulkan.c
vf_blockdetect.c
vf_blurdetect.c
vf_bm3d.c
vf_boxblur.c
vf_bwdif.c
vf_bwdif_cuda.c
vf_bwdif_cuda.cu
vf_bwdif_vulkan.c
vf_cas.c
vf_ccrepack.c
vf_chromaber_vulkan.c
vf_chromakey.c
vf_chromakey_cuda.c
vf_chromakey_cuda.cu
vf_chromanr.c
vf_chromashift.c
vf_ciescope.c
vf_codecview.c
vf_colorbalance.c
vf_colorchannelmixer.c
vf_colorconstancy.c
vf_colorcontrast.c
vf_colorcorrect.c
vf_colorize.c
vf_colorkey.c
vf_colorkey_opencl.c
vf_colorlevels.c
vf_colormap.c
vf_colormatrix.c
vf_colorspace.c
vf_colorspace_cuda.c
vf_colorspace_cuda.cu
vf_colortemperature.c
vf_convolution.c
vf_convolution_opencl.c
vf_convolve.c
vf_copy.c
vf_coreimage.m
vf_corr.c
vf_cover_rect.c
vf_crop.c
vf_cropdetect.c
vf_curves.c
vf_datascope.c
vf_dblur.c
vf_dctdnoiz.c
vf_deband.c
vf_deblock.c
vf_decimate.c
vf_dedot.c
vf_deflicker.c
vf_deinterlace_vaapi.c
vf_dejudder.c
vf_delogo.c
vf_derain.c
vf_deshake.c
vf_deshake_opencl.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
vf_drawbox_vaapi.c
vf_drawtext.c lavfi/vf_drawtext: fix memory management when destroying font face 2024-11-19 23:50:49 +01:00
vf_edgedetect.c
vf_elbg.c
vf_entropy.c
vf_epx.c
vf_eq.c
vf_eq.h
vf_estdif.c
vf_exposure.c
vf_extractplanes.c
vf_fade.c
vf_feedback.c
vf_fftdnoiz.c
vf_fftfilt.c
vf_field.c
vf_fieldhint.c
vf_fieldmatch.c
vf_fieldorder.c
vf_fillborders.c
vf_find_rect.c
vf_flip_vulkan.c
vf_floodfill.c
vf_format.c
vf_fps.c
vf_framepack.c
vf_framerate.c
vf_framestep.c
vf_freezedetect.c
vf_freezeframes.c
vf_frei0r.c
vf_fspp.c
vf_fspp.h
vf_fsync.c
vf_gblur.c
vf_gblur_init.h
vf_gblur_vulkan.c
vf_geq.c
vf_gradfun.c
vf_grayworld.c
vf_guided.c
vf_hflip.c
vf_hflip_init.h
vf_histeq.c
vf_histogram.c
vf_hqdn3d.c
vf_hqdn3d.h
vf_hqx.c
vf_hsvkey.c
vf_hue.c
vf_huesaturation.c
vf_hwdownload.c
vf_hwmap.c
vf_hwupload.c
vf_hwupload_cuda.c
vf_hysteresis.c
vf_iccdetect.c
vf_iccgen.c
vf_identity.c
vf_idet.c
vf_idet.h
vf_il.c
vf_kerndeint.c
vf_lagfun.c
vf_lcevc.c
vf_lenscorrection.c
vf_lensfun.c
vf_libopencv.c
vf_libplacebo.c lavfi/vf_libplacebo: eliminate LibplaceboInput.link 2024-11-09 02:45:58 +01:00
vf_libvmaf.c
vf_limitdiff.c
vf_limiter.c
vf_lumakey.c
vf_lut.c
vf_lut2.c
vf_lut3d.c
vf_maskedclamp.c
vf_maskedmerge.c
vf_maskedminmax.c
vf_maskedthreshold.c
vf_maskfun.c
vf_mcdeint.c
vf_median.c
vf_mergeplanes.c lavfi/vf_mergeplanes: switch to query_func2() 2024-10-15 10:39:14 +02:00
vf_mestimate.c
vf_midequalizer.c
vf_minterpolate.c
vf_misc_vaapi.c
vf_mix.c
vf_monochrome.c
vf_morpho.c
vf_mpdecimate.c
vf_multiply.c
vf_negate.c
vf_neighbor.c
vf_neighbor_opencl.c
vf_nlmeans.c
vf_nlmeans.h
vf_nlmeans_init.h
vf_nlmeans_opencl.c
vf_nlmeans_vulkan.c vulkan: enable selecting a compatible representation of format 2024-10-16 12:48:15 +02:00
vf_nnedi.c
vf_noise.c
vf_noise.h
vf_normalize.c
vf_null.c
vf_ocr.c
vf_overlay.c
vf_overlay.h
vf_overlay_cuda.c
vf_overlay_cuda.cu
vf_overlay_opencl.c
vf_overlay_qsv.c
vf_overlay_vaapi.c
vf_overlay_vulkan.c
vf_owdenoise.c
vf_pad.c
vf_pad_opencl.c
vf_pad_vaapi.c
vf_palettegen.c lavfi/vf_palettegen: switch to query_func2() 2024-10-15 10:39:14 +02:00
vf_paletteuse.c lavfi/vf_paletteuse: switch to query_func2() 2024-10-15 10:39:14 +02:00
vf_perspective.c
vf_phase.c
vf_photosensitivity.c
vf_pixdesctest.c avfilter/vf_pixdesctest: also take into account undefined alpha components 2024-10-21 09:52:58 -03:00
vf_pixelize.c
vf_pp.c
vf_pp7.c
vf_pp7.h
vf_premultiply.c lavfi/vf_premultiply: switch to query_func2() 2024-10-15 10:39:14 +02:00
vf_procamp_vaapi.c
vf_program_opencl.c
vf_pseudocolor.c
vf_psnr.c
vf_pullup.c
vf_pullup.h
vf_qp.c
vf_quirc.c lavfi/vf_quirc: use FILTER_PIXFMTS_ARRAY() instead of query_formats() 2024-10-15 10:39:14 +02:00
vf_random.c
vf_readeia608.c
vf_readvitc.c
vf_remap.c lavfi/vf_remap: switch to query_func2() 2024-10-15 10:39:14 +02:00
vf_remap_opencl.c
vf_removegrain.c
vf_removelogo.c
vf_repeatfields.c
vf_rotate.c
vf_sab.c
vf_scale.c lavfi/vf_scale: switch to query_func2() 2024-10-15 10:39:14 +02:00
vf_scale_cuda.c avfilter/scale_cuda: frame crop support 2024-11-01 17:10:34 +01:00
vf_scale_cuda.cu avfilter/scale_cuda: frame crop support 2024-11-01 17:10:34 +01:00
vf_scale_cuda.h
vf_scale_npp.c
vf_scale_vaapi.c
vf_scale_vt.c
vf_scale_vulkan.c
vf_scdet.c
vf_scroll.c
vf_selectivecolor.c
vf_separatefields.c
vf_setparams.c lavfi/vf_setparams: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_sharpen_npp.c
vf_shear.c
vf_showinfo.c
vf_showpalette.c lavfi/vf_showpalette: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_shuffleframes.c
vf_shufflepixels.c
vf_shuffleplanes.c lavfi/vf_shuffleplanes: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_signalstats.c
vf_signature.c
vf_siti.c
vf_smartblur.c
vf_spp.c
vf_spp.h
vf_sr.c
vf_ssim.c
vf_ssim360.c
vf_stack.c lavfi/vf_stack: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_stack_qsv.c
vf_stack_vaapi.c
vf_stereo3d.c lavfi/vf_stereo3d: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_subtitles.c avfilter/vf_subtitles: Respect YCbCr Matrix header 2024-10-19 11:08:34 -05:00
vf_super2xsai.c
vf_swaprect.c lavfi/vf_swaprect: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_swapuv.c lavfi/vf_swapuv: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_telecine.c lavfi/vf_telecine: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_threshold.c
vf_threshold_init.h
vf_thumbnail.c
vf_thumbnail_cuda.c
vf_thumbnail_cuda.cu
vf_tile.c lavfi/vf_tile: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_tiltandshift.c
vf_tinterlace.c
vf_tmidequalizer.c
vf_tonemap.c
vf_tonemap_opencl.c
vf_tonemap_vaapi.c
vf_tpad.c lavfi/vf_tpad: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_transpose.c lavfi/vf_transpose: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_transpose_npp.c
vf_transpose_opencl.c
vf_transpose_vaapi.c
vf_transpose_vt.c
vf_transpose_vulkan.c
vf_unsharp.c
vf_unsharp_opencl.c
vf_untile.c lavfi/vf_untile: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_uspp.c
vf_v360.c lavfi/vf_v360: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_vaguedenoiser.c
vf_varblur.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
vf_vmafmotion.c lavfi/vf_vmafmotion: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_vpp_qsv.c lavfi/vf_vpp_qsv: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_w3fdif.c
vf_waveform.c
vf_weave.c lavfi/vf_weave: convert to query_func2() 2024-10-17 11:00:35 +02:00
vf_xbr.c
vf_xfade.c
vf_xfade_opencl.c
vf_xfade_vulkan.c
vf_xmedian.c
vf_xpsnr.c
vf_yadif.c
vf_yadif_cuda.c
vf_yadif_cuda.cu
vf_yadif_videotoolbox.m
vf_yaepblur.c
vf_zoompan.c
vf_zscale.c avfilter/vf_zscale: extend the configuration log message with color space info 2024-11-09 19:33:57 -03:00
video.c
video.h
vidstabutils.c
vidstabutils.h
vmaf_motion.h
vsink_nullsink.c
vsrc_cellauto.c
vsrc_ddagrab.c
vsrc_ddagrab_shaders.h
vsrc_gradients.c
vsrc_life.c lavfi/vsrc_life: convert to query_func2() 2024-10-17 11:00:35 +02:00
vsrc_mandelbrot.c
vsrc_mptestsrc.c
vsrc_perlin.c lavfi/vsrc_perlin: convert to query_func2() 2024-10-17 11:00:35 +02:00
vsrc_sierpinski.c
vsrc_testsrc.c avfilter/vsrc_testsrc: add support for RGB48/RGBA64 2024-11-06 17:34:32 -03:00
vsrc_testsrc_vulkan.c
vulkan.c
vulkan_filter.c vulkan: enable selecting a compatible representation of format 2024-10-16 12:48:15 +02:00
vulkan_filter.h
vulkan_glslang.c
vulkan_shaderc.c
w3fdif.h
window_func.h
xpsnr.h
yadif.h
yadif_common.c