[FFmpeg-devel] [PATCH] avcodec: deprecate sonic

J. Dekker jdek at itanimul.li
Thu Feb 29 14:47:06 EET 2024


This is an experimental and research codec of which ffmpeg is the only
encoder and decoder, development has stalled since 2013 and these files
don't exist in the wild.

Deprecate the encoders to be removed next major bump, decoders to be
removed one bump afterwards. We also disable the the encoders by default
in configure, the decoders should be disabled by default next bump.

Signed-off-by: J. Dekker <jdek at itanimul.li>
---

 Since this codec was added in 2004, there has only been one major
 non-maintenance, non-bugfix commit in 2013 (6026a5ad4f). That's 1 out of 107
 total commits touching this file.

 This isn't a matter of the codec being unpopular like a niche game codec or
 some other codec with media found in the wild, it's an experiment which didn't
 continue and we continue to pay the maintenance cost.

 Deprecating the codec instead of immediate removal gives a grace period for
 anyone interested to pick up the format and make it the most advanced audio
 codec in FFmpeg if they so wish. It encourages an action to be taken whether
 that be improving the codec, or leaving it to be removed later.

 configure                  | 3 +++
 libavcodec/version_major.h | 4 ++++
 2 files changed, 7 insertions(+)

diff --git a/configure b/configure
index bb5e630bad..f11c035796 100755
--- a/configure
+++ b/configure
@@ -4234,6 +4234,9 @@ do_random(){
     $action $(rand_list "$@" | awk "BEGIN { srand($random_seed) } \$1 == \"prob\" { prob = \$2; next } rand() < prob { print }")
 }
 
+# deprecated components (disabled by default)
+disable sonic_encoder sonic_ls_encoder
+
 for opt do
     optval="${opt#*=}"
     case "$opt" in
diff --git a/libavcodec/version_major.h b/libavcodec/version_major.h
index 161442df95..97e4c47d45 100644
--- a/libavcodec/version_major.h
+++ b/libavcodec/version_major.h
@@ -57,5 +57,9 @@
 
 // reminder to remove CrystalHD decoders on next major bump
 #define FF_CODEC_CRYSTAL_HD        (LIBAVCODEC_VERSION_MAJOR < 61)
+// reminder to remove Sonic Lossy/Lossless encoders on next major bump
+#define FF_CODEC_SONIC_ENC         (LIBAVCODEC_VERSION_MAJOR < 62)
+// reminder to remove Sonic decoder on next-next major bump
+#define FF_CODEC_SONIC_DEC         (LIBAVCODEC_VERSION_MAJOR < 63)
 
 #endif /* AVCODEC_VERSION_MAJOR_H */
-- 
2.43.2



More information about the ffmpeg-devel mailing list