On 2 January 2018 at 16:47, Rostislav Pehlivanov <atomnu...@gmail.com> wrote:
> > > 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. > Pushed, thanks for the reviews and comments. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel