On 30 December 2017 at 14:59, Rostislav Pehlivanov <atomnu...@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 <atomnu...@gmail.com> > --- > I've kept the deprecations on the enums - they can't hurt. > configure | 4 +- > doc/APIchanges | 9 ++++ > libavresample/avresample.h | 106 ++++++++++++++++++++++++++++++ > ++++++++++++--- > 3 files changed, 110 insertions(+), 9 deletions(-) > > diff --git a/configure b/configure > index 688f6ab803..f2fdb93668 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] > @@ -6521,7 +6521,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 3c9f237596..38c1be61c7 100644 > --- a/doc/APIchanges > +++ b/doc/APIchanges > @@ -15,6 +15,15 @@ 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, 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-xx-xx - xxxxxxx - lavc 58.9.100 - avcodec.h > Deprecate av_lockmgr_register(). You need to build FFmpeg with threading > support enabled to get basic thread-safety (which is the default build > diff --git a/libavresample/avresample.h b/libavresample/avresample.h > index 193443e2a6..440e1a16e7 100644 > --- a/libavresample/avresample.h > +++ b/libavresample/avresample.h > @@ -103,24 +103,33 @@ > > #define AVRESAMPLE_MAX_CHANNELS 32 > > -typedef struct AVAudioResampleContext AVAudioResampleContext; > +typedef attribute_deprecated struct AVAudioResampleContext > AVAudioResampleContext; > > -/** Mixing Coefficient Types */ > -enum AVMixCoeffType { > +/** > + * @deprecated use libswresample > + * > + * Mixing Coefficient Types */ > +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 > */ > AV_MIX_COEFF_TYPE_NB, /** Number of coeff types. Not part of ABI > */ > }; > > -/** Resampling Filter Types */ > -enum AVResampleFilterType { > +/** > + * @deprecated use libswresample > + * > + * Resampling Filter Types */ > +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 { > +/** > + * @deprecated use libswresample > + */ > +enum attribute_deprecated AVResampleDitherMethod { > AV_RESAMPLE_DITHER_NONE, /**< Do not use dithering */ > AV_RESAMPLE_DITHER_RECTANGULAR, /**< Rectangular Dither */ > AV_RESAMPLE_DITHER_TRIANGULAR, /**< Triangular Dither*/ > @@ -130,22 +139,37 @@ enum AVResampleDitherMethod { > }; > > /** > + * > + * @deprecated use libswresample > + * > * Return the LIBAVRESAMPLE_VERSION_INT constant. > */ > +attribute_deprecated > unsigned avresample_version(void); > > /** > + * > + * @deprecated use libswresample > + * > * Return the libavresample build-time configuration. > * @return configure string > */ > +attribute_deprecated > const char *avresample_configuration(void); > > /** > + * > + * @deprecated use libswresample > + * > * Return the libavresample license. > */ > +attribute_deprecated > const char *avresample_license(void); > > /** > + * > + * @deprecated use libswresample > + * > * Get the AVClass for AVAudioResampleContext. > * > * Can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining > options > @@ -155,16 +179,24 @@ const char *avresample_license(void); > * > * @return AVClass for AVAudioResampleContext > */ > +attribute_deprecated > const AVClass *avresample_get_class(void); > > /** > + * > + * @deprecated use libswresample > + * > * Allocate AVAudioResampleContext and set options. > * > * @return allocated audio resample context, or NULL on failure > */ > +attribute_deprecated > AVAudioResampleContext *avresample_alloc_context(void); > > /** > + * > + * @deprecated use libswresample > + * > * Initialize AVAudioResampleContext. > * @note The context must be configured using the AVOption API. > * @note The fields "in_channel_layout", "out_channel_layout", > @@ -178,17 +210,25 @@ 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); > > /** > + * > + * @deprecated use libswresample > + * > * Check whether an AVAudioResampleContext is open or closed. > * > * @param avr AVAudioResampleContext to check > * @return 1 if avr is open, 0 if avr is closed. > */ > +attribute_deprecated > int avresample_is_open(AVAudioResampleContext *avr); > > /** > + * > + * @deprecated use libswresample > + * > * Close AVAudioResampleContext. > * > * This closes the context, but it does not change the parameters. The > context > @@ -201,18 +241,26 @@ int avresample_is_open(AVAudioResampleContext *avr); > * > * @param avr audio resample context > */ > +attribute_deprecated > void avresample_close(AVAudioResampleContext *avr); > > /** > + * > + * @deprecated use libswresample > + * > * Free AVAudioResampleContext and associated AVOption values. > * > * This also calls avresample_close() before freeing. > * > * @param avr audio resample context > */ > +attribute_deprecated > void avresample_free(AVAudioResampleContext **avr); > > /** > + * > + * @deprecated use libswresample > + * > * Generate a channel mixing matrix. > * > * This function is the one used internally by libavresample for building > the > @@ -234,12 +282,16 @@ 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, > int stride, enum AVMatrixEncoding > matrix_encoding); > > /** > + * > + * @deprecated use libswresample > + * > * Get the current channel mixing matrix. > * > * If no custom matrix has been previously set or the > AVAudioResampleContext is > @@ -251,10 +303,14 @@ 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); > > /** > + * > + * @deprecated use libswresample > + * > * Set channel mixing matrix. > * > * Allows for setting a custom mixing matrix, overriding the default > matrix > @@ -272,10 +328,14 @@ 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); > > /** > + * > + * @deprecated use libswresample > + * > * Set a customized input channel mapping. > * > * This function can only be called when the allocated context is not > open. > @@ -302,10 +362,14 @@ 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); > > /** > + * > + * @deprecated use libswresample > + * > * Set compensation for resampling. > * > * This can be called anytime after avresample_open(). If resampling is > not > @@ -318,10 +382,14 @@ 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); > > /** > + * > + * @deprecated use libswresample > + * > * Provide the upper bound on the number of samples the configured > * conversion would output. > * > @@ -331,10 +399,13 @@ 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); > > /** > + * > + * @deprecated use libswresample > + * > * Convert input samples and write them to the output FIFO. > * > * The upper bound on the number of output samples can be obtained through > @@ -376,12 +447,16 @@ 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, > int in_samples); > > /** > + * > + * @deprecated use libswresample > + * > * Return the number of samples currently in the resampling delay buffer. > * > * When resampling, there may be a delay between the input and output. Any > @@ -394,9 +469,13 @@ 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); > > /** > + * > + * @deprecated use libswresample > + * > * Return the number of available samples in the output FIFO. > * > * During conversion, if the user does not specify an output buffer or > @@ -411,9 +490,13 @@ 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); > > /** > + * > + * @deprecated use libswresample > + * > * Read samples from the output FIFO. > * > * During conversion, if the user does not specify an output buffer or > @@ -430,9 +513,13 @@ 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); > > /** > + * > + * @deprecated use libswresample > + * > * Convert the samples in the input AVFrame and write them to the output > AVFrame. > * > * Input and output AVFrames must have channel_layout, sample_rate and > format set. > @@ -476,10 +563,14 @@ 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); > > /** > + * > + * @deprecated use libswresample > + * > * Configure or reconfigure the AVAudioResampleContext using the > information > * provided by the AVFrames. > * > @@ -494,6 +585,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); > > /** > -- > 2.15.1.620.gb9897f4670 > > Going to push this tomorrow. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel