[FFmpeg-devel] lavr: deprecate the entire library

Submitted by Rostislav Pehlivanov on Dec. 25, 2017, 5:53 p.m.

Details

Message ID 20171225175335.18183-1-atomnuker@gmail.com
State Superseded
Headers show

Commit Message

Rostislav Pehlivanov Dec. 25, 2017, 5:53 p.m.
Deprecate the entire library. Merged years ago to provide compatibility
with Libav, it remained unmaintained by the FFmpeg project and duplicated
functionality provided by libswresample.

In order to improve consistency and reduce attack surface, as well as to ease
burden on maintainers, it has been deprecated. Users of this library are asked
to migrate to libswresample, which, as well as providing more functionality,
is faster and has higher accuracy.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
---
 configure                  |  4 ++--
 doc/APIchanges             | 10 ++++++++++
 libavresample/avresample.h | 30 +++++++++++++++++++++++++-----
 3 files changed, 37 insertions(+), 7 deletions(-)

Comments

Rostislav Pehlivanov Dec. 26, 2017, 3:09 p.m.
On 25 December 2017 at 17:53, Rostislav Pehlivanov <atomnuker@gmail.com>
wrote:

> Deprecate the entire library. Merged years ago to provide compatibility
> with Libav, it remained unmaintained by the FFmpeg project and duplicated
> functionality provided by libswresample.
>
> In order to improve consistency and reduce attack surface, as well as to
> ease
> burden on maintainers, it has been deprecated. Users of this library are
> asked
> to migrate to libswresample, which, as well as providing more
> functionality,
> is faster and has higher accuracy.
>
> Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
> ---
>  configure                  |  4 ++--
>  doc/APIchanges             | 10 ++++++++++
>  libavresample/avresample.h | 30 +++++++++++++++++++++++++-----
>  3 files changed, 37 insertions(+), 7 deletions(-)
>
>

I'll push this tonight if there are no more objections.
Nicolas George Dec. 26, 2017, 3:47 p.m.
Rostislav Pehlivanov (2017-12-26):
> I'll push this tonight if there are no more objections.

Way too soon. For a patch that sensitive, leaving a week for people to
voice their concerns and raise objections that you may not have thought
of seems like a reasonable minimum. Plus we are on vacation period,
people do not read their mail as often. I'd say wait until
approximatively the fourth of January.

By the way, the change seems quite good to me.

Regards,
Rostislav Pehlivanov Dec. 26, 2017, 3:54 p.m.
On 26 December 2017 at 15:47, Nicolas George <george@nsup.org> wrote:

> Rostislav Pehlivanov (2017-12-26):
> > I'll push this tonight if there are no more objections.
>
> Way too soon. For a patch that sensitive, leaving a week for people to
> voice their concerns and raise objections that you may not have thought
> of seems like a reasonable minimum. Plus we are on vacation period,
> people do not read their mail as often. I'd say wait until
> approximatively the fourth of January.
>
> By the way, the change seems quite good to me.
>
> Regards,
>
> --
>   Nicolas George
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
>
This has been on the ML for over a month. No one disagreed then. No one was
on vacation then.
Nicolas George Dec. 26, 2017, 4:10 p.m.
Rostislav Pehlivanov (2017-12-26):
> This has been on the ML for over a month. No one disagreed then. No one was
> on vacation then.

I missed that. If the proposal was similar enough to what was sent
yesterday, then my objection does not stand, of course, sorry.

Regards,
Derek Buitenhuis Dec. 26, 2017, 4:34 p.m.
On 12/26/2017 3:54 PM, Rostislav Pehlivanov wrote:
> This has been on the ML for over a month. No one disagreed then. No one was
> on vacation then.

I agree with Nicholas, sending a new, different version of a patch, *on Christmas Day*,
and pushing on Boxing Day if nobody has objections, is not OK. It's sketchy as hell.

- Derek
Derek Buitenhuis Dec. 26, 2017, 4:35 p.m.
On 12/26/2017 4:10 PM, Nicolas George wrote:
> I missed that. If the proposal was similar enough to what was sent
> yesterday, then my objection does not stand, of course, sorry.

The version on the ML then was different, and it never reached consensus at
all on wording. I object for the reasons stated in my other mail.

- Derek
Rostislav Pehlivanov Dec. 26, 2017, 4:52 p.m.
On 26 December 2017 at 16:35, Derek Buitenhuis <derek.buitenhuis@gmail.com>
wrote:

