[FFmpeg-cvslog] lavc/avfft: deprecate the API
Lynne
git at videolan.org
Sat Sep 2 01:00:25 EEST 2023
ffmpeg | branch: master | Lynne <dev at lynne.ee> | Mon Jul 24 23:55:55 2023 +0200| [139e54911c8356729e5cfad4283da9abb90b53e0] | committer: Lynne
lavc/avfft: deprecate the API
This deprecates the currently unused API.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=139e54911c8356729e5cfad4283da9abb90b53e0
---
doc/APIchanges | 5 +++++
libavcodec/avfft.h | 31 +++++++++++++++++++++++++++++++
libavcodec/tests/fft.c | 6 ++++++
libavcodec/version.h | 2 +-
libavcodec/version_major.h | 2 ++
5 files changed, 45 insertions(+), 1 deletion(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index db3242b667..9032164d93 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -2,6 +2,11 @@ The last version increases of all libraries were on 2023-02-09
API changes, most recent first:
+2023-09-xx - xxxxxxxxxx - lavc 60.25.100 - avfft.h
+ The entire header will be deprecated and removed in two major bumps.
+ For a replacement to av_dct, av_rdft, av_fft and av_mdct, use
+ the new API from libavutil/tx.h.
+
2023-07-xx - xxxxxxxxxx - lavu 58.18.100 - tx.h
Add AV_TX_REAL_TO_REAL and AV_TX_REAL_TO_IMAGINARY
diff --git a/libavcodec/avfft.h b/libavcodec/avfft.h
index 0c0f9b8d8d..e3a0da1eb9 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,42 @@ 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 av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_FFT
*/
+attribute_deprecated
FFTContext *av_fft_init(int nbits, int inverse);
/**
* Do the permutation needed BEFORE calling ff_fft_calc().
+ * @deprecated without replacement
*/
+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 the av_tx_fn value returned by av_tx_init, which also does permutation
*/
+attribute_deprecated
void av_fft_calc(FFTContext *s, FFTComplex *z);
+attribute_deprecated
void av_fft_end(FFTContext *s);
+/**
+ * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_MDCT,
+ * with a flag of AV_TX_FULL_IMDCT for a replacement to av_imdct_calc.
+ */
+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 +101,14 @@ 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 av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_RDFT
*/
+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 +131,19 @@ enum DCTTransformType {
* @param type the type of transform
*
* @note the first element of the input of DST-I is ignored
+ *
+ * @deprecated use av_tx_init from libavutil/tx.h with an appropriate type of AV_TX_FLOAT_DCT
*/
+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..0f03c9232d 100644
--- a/libavcodec/tests/fft.c
+++ b/libavcodec/tests/fft.c
@@ -18,6 +18,10 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavutil/internal.h"
+
+FF_DISABLE_DEPRECATION_WARNINGS
+
/**
* @file
* FFT and MDCT tests.
@@ -675,3 +679,5 @@ cleanup:
return !!err;
}
+
+FF_ENABLE_DEPRECATION_WARNINGS
diff --git a/libavcodec/version.h b/libavcodec/version.h
index e0fe2eb7b8..a744e7469f 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
#include "version_major.h"
-#define LIBAVCODEC_VERSION_MINOR 24
+#define LIBAVCODEC_VERSION_MINOR 25
#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 95c5aec0c5..cfd0b5023e 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -50,6 +50,8 @@
#define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 61)
#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 61)
+#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62)
+
// reminder to remove CrystalHD decoders on next major bump
#define FF_CODEC_CRYSTAL_HD (LIBAVCODEC_VERSION_MAJOR < 61)
More information about the ffmpeg-cvslog
mailing list