* [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct @ 2023-02-17 16:54 Lynne 2023-02-17 17:08 ` James Almer 0 siblings, 1 reply; 16+ messages in thread From: Lynne @ 2023-02-17 16:54 UTC (permalink / raw) To: Ffmpeg Devel [-- Attachment #1: Type: text/plain, Size: 194 bytes --] This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. All filters and all codecs (except wmavoice) have been ported for the lavu/tx API. The noise should be minimal. Patch attached. [-- Attachment #2: 0001-lavc-deprecate-avcodec_dct-av_fft-av_dct-av_rdft-and.patch --] [-- Type: text/x-diff, Size: 4900 bytes --] From 5459ae39a729c69939de65392373d4f9cdf47246 Mon Sep 17 00:00:00 2001 From: Lynne <dev@lynne.ee> Date: Fri, 17 Feb 2023 17:51:51 +0100 Subject: [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. --- doc/APIchanges | 4 ++++ libavcodec/avdct.h | 7 ++++++- libavcodec/avfft.h | 39 ++++++++++++++++++++++++++++++++------- 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/doc/APIchanges b/doc/APIchanges index 29161e30bf..6536315fc2 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,10 @@ The last version increases of all libraries were on 2023-02-09 API changes, most recent first: +2023-02-17 - xxxxxxxxxx - lavc 60.2.100 - avdct.h avfft.h + Deprecate avcodec_dct, av_dct, av_rdft, av_fft and av_mdct. + Replaced by libavutil/tx.h + 2023-02-16 - xxxxxxxxxx - lavf 60.2.100 - avformat.h Deprecate AVFormatContext io_close callback. The superior io_close2 callback should be used instead. diff --git a/libavcodec/avdct.h b/libavcodec/avdct.h index 6411fab6f6..06da0e80d4 100644 --- a/libavcodec/avdct.h +++ b/libavcodec/avdct.h @@ -19,6 +19,7 @@ #ifndef AVCODEC_AVDCT_H #define AVCODEC_AVDCT_H +#include "libavutil/attributes.h" #include "libavutil/opt.h" /** @@ -26,7 +27,7 @@ * @note function pointers can be NULL if the specific features have been * disabled at build time. */ -typedef struct AVDCT { +typedef struct attribute_deprecated AVDCT { const AVClass *av_class; void (*idct)(int16_t *block /* align 16 */); @@ -80,9 +81,13 @@ typedef struct AVDCT { * * To free it use av_free() */ +attribute_deprecated AVDCT *avcodec_dct_alloc(void); + +attribute_deprecated int avcodec_dct_init(AVDCT *); +attribute_deprecated const AVClass *avcodec_dct_get_class(void); #endif /* AVCODEC_AVDCT_H */ diff --git a/libavcodec/avfft.h b/libavcodec/avfft.h index 0c0f9b8d8d..d49bc98a29 100644 --- a/libavcodec/avfft.h +++ b/libavcodec/avfft.h @@ -19,6 +19,8 @@ #ifndef AVCODEC_AVFFT_H #define AVCODEC_AVFFT_H +#include "libavutil/attributes.h" + /** * @file * @ingroup lavc_fft @@ -32,65 +34,83 @@ * @{ */ -typedef float FFTSample; +typedef float attribute_deprecated FFTSample; -typedef struct FFTComplex { +typedef struct attribute_deprecated FFTComplex { FFTSample re, im; } FFTComplex; -typedef struct FFTContext FFTContext; +typedef struct attribute_deprecated FFTContext FFTContext; /** * Set up a complex FFT. * @param nbits log2 of the length of the input array * @param inverse if 0 perform the forward transform, if 1 perform the inverse */ +attribute_deprecated FFTContext *av_fft_init(int nbits, int inverse); /** * Do the permutation needed BEFORE calling ff_fft_calc(). */ +attribute_deprecated void av_fft_permute(FFTContext *s, FFTComplex *z); /** * Do a complex FFT with the parameters defined in av_fft_init(). The * input data must be permuted before. No 1.0/sqrt(n) normalization is done. */ +attribute_deprecated void av_fft_calc(FFTContext *s, FFTComplex *z); +attribute_deprecated void av_fft_end(FFTContext *s); +attribute_deprecated FFTContext *av_mdct_init(int nbits, int inverse, double scale); + +attribute_deprecated void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); + +attribute_deprecated void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input); + +attribute_deprecated void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); + +attribute_deprecated void av_mdct_end(FFTContext *s); /* Real Discrete Fourier Transform */ -enum RDFTransformType { +enum attribute_deprecated RDFTransformType { DFT_R2C, IDFT_C2R, IDFT_R2C, DFT_C2R, }; -typedef struct RDFTContext RDFTContext; +typedef struct attribute_deprecated RDFTContext RDFTContext; /** * Set up a real FFT. * @param nbits log2 of the length of the input array * @param trans the type of transform */ +attribute_deprecated RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans); + +attribute_deprecated void av_rdft_calc(RDFTContext *s, FFTSample *data); + +attribute_deprecated void av_rdft_end(RDFTContext *s); /* Discrete Cosine Transform */ -typedef struct DCTContext DCTContext; +typedef struct attribute_deprecated DCTContext DCTContext; -enum DCTTransformType { +enum attribute_deprecated DCTTransformType { DCT_II = 0, DCT_III, DCT_I, @@ -107,8 +127,13 @@ enum DCTTransformType { * * @note the first element of the input of DST-I is ignored */ +attribute_deprecated DCTContext *av_dct_init(int nbits, enum DCTTransformType type); + +attribute_deprecated void av_dct_calc(DCTContext *s, FFTSample *data); + +attribute_deprecated void av_dct_end (DCTContext *s); /** -- 2.39.2 [-- Attachment #3: Type: text/plain, Size: 251 bytes --] _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-17 16:54 [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct Lynne @ 2023-02-17 17:08 ` James Almer 2023-02-17 18:45 ` Lynne [not found] ` <NOVgRri--3-9@lynne.ee-NOVgVXs----9> 0 siblings, 2 replies; 16+ messages in thread From: James Almer @ 2023-02-17 17:08 UTC (permalink / raw) To: ffmpeg-devel On 2/17/2023 1:54 PM, Lynne wrote: > This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. > > All filters and all codecs (except wmavoice) have been ported for the > lavu/tx API. > > The noise should be minimal. It isn't. I'm getting more than two thousand lines of warnings after applying this patch from libavfilter/vf_spp.c libavfilter/x86/vf_spp.c libavcodec/asvenc.c libavcodec/avdct.c libavcodec/avfft.c libavcodec/dct.c libavcodec/fdctdsp.c libavcodec/fft_float.c libavcodec/fft_init_table.c libavcodec/idctdsp.c libavcodec/jfdctfst.c libavcodec/jfdctint.c libavcodec/jrevdct.c libavcodec/mpegaudiodsp.c libavcodec/mpegvideo_enc.c libavcodec/rdft.c libavcodec/wmavoice.c libavcodec/x86/dct_init.c libavcodec/x86/fft_init.c libavcodec/x86/mpegvideoenc.c It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. This patch is also missing the schedule FF_API deprecation wrapper. > > Patch attached. > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-17 17:08 ` James Almer @ 2023-02-17 18:45 ` Lynne 2023-02-17 23:59 ` Hendrik Leppkes [not found] ` <NOVgRri--3-9@lynne.ee-NOVgVXs----9> 1 sibling, 1 reply; 16+ messages in thread From: Lynne @ 2023-02-17 18:45 UTC (permalink / raw) To: FFmpeg development discussions and patches Feb 17, 2023, 18:08 by jamrial@gmail.com: > On 2/17/2023 1:54 PM, Lynne wrote: > >> This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. >> >> All filters and all codecs (except wmavoice) have been ported for the >> lavu/tx API. >> >> The noise should be minimal. >> > > It isn't. I'm getting more than two thousand lines of warnings after applying this patch from > > libavfilter/vf_spp.c > libavfilter/x86/vf_spp.c > libavcodec/asvenc.c > libavcodec/avdct.c > libavcodec/avfft.c > libavcodec/dct.c > libavcodec/fdctdsp.c > libavcodec/fft_float.c > libavcodec/fft_init_table.c > libavcodec/idctdsp.c > libavcodec/jfdctfst.c > libavcodec/jfdctint.c > libavcodec/jrevdct.c > libavcodec/mpegaudiodsp.c > libavcodec/mpegvideo_enc.c > libavcodec/rdft.c > libavcodec/wmavoice.c > libavcodec/x86/dct_init.c > libavcodec/x86/fft_init.c > libavcodec/x86/mpegvideoenc.c > > It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. > This patch is also missing the schedule FF_API deprecation wrapper. > Is the noise acceptable if I just deprecate the functions? It wasn't before, but it should be much less now. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-17 18:45 ` Lynne @ 2023-02-17 23:59 ` Hendrik Leppkes 2023-02-18 11:52 ` Lynne 0 siblings, 1 reply; 16+ messages in thread From: Hendrik Leppkes @ 2023-02-17 23:59 UTC (permalink / raw) To: FFmpeg development discussions and patches On Fri, Feb 17, 2023 at 7:45 PM Lynne <dev@lynne.ee> wrote: > > Feb 17, 2023, 18:08 by jamrial@gmail.com: > > > On 2/17/2023 1:54 PM, Lynne wrote: > > > >> This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. > >> > >> All filters and all codecs (except wmavoice) have been ported for the > >> lavu/tx API. > >> > >> The noise should be minimal. > >> > > > > It isn't. I'm getting more than two thousand lines of warnings after applying this patch from > > > > libavfilter/vf_spp.c > > libavfilter/x86/vf_spp.c > > libavcodec/asvenc.c > > libavcodec/avdct.c > > libavcodec/avfft.c > > libavcodec/dct.c > > libavcodec/fdctdsp.c > > libavcodec/fft_float.c > > libavcodec/fft_init_table.c > > libavcodec/idctdsp.c > > libavcodec/jfdctfst.c > > libavcodec/jfdctint.c > > libavcodec/jrevdct.c > > libavcodec/mpegaudiodsp.c > > libavcodec/mpegvideo_enc.c > > libavcodec/rdft.c > > libavcodec/wmavoice.c > > libavcodec/x86/dct_init.c > > libavcodec/x86/fft_init.c > > libavcodec/x86/mpegvideoenc.c > > > > It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. > > This patch is also missing the schedule FF_API deprecation wrapper. > > > > Is the noise acceptable if I just deprecate the functions? > It wasn't before, but it should be much less now. An API we still use internally doesn't seem very deprecated to me. Should get rid of it, then there won't be any warnings. - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-17 23:59 ` Hendrik Leppkes @ 2023-02-18 11:52 ` Lynne 2023-02-18 13:15 ` James Almer 0 siblings, 1 reply; 16+ messages in thread From: Lynne @ 2023-02-18 11:52 UTC (permalink / raw) To: FFmpeg development discussions and patches Feb 18, 2023, 01:00 by h.leppkes@gmail.com: > On Fri, Feb 17, 2023 at 7:45 PM Lynne <dev@lynne.ee> wrote: > >> >> Feb 17, 2023, 18:08 by jamrial@gmail.com: >> >> > On 2/17/2023 1:54 PM, Lynne wrote: >> > >> >> This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. >> >> >> >> All filters and all codecs (except wmavoice) have been ported for the >> >> lavu/tx API. >> >> >> >> The noise should be minimal. >> >> >> > >> > It isn't. I'm getting more than two thousand lines of warnings after applying this patch from >> > >> > libavfilter/vf_spp.c >> > libavfilter/x86/vf_spp.c >> > libavcodec/asvenc.c >> > libavcodec/avdct.c >> > libavcodec/avfft.c >> > libavcodec/dct.c >> > libavcodec/fdctdsp.c >> > libavcodec/fft_float.c >> > libavcodec/fft_init_table.c >> > libavcodec/idctdsp.c >> > libavcodec/jfdctfst.c >> > libavcodec/jfdctint.c >> > libavcodec/jrevdct.c >> > libavcodec/mpegaudiodsp.c >> > libavcodec/mpegvideo_enc.c >> > libavcodec/rdft.c >> > libavcodec/wmavoice.c >> > libavcodec/x86/dct_init.c >> > libavcodec/x86/fft_init.c >> > libavcodec/x86/mpegvideoenc.c >> > >> > It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. >> > This patch is also missing the schedule FF_API deprecation wrapper. >> > >> >> Is the noise acceptable if I just deprecate the functions? >> It wasn't before, but it should be much less now. >> > > An API we still use internally doesn't seem very deprecated to me. > Should get rid of it, then there won't be any warnings. > git grep av_fft_init | cut -d ':' -f 1 | uniq libavcodec/avfft.c libavcodec/avfft.h libavcodec/tests/fft.c git grep av_dct_init | cut -d ':' -f 1 | uniq libavcodec/avfft.c libavcodec/avfft.h libavcodec/tests/fft.c git grep av_rdft_init | cut -d ':' -f 1 | uniq fftools/ffplay.c libavcodec/avfft.c libavcodec/avfft.h libavcodec/tests/fft.c git grep av_mdct_init | cut -d ':' -f 1 | uniq libavcodec/avfft.c libavcodec/avfft.h libavcodec/tests/fft.c git grep av_tx_init | cut -d ':' -f 1 | uniq libavcodec/aacdec_template.c libavcodec/aacenc.c libavcodec/aacsbr_template.c libavcodec/ac3dec.c libavcodec/ac3enc_fixed.c libavcodec/ac3enc_float.c libavcodec/atrac1.c libavcodec/atrac3.c libavcodec/atrac3plusdec.c libavcodec/atrac9dec.c libavcodec/binkaudio.c libavcodec/cook.c libavcodec/dca_core.c libavcodec/dca_lbr.c libavcodec/dcaenc.c libavcodec/dolby_e.c libavcodec/hcadec.c libavcodec/imc.c libavcodec/nellymoserdec.c libavcodec/nellymoserenc.c libavcodec/on2avc.c libavcodec/opusdec_celt.c libavcodec/opusenc.c libavcodec/opusenc_psy.c libavcodec/qdm2.c libavcodec/qdmc.c libavcodec/siren.c libavcodec/twinvq.c libavcodec/vorbisdec.c libavcodec/vorbisenc.c libavcodec/wmadec.c libavcodec/wmaenc.c libavcodec/wmaprodec.c libavfilter/af_adrc.c libavfilter/af_afftdn.c libavfilter/af_afftfilt.c libavfilter/af_afir.c libavfilter/af_apsyclip.c libavfilter/af_arnndn.c libavfilter/af_aspectralstats.c libavfilter/af_atempo.c libavfilter/af_dialoguenhance.c libavfilter/af_firequalizer.c libavfilter/af_headphone.c libavfilter/af_sofalizer.c libavfilter/af_superequalizer.c libavfilter/af_surround.c libavfilter/afir_template.c libavfilter/asrc_afirsrc.c libavfilter/asrc_sinc.c libavfilter/avf_showcqt.c libavfilter/avf_showcwt.c libavfilter/avf_showfreqs.c libavfilter/avf_showspatial.c libavfilter/avf_showspectrum.c libavfilter/vaf_spectrumsynth.c libavfilter/vf_bm3d.c libavfilter/vf_convolve.c libavfilter/vf_fftdnoiz.c libavfilter/vf_fftfilt.c libavutil/tx.c libavutil/tx.h tests/checkasm/av_tx.c tests/checkasm/synth_filter.c ...I rest my case. This is getting deprecated as soon as we reach a consensus on what to mark as deprecated. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-18 11:52 ` Lynne @ 2023-02-18 13:15 ` James Almer 0 siblings, 0 replies; 16+ messages in thread From: James Almer @ 2023-02-18 13:15 UTC (permalink / raw) To: ffmpeg-devel On 2/18/2023 8:52 AM, Lynne wrote: > Feb 18, 2023, 01:00 by h.leppkes@gmail.com: > >> On Fri, Feb 17, 2023 at 7:45 PM Lynne <dev@lynne.ee> wrote: >> >>> >>> Feb 17, 2023, 18:08 by jamrial@gmail.com: >>> >>>> On 2/17/2023 1:54 PM, Lynne wrote: >>>> >>>>> This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. >>>>> >>>>> All filters and all codecs (except wmavoice) have been ported for the >>>>> lavu/tx API. >>>>> >>>>> The noise should be minimal. >>>>> >>>> >>>> It isn't. I'm getting more than two thousand lines of warnings after applying this patch from >>>> >>>> libavfilter/vf_spp.c >>>> libavfilter/x86/vf_spp.c >>>> libavcodec/asvenc.c >>>> libavcodec/avdct.c >>>> libavcodec/avfft.c >>>> libavcodec/dct.c >>>> libavcodec/fdctdsp.c >>>> libavcodec/fft_float.c >>>> libavcodec/fft_init_table.c >>>> libavcodec/idctdsp.c >>>> libavcodec/jfdctfst.c >>>> libavcodec/jfdctint.c >>>> libavcodec/jrevdct.c >>>> libavcodec/mpegaudiodsp.c >>>> libavcodec/mpegvideo_enc.c >>>> libavcodec/rdft.c >>>> libavcodec/wmavoice.c >>>> libavcodec/x86/dct_init.c >>>> libavcodec/x86/fft_init.c >>>> libavcodec/x86/mpegvideoenc.c >>>> >>>> It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. >>>> This patch is also missing the schedule FF_API deprecation wrapper. >>>> >>> >>> Is the noise acceptable if I just deprecate the functions? >>> It wasn't before, but it should be much less now. >>> >> >> An API we still use internally doesn't seem very deprecated to me. >> Should get rid of it, then there won't be any warnings. >> > > git grep av_fft_init | cut -d ':' -f 1 | uniq > libavcodec/avfft.c > libavcodec/avfft.h > libavcodec/tests/fft.c > > git grep av_dct_init | cut -d ':' -f 1 | uniq > libavcodec/avfft.c > libavcodec/avfft.h > libavcodec/tests/fft.c > > git grep av_rdft_init | cut -d ':' -f 1 | uniq > fftools/ffplay.c > libavcodec/avfft.c > libavcodec/avfft.h > libavcodec/tests/fft.c > > git grep av_mdct_init | cut -d ':' -f 1 | uniq > libavcodec/avfft.c > libavcodec/avfft.h > libavcodec/tests/fft.c > > git grep av_tx_init | cut -d ':' -f 1 | uniq > libavcodec/aacdec_template.c > libavcodec/aacenc.c > libavcodec/aacsbr_template.c > libavcodec/ac3dec.c > libavcodec/ac3enc_fixed.c > libavcodec/ac3enc_float.c > libavcodec/atrac1.c > libavcodec/atrac3.c > libavcodec/atrac3plusdec.c > libavcodec/atrac9dec.c > libavcodec/binkaudio.c > libavcodec/cook.c > libavcodec/dca_core.c > libavcodec/dca_lbr.c > libavcodec/dcaenc.c > libavcodec/dolby_e.c > libavcodec/hcadec.c > libavcodec/imc.c > libavcodec/nellymoserdec.c > libavcodec/nellymoserenc.c > libavcodec/on2avc.c > libavcodec/opusdec_celt.c > libavcodec/opusenc.c > libavcodec/opusenc_psy.c > libavcodec/qdm2.c > libavcodec/qdmc.c > libavcodec/siren.c > libavcodec/twinvq.c > libavcodec/vorbisdec.c > libavcodec/vorbisenc.c > libavcodec/wmadec.c > libavcodec/wmaenc.c > libavcodec/wmaprodec.c > libavfilter/af_adrc.c > libavfilter/af_afftdn.c > libavfilter/af_afftfilt.c > libavfilter/af_afir.c > libavfilter/af_apsyclip.c > libavfilter/af_arnndn.c > libavfilter/af_aspectralstats.c > libavfilter/af_atempo.c > libavfilter/af_dialoguenhance.c > libavfilter/af_firequalizer.c > libavfilter/af_headphone.c > libavfilter/af_sofalizer.c > libavfilter/af_superequalizer.c > libavfilter/af_surround.c > libavfilter/afir_template.c > libavfilter/asrc_afirsrc.c > libavfilter/asrc_sinc.c > libavfilter/avf_showcqt.c > libavfilter/avf_showcwt.c > libavfilter/avf_showfreqs.c > libavfilter/avf_showspatial.c > libavfilter/avf_showspectrum.c > libavfilter/vaf_spectrumsynth.c > libavfilter/vf_bm3d.c > libavfilter/vf_convolve.c > libavfilter/vf_fftdnoiz.c > libavfilter/vf_fftfilt.c > libavutil/tx.c > libavutil/tx.h > tests/checkasm/av_tx.c > tests/checkasm/synth_filter.c > > ...I rest my case. This is getting deprecated as soon as we reach a consensus > on what to mark as deprecated. git grep avcodec_dct_init | cut -d ':' -f 1 | uniq doc/APIchanges libavcodec/avdct.c libavcodec/avdct.h libavfilter/vf_spp.c Also, just deprecate the functions, not the structs. Said structs are being used in places like wmavoice and mpegaudiodsp using the internal versions of this API. so if you intention is to remove the entire fft/dct/rdft/mdct code from lavc, not just the public interface, then they need to be ported to lavu tx eventually. You also need to silence the warnings in the tests with the FF_{ENA,DISA}BLE_DEPRECATION_WARNINGS pragmas, and add a new FF_API_ deprecation wrapper where corresponds. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <NOVgRri--3-9@lynne.ee-NOVgVXs----9>]
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct [not found] ` <NOVgRri--3-9@lynne.ee-NOVgVXs----9> @ 2023-02-18 12:49 ` Lynne 2023-02-18 13:32 ` James Almer 0 siblings, 1 reply; 16+ messages in thread From: Lynne @ 2023-02-18 12:49 UTC (permalink / raw) To: FFmpeg development discussions and patches [-- Attachment #1: Type: text/plain, Size: 1536 bytes --] Feb 17, 2023, 19:45 by dev@lynne.ee: > Feb 17, 2023, 18:08 by jamrial@gmail.com: > >> On 2/17/2023 1:54 PM, Lynne wrote: >> >>> This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. >>> >>> All filters and all codecs (except wmavoice) have been ported for the >>> lavu/tx API. >>> >>> The noise should be minimal. >>> >> >> It isn't. I'm getting more than two thousand lines of warnings after applying this patch from >> >> libavfilter/vf_spp.c >> libavfilter/x86/vf_spp.c >> libavcodec/asvenc.c >> libavcodec/avdct.c >> libavcodec/avfft.c >> libavcodec/dct.c >> libavcodec/fdctdsp.c >> libavcodec/fft_float.c >> libavcodec/fft_init_table.c >> libavcodec/idctdsp.c >> libavcodec/jfdctfst.c >> libavcodec/jfdctint.c >> libavcodec/jrevdct.c >> libavcodec/mpegaudiodsp.c >> libavcodec/mpegvideo_enc.c >> libavcodec/rdft.c >> libavcodec/wmavoice.c >> libavcodec/x86/dct_init.c >> libavcodec/x86/fft_init.c >> libavcodec/x86/mpegvideoenc.c >> >> It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. >> This patch is also missing the schedule FF_API deprecation wrapper. >> > > Is the noise acceptable if I just deprecate the functions? > It wasn't before, but it should be much less now. > Version 2 attached. Deprecates only the init functions (which must always be used, therefore the entire API is deprecated). Included FF_API defines, and bumped minor. [-- Attachment #2: v2-0001-PATCH-lavc-deprecate-avcodec_dct-av_fft-av_dct-av.patch --] [-- Type: text/x-diff, Size: 4501 bytes --] From 3d6e89ba864622855468ea1874511acaf094ef97 Mon Sep 17 00:00:00 2001 From: Lynne <dev@lynne.ee> Date: Sat, 18 Feb 2023 13:43:39 +0100 Subject: [PATCH v2] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct This effectively reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. --- doc/APIchanges | 4 ++++ libavcodec/avdct.h | 6 ++++++ libavcodec/avfft.h | 9 +++++++++ libavcodec/version.h | 2 +- libavcodec/version_major.h | 2 ++ 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index 29161e30bf..7e3e3767d2 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,10 @@ The last version increases of all libraries were on 2023-02-09 API changes, most recent first: +2023-02-17 - xxxxxxxxxx - lavc 60.3.100 - avdct.h avfft.h + Deprecate avcodec_dct, av_dct, av_rdft, av_fft and av_mdct. + Replaced by libavutil/tx.h + 2023-02-16 - xxxxxxxxxx - lavf 60.2.100 - avformat.h Deprecate AVFormatContext io_close callback. The superior io_close2 callback should be used instead. diff --git a/libavcodec/avdct.h b/libavcodec/avdct.h index 6411fab6f6..582019f646 100644 --- a/libavcodec/avdct.h +++ b/libavcodec/avdct.h @@ -19,6 +19,10 @@ #ifndef AVCODEC_AVDCT_H #define AVCODEC_AVDCT_H +#include "libavutil/attributes.h" +#include "version_major.h" +#if FF_API_AVDCT + #include "libavutil/opt.h" /** @@ -80,9 +84,11 @@ typedef struct AVDCT { * * To free it use av_free() */ +attribute_deprecated AVDCT *avcodec_dct_alloc(void); int avcodec_dct_init(AVDCT *); const AVClass *avcodec_dct_get_class(void); +#endif /* FF_API_AVDCT */ #endif /* AVCODEC_AVDCT_H */ diff --git a/libavcodec/avfft.h b/libavcodec/avfft.h index 0c0f9b8d8d..a1548ff474 100644 --- a/libavcodec/avfft.h +++ b/libavcodec/avfft.h @@ -19,6 +19,10 @@ #ifndef AVCODEC_AVFFT_H #define AVCODEC_AVFFT_H +#include "libavutil/attributes.h" +#include "version_major.h" +#if FF_API_AVFFT + /** * @file * @ingroup lavc_fft @@ -45,6 +49,7 @@ typedef struct FFTContext FFTContext; * @param nbits log2 of the length of the input array * @param inverse if 0 perform the forward transform, if 1 perform the inverse */ +attribute_deprecated FFTContext *av_fft_init(int nbits, int inverse); /** @@ -60,6 +65,7 @@ void av_fft_calc(FFTContext *s, FFTComplex *z); void av_fft_end(FFTContext *s); +attribute_deprecated FFTContext *av_mdct_init(int nbits, int inverse, double scale); void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input); @@ -82,6 +88,7 @@ typedef struct RDFTContext RDFTContext; * @param nbits log2 of the length of the input array * @param trans the type of transform */ +attribute_deprecated RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans); void av_rdft_calc(RDFTContext *s, FFTSample *data); void av_rdft_end(RDFTContext *s); @@ -107,6 +114,7 @@ enum DCTTransformType { * * @note the first element of the input of DST-I is ignored */ +attribute_deprecated DCTContext *av_dct_init(int nbits, enum DCTTransformType type); void av_dct_calc(DCTContext *s, FFTSample *data); void av_dct_end (DCTContext *s); @@ -115,4 +123,5 @@ void av_dct_end (DCTContext *s); * @} */ +#endif /* FF_API_AVFFT */ #endif /* AVCODEC_AVFFT_H */ diff --git a/libavcodec/version.h b/libavcodec/version.h index 0550d7b0d8..43794ea588 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 2 +#define LIBAVCODEC_VERSION_MINOR 3 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h index c2f118b262..59cbc15537 100644 --- a/libavcodec/version_major.h +++ b/libavcodec/version_major.h @@ -45,6 +45,8 @@ #define FF_API_AVCODEC_CHROMA_POS (LIBAVCODEC_VERSION_MAJOR < 61) #define FF_API_VT_HWACCEL_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 61) #define FF_API_AVCTX_FRAME_NUMBER (LIBAVCODEC_VERSION_MAJOR < 61) +#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 61) +#define FF_API_AVDCT (LIBAVCODEC_VERSION_MAJOR < 61) // reminder to remove CrystalHD decoders on next major bump #define FF_CODEC_CRYSTAL_HD (LIBAVCODEC_VERSION_MAJOR < 61) -- 2.39.2 [-- Attachment #3: Type: text/plain, Size: 251 bytes --] _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-18 12:49 ` Lynne @ 2023-02-18 13:32 ` James Almer 2023-02-18 13:45 ` Lynne 0 siblings, 1 reply; 16+ messages in thread From: James Almer @ 2023-02-18 13:32 UTC (permalink / raw) To: ffmpeg-devel On 2/18/2023 9:49 AM, Lynne wrote: > Feb 17, 2023, 19:45 by dev@lynne.ee: > >> Feb 17, 2023, 18:08 by jamrial@gmail.com: >> >>> On 2/17/2023 1:54 PM, Lynne wrote: >>> >>>> This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. >>>> >>>> All filters and all codecs (except wmavoice) have been ported for the >>>> lavu/tx API. >>>> >>>> The noise should be minimal. >>>> >>> >>> It isn't. I'm getting more than two thousand lines of warnings after applying this patch from >>> >>> libavfilter/vf_spp.c >>> libavfilter/x86/vf_spp.c >>> libavcodec/asvenc.c >>> libavcodec/avdct.c >>> libavcodec/avfft.c >>> libavcodec/dct.c >>> libavcodec/fdctdsp.c >>> libavcodec/fft_float.c >>> libavcodec/fft_init_table.c >>> libavcodec/idctdsp.c >>> libavcodec/jfdctfst.c >>> libavcodec/jfdctint.c >>> libavcodec/jrevdct.c >>> libavcodec/mpegaudiodsp.c >>> libavcodec/mpegvideo_enc.c >>> libavcodec/rdft.c >>> libavcodec/wmavoice.c >>> libavcodec/x86/dct_init.c >>> libavcodec/x86/fft_init.c >>> libavcodec/x86/mpegvideoenc.c >>> >>> It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. >>> This patch is also missing the schedule FF_API deprecation wrapper. >>> >> >> Is the noise acceptable if I just deprecate the functions? >> It wasn't before, but it should be much less now. >> > > Version 2 attached. > Deprecates only the init functions (which must always be used, therefore > the entire API is deprecated). You should deprecate all the functions, not just the init ones, even if the rest depend on them. And add a "@deprecated use AVTXContext from libavutil/tx.h" line or similar in the doxy for at least the init or alloc functions to point library users to the replacement API. > Included FF_API defines, and bumped minor. > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-18 13:32 ` James Almer @ 2023-02-18 13:45 ` Lynne 2023-02-18 13:58 ` James Almer 0 siblings, 1 reply; 16+ messages in thread From: Lynne @ 2023-02-18 13:45 UTC (permalink / raw) To: FFmpeg development discussions and patches [-- Attachment #1: Type: text/plain, Size: 2086 bytes --] Feb 18, 2023, 14:32 by jamrial@gmail.com: > On 2/18/2023 9:49 AM, Lynne wrote: > >> Feb 17, 2023, 19:45 by dev@lynne.ee: >> >>> Feb 17, 2023, 18:08 by jamrial@gmail.com: >>> >>>> On 2/17/2023 1:54 PM, Lynne wrote: >>>> >>>>> This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. >>>>> >>>>> All filters and all codecs (except wmavoice) have been ported for the >>>>> lavu/tx API. >>>>> >>>>> The noise should be minimal. >>>>> >>>> >>>> It isn't. I'm getting more than two thousand lines of warnings after applying this patch from >>>> >>>> libavfilter/vf_spp.c >>>> libavfilter/x86/vf_spp.c >>>> libavcodec/asvenc.c >>>> libavcodec/avdct.c >>>> libavcodec/avfft.c >>>> libavcodec/dct.c >>>> libavcodec/fdctdsp.c >>>> libavcodec/fft_float.c >>>> libavcodec/fft_init_table.c >>>> libavcodec/idctdsp.c >>>> libavcodec/jfdctfst.c >>>> libavcodec/jfdctint.c >>>> libavcodec/jrevdct.c >>>> libavcodec/mpegaudiodsp.c >>>> libavcodec/mpegvideo_enc.c >>>> libavcodec/rdft.c >>>> libavcodec/wmavoice.c >>>> libavcodec/x86/dct_init.c >>>> libavcodec/x86/fft_init.c >>>> libavcodec/x86/mpegvideoenc.c >>>> >>>> It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. >>>> This patch is also missing the schedule FF_API deprecation wrapper. >>>> >>> >>> Is the noise acceptable if I just deprecate the functions? >>> It wasn't before, but it should be much less now. >>> >> >> Version 2 attached. >> Deprecates only the init functions (which must always be used, therefore >> the entire API is deprecated). >> > > You should deprecate all the functions, not just the init ones, even if the rest depend on them. And add a "@deprecated use AVTXContext from libavutil/tx.h" line or similar in the doxy for at least the init or alloc functions to point library users to the replacement API. > Fair enough, deprecated all functions, added disable/enable warnings to tests and vf_spp, and added the doxy note. Attached v3. [-- Attachment #2: v3-0001-PATCH-lavc-deprecate-avcodec_dct-av_fft-av_dct-av.patch --] [-- Type: text/x-diff, Size: 7111 bytes --] From b0fd5e0a67f884c1259c1aee5dd38e457c6ad3fc Mon Sep 17 00:00:00 2001 From: Lynne <dev@lynne.ee> Date: Sat, 18 Feb 2023 13:43:39 +0100 Subject: [PATCH v3] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct This effectively reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. --- doc/APIchanges | 4 ++++ libavcodec/avdct.h | 9 +++++++++ libavcodec/avfft.h | 25 +++++++++++++++++++++++++ libavcodec/tests/fft.c | 4 ++++ libavcodec/version.h | 2 +- libavcodec/version_major.h | 2 ++ libavfilter/vf_spp.c | 6 ++++++ 7 files changed, 51 insertions(+), 1 deletion(-) diff --git a/doc/APIchanges b/doc/APIchanges index 29161e30bf..7e3e3767d2 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -2,6 +2,10 @@ The last version increases of all libraries were on 2023-02-09 API changes, most recent first: +2023-02-17 - xxxxxxxxxx - lavc 60.3.100 - avdct.h avfft.h + Deprecate avcodec_dct, av_dct, av_rdft, av_fft and av_mdct. + Replaced by libavutil/tx.h + 2023-02-16 - xxxxxxxxxx - lavf 60.2.100 - avformat.h Deprecate AVFormatContext io_close callback. The superior io_close2 callback should be used instead. diff --git a/libavcodec/avdct.h b/libavcodec/avdct.h index 6411fab6f6..fb3ae3a273 100644 --- a/libavcodec/avdct.h +++ b/libavcodec/avdct.h @@ -19,6 +19,10 @@ #ifndef AVCODEC_AVDCT_H #define AVCODEC_AVDCT_H +#include "libavutil/attributes.h" +#include "version_major.h" +#if FF_API_AVDCT + #include "libavutil/opt.h" /** @@ -79,10 +83,15 @@ typedef struct AVDCT { * configuring it with AVOptions. * * To free it use av_free() + * @deprecated use AVTXContext from libavutil/tx.h */ +attribute_deprecated AVDCT *avcodec_dct_alloc(void); +attribute_deprecated int avcodec_dct_init(AVDCT *); +attribute_deprecated const AVClass *avcodec_dct_get_class(void); +#endif /* FF_API_AVDCT */ #endif /* AVCODEC_AVDCT_H */ diff --git a/libavcodec/avfft.h b/libavcodec/avfft.h index 0c0f9b8d8d..6401833089 100644 --- a/libavcodec/avfft.h +++ b/libavcodec/avfft.h @@ -19,6 +19,10 @@ #ifndef AVCODEC_AVFFT_H #define AVCODEC_AVFFT_H +#include "libavutil/attributes.h" +#include "version_major.h" +#if FF_API_AVFFT + /** * @file * @ingroup lavc_fft @@ -44,26 +48,38 @@ typedef struct FFTContext FFTContext; * Set up a complex FFT. * @param nbits log2 of the length of the input array * @param inverse if 0 perform the forward transform, if 1 perform the inverse + * @deprecated use AVTXContext from libavutil/tx.h */ +attribute_deprecated FFTContext *av_fft_init(int nbits, int inverse); /** * Do the permutation needed BEFORE calling ff_fft_calc(). + * @deprecated use AVTXContext from libavutil/tx.h */ +attribute_deprecated void av_fft_permute(FFTContext *s, FFTComplex *z); /** * Do a complex FFT with the parameters defined in av_fft_init(). The * input data must be permuted before. No 1.0/sqrt(n) normalization is done. + * @deprecated use AVTXContext from libavutil/tx.h */ +attribute_deprecated void av_fft_calc(FFTContext *s, FFTComplex *z); +attribute_deprecated void av_fft_end(FFTContext *s); +attribute_deprecated FFTContext *av_mdct_init(int nbits, int inverse, double scale); +attribute_deprecated void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); +attribute_deprecated void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input); +attribute_deprecated void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); +attribute_deprecated void av_mdct_end(FFTContext *s); /* Real Discrete Fourier Transform */ @@ -81,9 +97,13 @@ typedef struct RDFTContext RDFTContext; * Set up a real FFT. * @param nbits log2 of the length of the input array * @param trans the type of transform + * @deprecated use AVTXContext from libavutil/tx.h */ +attribute_deprecated RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans); +attribute_deprecated void av_rdft_calc(RDFTContext *s, FFTSample *data); +attribute_deprecated void av_rdft_end(RDFTContext *s); /* Discrete Cosine Transform */ @@ -106,13 +126,18 @@ enum DCTTransformType { * @param type the type of transform * * @note the first element of the input of DST-I is ignored + * @deprecated use AVTXContext from libavutil/tx.h */ +attribute_deprecated DCTContext *av_dct_init(int nbits, enum DCTTransformType type); +attribute_deprecated void av_dct_calc(DCTContext *s, FFTSample *data); +attribute_deprecated void av_dct_end (DCTContext *s); /** * @} */ +#endif /* FF_API_AVFFT */ #endif /* AVCODEC_AVFFT_H */ diff --git a/libavcodec/tests/fft.c b/libavcodec/tests/fft.c index 163f3e89c4..a9ea457bc9 100644 --- a/libavcodec/tests/fft.c +++ b/libavcodec/tests/fft.c @@ -18,6 +18,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +FF_DISABLE_DEPRECATION_WARNINGS + /** * @file * FFT and MDCT tests. @@ -675,3 +677,5 @@ cleanup: return !!err; } + +FF_ENABLE_DEPRECATION_WARNINGS diff --git a/libavcodec/version.h b/libavcodec/version.h index 0550d7b0d8..43794ea588 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "version_major.h" -#define LIBAVCODEC_VERSION_MINOR 2 +#define LIBAVCODEC_VERSION_MINOR 3 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h index c2f118b262..59cbc15537 100644 --- a/libavcodec/version_major.h +++ b/libavcodec/version_major.h @@ -45,6 +45,8 @@ #define FF_API_AVCODEC_CHROMA_POS (LIBAVCODEC_VERSION_MAJOR < 61) #define FF_API_VT_HWACCEL_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 61) #define FF_API_AVCTX_FRAME_NUMBER (LIBAVCODEC_VERSION_MAJOR < 61) +#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 61) +#define FF_API_AVDCT (LIBAVCODEC_VERSION_MAJOR < 61) // reminder to remove CrystalHD decoders on next major bump #define FF_CODEC_CRYSTAL_HD (LIBAVCODEC_VERSION_MAJOR < 61) diff --git a/libavfilter/vf_spp.c b/libavfilter/vf_spp.c index 8442bcc597..5535e4fcf6 100644 --- a/libavfilter/vf_spp.c +++ b/libavfilter/vf_spp.c @@ -47,7 +47,9 @@ enum mode { static const AVClass *child_class_iterate(void **iter) { +FF_DISABLE_DEPRECATION_WARNINGS const AVClass *c = *iter ? NULL : avcodec_dct_get_class(); +FF_ENABLE_DEPRECATION_WARNINGS *iter = (void*)(uintptr_t)c; return c; } @@ -341,7 +343,9 @@ static int config_input(AVFilterLink *inlink) } av_opt_set_int(s->dct, "bits_per_sample", bps, 0); +FF_DISABLE_DEPRECATION_WARNINGS avcodec_dct_init(s->dct); +FF_ENABLE_DEPRECATION_WARNINGS #if ARCH_X86 ff_spp_init_x86(s); @@ -458,7 +462,9 @@ static av_cold int preinit(AVFilterContext *ctx) { SPPContext *s = ctx->priv; +FF_DISABLE_DEPRECATION_WARNINGS s->dct = avcodec_dct_alloc(); +FF_ENABLE_DEPRECATION_WARNINGS if (!s->dct) return AVERROR(ENOMEM); -- 2.39.2 [-- Attachment #3: Type: text/plain, Size: 251 bytes --] _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-18 13:45 ` Lynne @ 2023-02-18 13:58 ` James Almer 2023-02-18 14:53 ` Lynne [not found] ` <NO_00XT--3-9@lynne.ee-NO_04wO----9> 0 siblings, 2 replies; 16+ messages in thread From: James Almer @ 2023-02-18 13:58 UTC (permalink / raw) To: ffmpeg-devel On 2/18/2023 10:45 AM, Lynne wrote: > Feb 18, 2023, 14:32 by jamrial@gmail.com: > >> On 2/18/2023 9:49 AM, Lynne wrote: >> >>> Feb 17, 2023, 19:45 by dev@lynne.ee: >>> >>>> Feb 17, 2023, 18:08 by jamrial@gmail.com: >>>> >>>>> On 2/17/2023 1:54 PM, Lynne wrote: >>>>> >>>>>> This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. >>>>>> >>>>>> All filters and all codecs (except wmavoice) have been ported for the >>>>>> lavu/tx API. >>>>>> >>>>>> The noise should be minimal. >>>>>> >>>>> >>>>> It isn't. I'm getting more than two thousand lines of warnings after applying this patch from >>>>> >>>>> libavfilter/vf_spp.c >>>>> libavfilter/x86/vf_spp.c >>>>> libavcodec/asvenc.c >>>>> libavcodec/avdct.c >>>>> libavcodec/avfft.c >>>>> libavcodec/dct.c >>>>> libavcodec/fdctdsp.c >>>>> libavcodec/fft_float.c >>>>> libavcodec/fft_init_table.c >>>>> libavcodec/idctdsp.c >>>>> libavcodec/jfdctfst.c >>>>> libavcodec/jfdctint.c >>>>> libavcodec/jrevdct.c >>>>> libavcodec/mpegaudiodsp.c >>>>> libavcodec/mpegvideo_enc.c >>>>> libavcodec/rdft.c >>>>> libavcodec/wmavoice.c >>>>> libavcodec/x86/dct_init.c >>>>> libavcodec/x86/fft_init.c >>>>> libavcodec/x86/mpegvideoenc.c >>>>> >>>>> It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. >>>>> This patch is also missing the schedule FF_API deprecation wrapper. >>>>> >>>> >>>> Is the noise acceptable if I just deprecate the functions? >>>> It wasn't before, but it should be much less now. >>>> >>> >>> Version 2 attached. >>> Deprecates only the init functions (which must always be used, therefore >>> the entire API is deprecated). >>> >> >> You should deprecate all the functions, not just the init ones, even if the rest depend on them. And add a "@deprecated use AVTXContext from libavutil/tx.h" line or similar in the doxy for at least the init or alloc functions to point library users to the replacement API. >> > > Fair enough, deprecated all functions, added disable/enable warnings to tests > and vf_spp, and added the doxy note. > Attached v3. vf_spp should be ported to tx, not the avdct functions silenced. You're just scheduling a compilation failure as is. What is the plan for the internal version of all this lavc code? Is it going to be removed and wmavoice/mpegaudiodsp/etc ported to tx? Because it depends on structs defined in the public headers you're scheduling to be removed. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-18 13:58 ` James Almer @ 2023-02-18 14:53 ` Lynne 2023-02-20 15:34 ` Anton Khirnov [not found] ` <NO_00XT--3-9@lynne.ee-NO_04wO----9> 1 sibling, 1 reply; 16+ messages in thread From: Lynne @ 2023-02-18 14:53 UTC (permalink / raw) To: FFmpeg development discussions and patches Feb 18, 2023, 14:58 by jamrial@gmail.com: > On 2/18/2023 10:45 AM, Lynne wrote: > >> Feb 18, 2023, 14:32 by jamrial@gmail.com: >> >>> On 2/18/2023 9:49 AM, Lynne wrote: >>> >>>> Feb 17, 2023, 19:45 by dev@lynne.ee: >>>> >>>>> Feb 17, 2023, 18:08 by jamrial@gmail.com: >>>>> >>>>>> On 2/17/2023 1:54 PM, Lynne wrote: >>>>>> >>>>>>> This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. >>>>>>> >>>>>>> All filters and all codecs (except wmavoice) have been ported for the >>>>>>> lavu/tx API. >>>>>>> >>>>>>> The noise should be minimal. >>>>>>> >>>>>> >>>>>> It isn't. I'm getting more than two thousand lines of warnings after applying this patch from >>>>>> >>>>>> libavfilter/vf_spp.c >>>>>> libavfilter/x86/vf_spp.c >>>>>> libavcodec/asvenc.c >>>>>> libavcodec/avdct.c >>>>>> libavcodec/avfft.c >>>>>> libavcodec/dct.c >>>>>> libavcodec/fdctdsp.c >>>>>> libavcodec/fft_float.c >>>>>> libavcodec/fft_init_table.c >>>>>> libavcodec/idctdsp.c >>>>>> libavcodec/jfdctfst.c >>>>>> libavcodec/jfdctint.c >>>>>> libavcodec/jrevdct.c >>>>>> libavcodec/mpegaudiodsp.c >>>>>> libavcodec/mpegvideo_enc.c >>>>>> libavcodec/rdft.c >>>>>> libavcodec/wmavoice.c >>>>>> libavcodec/x86/dct_init.c >>>>>> libavcodec/x86/fft_init.c >>>>>> libavcodec/x86/mpegvideoenc.c >>>>>> >>>>>> It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. >>>>>> This patch is also missing the schedule FF_API deprecation wrapper. >>>>>> >>>>> >>>>> Is the noise acceptable if I just deprecate the functions? >>>>> It wasn't before, but it should be much less now. >>>>> >>>> >>>> Version 2 attached. >>>> Deprecates only the init functions (which must always be used, therefore >>>> the entire API is deprecated). >>>> >>> >>> You should deprecate all the functions, not just the init ones, even if the rest depend on them. And add a "@deprecated use AVTXContext from libavutil/tx.h" line or similar in the doxy for at least the init or alloc functions to point library users to the replacement API. >>> >> >> Fair enough, deprecated all functions, added disable/enable warnings to tests >> and vf_spp, and added the doxy note. >> Attached v3. >> > > vf_spp should be ported to tx, not the avdct functions silenced. You're just scheduling a compilation failure as is. > There's enough time to port it, a whole year in fact. > What is the plan for the internal version of all this lavc code? Is it going to be removed and wmavoice/mpegaudiodsp/etc ported to tx? Because it depends on structs defined in the public headers you're scheduling to be removed. > Yes, all internals will be removed when I port wmavoice. I have a DST-I and a DCT-I ready, but they're naive. They're still fast enough for wmavoice, but I went down looking for a faster way... _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-18 14:53 ` Lynne @ 2023-02-20 15:34 ` Anton Khirnov 2023-02-20 17:18 ` Lynne 0 siblings, 1 reply; 16+ messages in thread From: Anton Khirnov @ 2023-02-20 15:34 UTC (permalink / raw) To: FFmpeg development discussions and patches Quoting Lynne (2023-02-18 15:53:32) > Feb 18, 2023, 14:58 by jamrial@gmail.com: > > vf_spp should be ported to tx, not the avdct functions silenced. You're just scheduling a compilation failure as is. > There's enough time to port it, a whole year in fact. Past experience shows that it never works like this. It's either ported now or you're forcing somebody else to do it before the next bump. I vastly prefer the former. -- Anton Khirnov _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-20 15:34 ` Anton Khirnov @ 2023-02-20 17:18 ` Lynne 2023-02-20 17:22 ` Anton Khirnov 0 siblings, 1 reply; 16+ messages in thread From: Lynne @ 2023-02-20 17:18 UTC (permalink / raw) To: FFmpeg development discussions and patches Feb 20, 2023, 16:34 by anton@khirnov.net: > Quoting Lynne (2023-02-18 15:53:32) > >> Feb 18, 2023, 14:58 by jamrial@gmail.com: >> > vf_spp should be ported to tx, not the avdct functions silenced. You're just scheduling a compilation failure as is. >> There's enough time to port it, a whole year in fact. >> > > Past experience shows that it never works like this. It's either ported > now or you're forcing somebody else to do it before the next bump. > I vastly prefer the former. > You haven't even looked at the API, have you? I'm going to be the one to fix it. I still intend to push this before the release is made. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-20 17:18 ` Lynne @ 2023-02-20 17:22 ` Anton Khirnov 2023-02-20 17:35 ` Lynne 0 siblings, 1 reply; 16+ messages in thread From: Anton Khirnov @ 2023-02-20 17:22 UTC (permalink / raw) To: FFmpeg development discussions and patches Quoting Lynne (2023-02-20 18:18:40) > Feb 20, 2023, 16:34 by anton@khirnov.net: > > > Quoting Lynne (2023-02-18 15:53:32) > > > >> Feb 18, 2023, 14:58 by jamrial@gmail.com: > >> > vf_spp should be ported to tx, not the avdct functions silenced. You're just scheduling a compilation failure as is. > >> There's enough time to port it, a whole year in fact. > >> > > > > Past experience shows that it never works like this. It's either ported > > now or you're forcing somebody else to do it before the next bump. > > I vastly prefer the former. > > > > You haven't even looked at the API, have you? > I'm going to be the one to fix it. > I still intend to push this before the release is made. The release was branched already. No API changes can be made in the release branch. -- Anton Khirnov _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct 2023-02-20 17:22 ` Anton Khirnov @ 2023-02-20 17:35 ` Lynne 0 siblings, 0 replies; 16+ messages in thread From: Lynne @ 2023-02-20 17:35 UTC (permalink / raw) To: FFmpeg development discussions and patches Feb 20, 2023, 18:23 by anton@khirnov.net: > Quoting Lynne (2023-02-20 18:18:40) > >> Feb 20, 2023, 16:34 by anton@khirnov.net: >> >> > Quoting Lynne (2023-02-18 15:53:32) >> > >> >> Feb 18, 2023, 14:58 by jamrial@gmail.com: >> >> > vf_spp should be ported to tx, not the avdct functions silenced. You're just scheduling a compilation failure as is. >> >> There's enough time to port it, a whole year in fact. >> >> >> > >> > Past experience shows that it never works like this. It's either ported >> > now or you're forcing somebody else to do it before the next bump. >> > I vastly prefer the former. >> > >> >> You haven't even looked at the API, have you? >> I'm going to be the one to fix it. >> I still intend to push this before the release is made. >> > > The release was branched already. No API changes can be made in the > release branch. > It's a deprecation, not an API change, Michael already said it's fine. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <NO_00XT--3-9@lynne.ee-NO_04wO----9>]
* Re: [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct [not found] ` <NO_00XT--3-9@lynne.ee-NO_04wO----9> @ 2023-02-19 18:47 ` Lynne 0 siblings, 0 replies; 16+ messages in thread From: Lynne @ 2023-02-19 18:47 UTC (permalink / raw) To: FFmpeg development discussions and patches Feb 18, 2023, 15:53 by dev@lynne.ee: > Feb 18, 2023, 14:58 by jamrial@gmail.com: > >> On 2/18/2023 10:45 AM, Lynne wrote: >> >>> Feb 18, 2023, 14:32 by jamrial@gmail.com: >>> >>>> On 2/18/2023 9:49 AM, Lynne wrote: >>>> >>>>> Feb 17, 2023, 19:45 by dev@lynne.ee: >>>>> >>>>>> Feb 17, 2023, 18:08 by jamrial@gmail.com: >>>>>> >>>>>>> On 2/17/2023 1:54 PM, Lynne wrote: >>>>>>> >>>>>>>> This reverts commit 26cb36f35746fe6ef53688b119852bfa6d555f62. >>>>>>>> >>>>>>>> All filters and all codecs (except wmavoice) have been ported for the >>>>>>>> lavu/tx API. >>>>>>>> >>>>>>>> The noise should be minimal. >>>>>>>> >>>>>>> >>>>>>> It isn't. I'm getting more than two thousand lines of warnings after applying this patch from >>>>>>> >>>>>>> libavfilter/vf_spp.c >>>>>>> libavfilter/x86/vf_spp.c >>>>>>> libavcodec/asvenc.c >>>>>>> libavcodec/avdct.c >>>>>>> libavcodec/avfft.c >>>>>>> libavcodec/dct.c >>>>>>> libavcodec/fdctdsp.c >>>>>>> libavcodec/fft_float.c >>>>>>> libavcodec/fft_init_table.c >>>>>>> libavcodec/idctdsp.c >>>>>>> libavcodec/jfdctfst.c >>>>>>> libavcodec/jfdctint.c >>>>>>> libavcodec/jrevdct.c >>>>>>> libavcodec/mpegaudiodsp.c >>>>>>> libavcodec/mpegvideo_enc.c >>>>>>> libavcodec/rdft.c >>>>>>> libavcodec/wmavoice.c >>>>>>> libavcodec/x86/dct_init.c >>>>>>> libavcodec/x86/fft_init.c >>>>>>> libavcodec/x86/mpegvideoenc.c >>>>>>> >>>>>>> It's not just wmavoice, there's also mpeg and jpeg stuff, and one filter. For the actual fft/dct/rdft/mdct source files, you should use the deprecation warning pragmas to silence them, but the other modules need to be ported. >>>>>>> This patch is also missing the schedule FF_API deprecation wrapper. >>>>>>> >>>>>> >>>>>> Is the noise acceptable if I just deprecate the functions? >>>>>> It wasn't before, but it should be much less now. >>>>>> >>>>> >>>>> Version 2 attached. >>>>> Deprecates only the init functions (which must always be used, therefore >>>>> the entire API is deprecated). >>>>> >>>> >>>> You should deprecate all the functions, not just the init ones, even if the rest depend on them. And add a "@deprecated use AVTXContext from libavutil/tx.h" line or similar in the doxy for at least the init or alloc functions to point library users to the replacement API. >>>> >>> >>> Fair enough, deprecated all functions, added disable/enable warnings to tests >>> and vf_spp, and added the doxy note. >>> Attached v3. >>> >> >> vf_spp should be ported to tx, not the avdct functions silenced. You're just scheduling a compilation failure as is. >> > > There's enough time to port it, a whole year in fact. > > >> What is the plan for the internal version of all this lavc code? Is it going to be removed and wmavoice/mpegaudiodsp/etc ported to tx? Because it depends on structs defined in the public headers you're scheduling to be removed. >> > > Yes, all internals will be removed when I port wmavoice. > I have a DST-I and a DCT-I ready, but they're naive. > They're still fast enough for wmavoice, but I went down > looking for a faster way... > Ping. This should go in before the bump. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2023-02-20 17:35 UTC | newest] Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-02-17 16:54 [FFmpeg-devel] [PATCH] lavc: deprecate avcodec_dct, av_fft, av_dct, av_rdft and av_mdct Lynne 2023-02-17 17:08 ` James Almer 2023-02-17 18:45 ` Lynne 2023-02-17 23:59 ` Hendrik Leppkes 2023-02-18 11:52 ` Lynne 2023-02-18 13:15 ` James Almer [not found] ` <NOVgRri--3-9@lynne.ee-NOVgVXs----9> 2023-02-18 12:49 ` Lynne 2023-02-18 13:32 ` James Almer 2023-02-18 13:45 ` Lynne 2023-02-18 13:58 ` James Almer 2023-02-18 14:53 ` Lynne 2023-02-20 15:34 ` Anton Khirnov 2023-02-20 17:18 ` Lynne 2023-02-20 17:22 ` Anton Khirnov 2023-02-20 17:35 ` Lynne [not found] ` <NO_00XT--3-9@lynne.ee-NO_04wO----9> 2023-02-19 18:47 ` Lynne
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git