> On 12/26/2017 4:10 PM, Nicolas George wrote:
> > I missed that. If the proposal was similar enough to what was sent
> > yesterday, then my objection does not stand, of course, sorry.
>
> The version on the ML then was different, and it never reached consensus at
> all on wording. I object for the reasons stated in my other mail.
>
> - Derek
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

You didn't even bother to read the patch? Your objections have been
addressed.
Since your new objection is invalid, I still intent to push it.

Either give a valid objection or I'm pushing tomorrow night.
James Almer Dec. 26, 2017, 4:56 p.m.
On 12/26/2017 1:52 PM, Rostislav Pehlivanov wrote:
> On 26 December 2017 at 16:35, Derek Buitenhuis <derek.buitenhuis@gmail.com>
> wrote:
> 
>> On 12/26/2017 4:10 PM, Nicolas George wrote:
>>> I missed that. If the proposal was similar enough to what was sent
>>> yesterday, then my objection does not stand, of course, sorry.
>>
>> The version on the ML then was different, and it never reached consensus at
>> all on wording. I object for the reasons stated in my other mail.
>>
>> - Derek
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
> 
> You didn't even bother to read the patch? Your objections have been
> addressed.
> Since your new objection is invalid, I still intent to push it.
> 
> Either give a valid objection or I'm pushing tomorrow night.

Don't give ultimatums, please.

There is no hurry to push this patch. It's not fixing any problem nor
being the solution to something that's blocked because of it. You can
wait a bit before pushing.
Derek Buitenhuis Dec. 26, 2017, 4:57 p.m.
On 12/26/2017 4:52 PM, Rostislav Pehlivanov wrote:
> You didn't even bother to read the patch? Your objections have been
> addressed.
> Since your new objection is invalid, I still intent to push it.

I said wording, which others had issues with, and were *not* addressed until
v2 of the patch yesterday. On Christmas day. I do not object to the patch,
but I massively object to the way it's being forced through over Christmas,
with very little time, when many are with their e.g. families.

> Either give a valid objection or I'm pushing tomorrow night.

Threat-style "give me an objection NOW or I'll push!!" over the holidays.
Delightful. Very professional.

It would be nice if this community moved away from the "aggressive asshole"
style of development, as seen here, but after so many years, that just
seems impossible. Normal people get pushed away by aggressive assholes.

A very warm and welcoming community we have here.

Happy Holidays!

- Derek
Nicolas George Dec. 26, 2017, 5:03 p.m.
Derek Buitenhuis (2017-12-26):
> It would be nice if this community moved away from the "aggressive asshole"
> style of development, as seen here, but after so many years, that just
> seems impossible. Normal people get pushed away by aggressive assholes.

I agree on the idea. Maybe start by not calling people "aggressive
assholes"? ;-)

Regards,
Derek Buitenhuis Dec. 26, 2017, 5:06 p.m.
On 12/26/2017 5:03 PM, Nicolas George wrote:
> Derek Buitenhuis (2017-12-26):
>> It would be nice if this community moved away from the "aggressive asshole"
>> style of development, as seen here, but after so many years, that just
>> seems impossible. Normal people get pushed away by aggressive assholes.
> 
> I agree on the idea. Maybe start by not calling people "aggressive
> assholes"? ;-)

Very good point; I wrote that in frustration.

I apologize.

- Derek
Rostislav Pehlivanov Dec. 26, 2017, 6:11 p.m.
On 26 December 2017 at 16:57, Derek Buitenhuis <derek.buitenhuis@gmail.com>
wrote:

> On 12/26/2017 4:52 PM, Rostislav Pehlivanov wrote:
> > You didn't even bother to read the patch? Your objections have been
> > addressed.
> > Since your new objection is invalid, I still intent to push it.
>
> I said wording, which others had issues with, and were *not* addressed
> until
> v2 of the patch yesterday. On Christmas day. I do not object to the patch,
> but I massively object to the way it's being forced through over Christmas,
> with very little time, when many are with their e.g. families.
>
> > Either give a valid objection or I'm pushing tomorrow night.
>
> Threat-style "give me an objection NOW or I'll push!!" over the holidays.
> Delightful. Very professional.
>
> It would be nice if this community moved away from the "aggressive asshole"
> style of development, as seen here, but after so many years, that just
> seems impossible. Normal people get pushed away by aggressive assholes.
>
> A very warm and welcoming community we have here.
>
> Happy Holidays!
>
> - Derek
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

Fine, I'll wait
Derek Buitenhuis Dec. 28, 2017, 4:15 p.m.
On 12/25/2017 5:53 PM, Rostislav Pehlivanov wrote:
> Deprecate the entire library. Merged years ago to provide compatibility
> with Libav, it remained unmaintained by the FFmpeg project and duplicated
> functionality provided by libswresample.
> 
> In order to improve consistency and reduce attack surface, as well as to ease
> burden on maintainers, it has been deprecated. Users of this library are asked
> to migrate to libswresample, which, as well as providing more functionality,
> is faster and has higher accuracy.
> 
> Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
> ---
>  configure                  |  4 ++--
>  doc/APIchanges             | 10 ++++++++++
>  libavresample/avresample.h | 30 +++++++++++++++++++++++++-----
>  3 files changed, 37 insertions(+), 7 deletions(-)

[...]

> +2017-xx-xx - xxxxxxx - lavr 4.0.0 - avresample.h
> +  Deprecate the entire library. Merged years ago to provide compatibility
> +  with Libav, it remained unmaintained by the FFmpeg project and duplicated
> +  functionality provided by libswresample.
> +
> +  In order to improve consistency and reduce attack surface, as well as to ease
> +  burden on maintainers, it has been deprecated. Users of this library are asked
> +  to migrate to libswresample, which, as well as providing more functionality,
> +  is faster and has higher accuracy.

Maybe drop 'burden on maintainers', since it says directly above that it is
unmaintained, which is a direct contradiction.

> diff --git a/libavresample/avresample.h b/libavresample/avresample.h
> index 193443e2a6..57889c572c 100644
> --- a/libavresample/avresample.h
> +++ b/libavresample/avresample.h
> @@ -103,10 +103,10 @@

Doxygen should be updated with the @deprecated tag, and a pointer to swresample
on everything.

Other than that, I think it is OK to go ahead and push this soon. Thanks for
giving it a bit of time post-Christmas.

- Derek
James Almer Dec. 28, 2017, 4:25 p.m.
On 12/25/2017 2:53 PM, Rostislav Pehlivanov wrote:
> diff --git a/libavresample/avresample.h b/libavresample/avresample.h
> index 193443e2a6..57889c572c 100644
> --- a/libavresample/avresample.h
> +++ b/libavresample/avresample.h
> @@ -103,10 +103,10 @@
>  
>  #define AVRESAMPLE_MAX_CHANNELS 32
>  
> -typedef struct AVAudioResampleContext AVAudioResampleContext;
> +typedef attribute_deprecated struct AVAudioResampleContext AVAudioResampleContext;
>  
>  /** Mixing Coefficient Types */
> -enum AVMixCoeffType {
> +enum attribute_deprecated AVMixCoeffType {
>      AV_MIX_COEFF_TYPE_Q8,   /** 16-bit 8.8 fixed-point                      */
>      AV_MIX_COEFF_TYPE_Q15,  /** 32-bit 17.15 fixed-point                    */
>      AV_MIX_COEFF_TYPE_FLT,  /** floating-point                              */
> @@ -114,13 +114,13 @@ enum AVMixCoeffType {
>  };
>  
>  /** Resampling Filter Types */
> -enum AVResampleFilterType {
> +enum attribute_deprecated AVResampleFilterType {
>      AV_RESAMPLE_FILTER_TYPE_CUBIC,              /**< Cubic */
>      AV_RESAMPLE_FILTER_TYPE_BLACKMAN_NUTTALL,   /**< Blackman Nuttall Windowed Sinc */
>      AV_RESAMPLE_FILTER_TYPE_KAISER,             /**< Kaiser Windowed Sinc */
>  };
>  
> -enum AVResampleDitherMethod {
> +enum attribute_deprecated AVResampleDitherMethod {
>      AV_RESAMPLE_DITHER_NONE,            /**< Do not use dithering */
>      AV_RESAMPLE_DITHER_RECTANGULAR,     /**< Rectangular Dither */
>      AV_RESAMPLE_DITHER_TRIANGULAR,      /**< Triangular Dither*/

wm4 found out that deprecating enums does basically nothing. some
compilers complain about the attribute, and others don't say anything at
all (aka, not warn when the enum is being used). I don't know if that
also applies to structs, but it might be a good idea to find out.

I'd say just add the deprecated attribute to functions as per usual.
wm4 Dec. 28, 2017, 4:52 p.m.
On Thu, 28 Dec 2017 13:25:45 -0300
James Almer <jamrial@gmail.com> wrote:

> On 12/25/2017 2:53 PM, Rostislav Pehlivanov wrote:
> > diff --git a/libavresample/avresample.h b/libavresample/avresample.h
> > index 193443e2a6..57889c572c 100644
> > --- a/libavresample/avresample.h
> > +++ b/libavresample/avresample.h
> > @@ -103,10 +103,10 @@
> >  
> >  #define AVRESAMPLE_MAX_CHANNELS 32
> >  
> > -typedef struct AVAudioResampleContext AVAudioResampleContext;
> > +typedef attribute_deprecated struct AVAudioResampleContext AVAudioResampleContext;
> >  
> >  /** Mixing Coefficient Types */
> > -enum AVMixCoeffType {
> > +enum attribute_deprecated AVMixCoeffType {
> >      AV_MIX_COEFF_TYPE_Q8,   /** 16-bit 8.8 fixed-point                      */
> >      AV_MIX_COEFF_TYPE_Q15,  /** 32-bit 17.15 fixed-point                    */
> >      AV_MIX_COEFF_TYPE_FLT,  /** floating-point                              */
> > @@ -114,13 +114,13 @@ enum AVMixCoeffType {
> >  };
> >  
> >  /** Resampling Filter Types */
> > -enum AVResampleFilterType {
> > +enum attribute_deprecated AVResampleFilterType {
> >      AV_RESAMPLE_FILTER_TYPE_CUBIC,              /**< Cubic */
> >      AV_RESAMPLE_FILTER_TYPE_BLACKMAN_NUTTALL,   /**< Blackman Nuttall Windowed Sinc */
> >      AV_RESAMPLE_FILTER_TYPE_KAISER,             /**< Kaiser Windowed Sinc */
> >  };
> >  
> > -enum AVResampleDitherMethod {
> > +enum attribute_deprecated AVResampleDitherMethod {
> >      AV_RESAMPLE_DITHER_NONE,            /**< Do not use dithering */
> >      AV_RESAMPLE_DITHER_RECTANGULAR,     /**< Rectangular Dither */
> >      AV_RESAMPLE_DITHER_TRIANGULAR,      /**< Triangular Dither*/  
> 
> wm4 found out that deprecating enums does basically nothing. some
> compilers complain about the attribute, and others don't say anything at
> all (aka, not warn when the enum is being used). I don't know if that
> also applies to structs, but it might be a good idea to find out.
> 
> I'd say just add the deprecated attribute to functions as per usual.

I've put it before the enum keyword. I didn't check whether putting it
after the keyword helps. Might actually be worth investigating if we
need to deprecate enums more often.

Patch hide | download patch | download mbox

diff --git a/configure b/configure
index d3187d71ed..33afedfb77 100755
--- a/configure
+++ b/configure
@@ -133,7 +133,7 @@  Component options:
   --disable-swscale        disable libswscale build
   --disable-postproc       disable libpostproc build
   --disable-avfilter       disable libavfilter build
-  --enable-avresample      enable libavresample build [no]
+  --enable-avresample      enable libavresample build (deprecated) [no]
   --disable-pthreads       disable pthreads [autodetect]
   --disable-w32threads     disable Win32 threads [autodetect]
   --disable-os2threads     disable OS/2 threads [autodetect]
@@ -6516,7 +6516,7 @@  check_deps $CONFIG_LIST       \
            $ALL_COMPONENTS    \
 
 enabled threads && ! enabled pthreads && ! enabled atomics_native && die "non pthread threading without atomics not supported, try adding --enable-pthreads or --cpu=i486 or higher if you are on x86"
-
+enabled avresample && warn "Building with deprecated library libavresample"
 
 if test $target_os = "haiku"; then
     disable memalign
diff --git a/doc/APIchanges b/doc/APIchanges
index df79758e86..5232bbca7f 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -15,6 +15,16 @@  libavutil:     2017-10-21
 
 API changes, most recent first:
 
+2017-xx-xx - xxxxxxx - lavr 4.0.0 - avresample.h
+  Deprecate the entire library. Merged years ago to provide compatibility
+  with Libav, it remained unmaintained by the FFmpeg project and duplicated
+  functionality provided by libswresample.
+
+  In order to improve consistency and reduce attack surface, as well as to ease
+  burden on maintainers, it has been deprecated. Users of this library are asked
+  to migrate to libswresample, which, as well as providing more functionality,
+  is faster and has higher accuracy.
+
 2017-12-xx - xxxxxxx - lavu 56.7.100 - cpu.h
   AVX-512 flags added.
 
diff --git a/libavresample/avresample.h b/libavresample/avresample.h
index 193443e2a6..57889c572c 100644
--- a/libavresample/avresample.h
+++ b/libavresample/avresample.h
@@ -103,10 +103,10 @@ 
 
 #define AVRESAMPLE_MAX_CHANNELS 32
 
-typedef struct AVAudioResampleContext AVAudioResampleContext;
+typedef attribute_deprecated struct AVAudioResampleContext AVAudioResampleContext;
 
 /** Mixing Coefficient Types */
-enum AVMixCoeffType {
+enum attribute_deprecated AVMixCoeffType {
     AV_MIX_COEFF_TYPE_Q8,   /** 16-bit 8.8 fixed-point                      */
     AV_MIX_COEFF_TYPE_Q15,  /** 32-bit 17.15 fixed-point                    */
     AV_MIX_COEFF_TYPE_FLT,  /** floating-point                              */
@@ -114,13 +114,13 @@  enum AVMixCoeffType {
 };
 
 /** Resampling Filter Types */
-enum AVResampleFilterType {
+enum attribute_deprecated AVResampleFilterType {
     AV_RESAMPLE_FILTER_TYPE_CUBIC,              /**< Cubic */
     AV_RESAMPLE_FILTER_TYPE_BLACKMAN_NUTTALL,   /**< Blackman Nuttall Windowed Sinc */
     AV_RESAMPLE_FILTER_TYPE_KAISER,             /**< Kaiser Windowed Sinc */
 };
 
-enum AVResampleDitherMethod {
+enum attribute_deprecated AVResampleDitherMethod {
     AV_RESAMPLE_DITHER_NONE,            /**< Do not use dithering */
     AV_RESAMPLE_DITHER_RECTANGULAR,     /**< Rectangular Dither */
     AV_RESAMPLE_DITHER_TRIANGULAR,      /**< Triangular Dither*/
@@ -132,17 +132,20 @@  enum AVResampleDitherMethod {
 /**
  * Return the LIBAVRESAMPLE_VERSION_INT constant.
  */
+attribute_deprecated
 unsigned avresample_version(void);
 
 /**
  * Return the libavresample build-time configuration.
  * @return  configure string
  */
+attribute_deprecated
 const char *avresample_configuration(void);
 
 /**
  * Return the libavresample license.
  */
+attribute_deprecated
 const char *avresample_license(void);
 
 /**
@@ -155,6 +158,7 @@  const char *avresample_license(void);
  *
  * @return AVClass for AVAudioResampleContext
  */
+attribute_deprecated
 const AVClass *avresample_get_class(void);
 
 /**
@@ -162,6 +166,7 @@  const AVClass *avresample_get_class(void);
  *
  * @return  allocated audio resample context, or NULL on failure
  */
+attribute_deprecated
 AVAudioResampleContext *avresample_alloc_context(void);
 
 /**
@@ -178,6 +183,7 @@  AVAudioResampleContext *avresample_alloc_context(void);
  * @param avr  audio resample context
  * @return     0 on success, negative AVERROR code on failure
  */
+attribute_deprecated
 int avresample_open(AVAudioResampleContext *avr);
 
 /**
@@ -186,6 +192,7 @@  int avresample_open(AVAudioResampleContext *avr);
  * @param avr AVAudioResampleContext to check
  * @return 1 if avr is open, 0 if avr is closed.
  */
+attribute_deprecated
 int avresample_is_open(AVAudioResampleContext *avr);
 
 /**
@@ -201,6 +208,7 @@  int avresample_is_open(AVAudioResampleContext *avr);
  *
  * @param avr  audio resample context
  */
+attribute_deprecated
 void avresample_close(AVAudioResampleContext *avr);
 
 /**
@@ -210,6 +218,7 @@  void avresample_close(AVAudioResampleContext *avr);
  *
  * @param avr  audio resample context
  */
+attribute_deprecated
 void avresample_free(AVAudioResampleContext **avr);
 
 /**
@@ -234,6 +243,7 @@  void avresample_free(AVAudioResampleContext **avr);
  * @param matrix_encoding     matrixed stereo downmix mode (e.g. dplii)
  * @return                    0 on success, negative AVERROR code on failure
  */
+attribute_deprecated
 int avresample_build_matrix(uint64_t in_layout, uint64_t out_layout,
                             double center_mix_level, double surround_mix_level,
                             double lfe_mix_level, int normalize, double *matrix,
@@ -251,6 +261,7 @@  int avresample_build_matrix(uint64_t in_layout, uint64_t out_layout,
  * @param stride  distance between adjacent input channels in the matrix array
  * @return        0 on success, negative AVERROR code on failure
  */
+attribute_deprecated
 int avresample_get_matrix(AVAudioResampleContext *avr, double *matrix,
                           int stride);
 
@@ -272,6 +283,7 @@  int avresample_get_matrix(AVAudioResampleContext *avr, double *matrix,
  * @param stride  distance between adjacent input channels in the matrix array
  * @return        0 on success, negative AVERROR code on failure
  */
+attribute_deprecated
 int avresample_set_matrix(AVAudioResampleContext *avr, const double *matrix,
                           int stride);
 
@@ -302,6 +314,7 @@  int avresample_set_matrix(AVAudioResampleContext *avr, const double *matrix,
  * @param channel_map customized input channel mapping
  * @return            0 on success, negative AVERROR code on failure
  */
+attribute_deprecated
 int avresample_set_channel_mapping(AVAudioResampleContext *avr,
                                    const int *channel_map);
 
@@ -318,6 +331,7 @@  int avresample_set_channel_mapping(AVAudioResampleContext *avr,
  * @param compensation_distance  compensation distance, in samples
  * @return                       0 on success, negative AVERROR code on failure
  */
+attribute_deprecated
 int avresample_set_compensation(AVAudioResampleContext *avr, int sample_delta,
                                 int compensation_distance);
 
@@ -331,7 +345,7 @@  int avresample_set_compensation(AVAudioResampleContext *avr, int sample_delta,
  * @return              number of samples or AVERROR(EINVAL) if the value
  *                      would exceed INT_MAX
  */
-
+attribute_deprecated
 int avresample_get_out_samples(AVAudioResampleContext *avr, int in_nb_samples);
 
 /**
@@ -376,6 +390,7 @@  int avresample_get_out_samples(AVAudioResampleContext *avr, int in_nb_samples);
  *                        not including converted samples added to the internal
  *                        output FIFO
  */
+attribute_deprecated
 int avresample_convert(AVAudioResampleContext *avr, uint8_t **output,
                        int out_plane_size, int out_samples,
                        uint8_t * const *input, int in_plane_size,
@@ -394,6 +409,7 @@  int avresample_convert(AVAudioResampleContext *avr, uint8_t **output,
  * @param avr  audio resample context
  * @return     number of samples currently in the resampling delay buffer
  */
+attribute_deprecated
 int avresample_get_delay(AVAudioResampleContext *avr);
 
 /**
@@ -411,6 +427,7 @@  int avresample_get_delay(AVAudioResampleContext *avr);
  * @param avr  audio resample context
  * @return     number of samples available for reading
  */
+attribute_deprecated
 int avresample_available(AVAudioResampleContext *avr);
 
 /**
@@ -430,6 +447,7 @@  int avresample_available(AVAudioResampleContext *avr);
  * @param nb_samples  number of samples to read from the FIFO
  * @return            the number of samples written to output
  */
+attribute_deprecated
 int avresample_read(AVAudioResampleContext *avr, uint8_t **output, int nb_samples);
 
 /**
@@ -476,6 +494,7 @@  int avresample_read(AVAudioResampleContext *avr, uint8_t **output, int nb_sample
  * @return                0 on success, AVERROR on failure or nonmatching
  *                        configuration.
  */
+attribute_deprecated
 int avresample_convert_frame(AVAudioResampleContext *avr,
                              AVFrame *output, AVFrame *input);
 
@@ -494,6 +513,7 @@  int avresample_convert_frame(AVAudioResampleContext *avr,
  * @param in              input AVFrame
  * @return                0 on success, AVERROR on failure.
  */
+attribute_deprecated
 int avresample_config(AVAudioResampleContext *avr, AVFrame *out, AVFrame *in);
 
 /**