[FFmpeg-devel] [PATCH 2/5] avcodec: Add missing FF_API define for libavcodec pix fmt API
James Almer
jamrial at gmail.com
Fri Feb 26 15:30:51 EET 2021
On 2/26/2021 10:18 AM, Andreas Rheinhardt wrote:
> avcodec_find_best_pix_fmt2 has been deprecated and replaced by
> avcodec_find_best_pix_fmt_of_2 in 2a54ae9df8cbc1717b3929222ac75f384e2ff240.
> avcodec_find_best_pix_fmt_of_2 and avcodec_get_pix_fmt_loss meanwhile
> were deprecated in 617e866e25b72fa5d9f9d6bbcbd7e4bd69e63a54 when these
> functions were de facto moved to libavutil; this has been mentioned in
> APIchanges in f7a1c5e4d2294a8970ede7f6deb2fe0a64e202a5. Yet the
> attribute_deprecated was never set for the latter two functions and they
> were not wrapped in an FF_API define. This commit does this.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
> libavcodec/avcodec.h | 15 +++++++++------
> libavcodec/imgconvert.c | 6 ++++--
> libavcodec/version.h | 3 +++
> 3 files changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 3d77d2f6fd..3178c163b9 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -3786,12 +3786,6 @@ void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int
> */
> unsigned int avcodec_pix_fmt_to_codec_tag(enum AVPixelFormat pix_fmt);
>
> -/**
> - * @deprecated see av_get_pix_fmt_loss()
> - */
> -int avcodec_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, enum AVPixelFormat src_pix_fmt,
> - int has_alpha);
> -
> /**
> * Find the best pixel format to convert to given a certain source pixel
> * format. When converting from one pixel format to another, information loss
> @@ -3813,15 +3807,24 @@ enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *p
> enum AVPixelFormat src_pix_fmt,
> int has_alpha, int *loss_ptr);
>
> +#if FF_API_AVCODEC_PIX_FMT
> +/**
> + * @deprecated see av_get_pix_fmt_loss()
> + */
> +attribute_deprecated
> +int avcodec_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, enum AVPixelFormat src_pix_fmt,
> + int has_alpha);
> /**
> * @deprecated see av_find_best_pix_fmt_of_2()
> */
> +attribute_deprecated
> enum AVPixelFormat avcodec_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
> enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
>
> attribute_deprecated
> enum AVPixelFormat avcodec_find_best_pix_fmt2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
> enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr);
> +#endif
>
> enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat * fmt);
>
> diff --git a/libavcodec/imgconvert.c b/libavcodec/imgconvert.c
> index 1fd636c83d..8de1563404 100644
> --- a/libavcodec/imgconvert.c
> +++ b/libavcodec/imgconvert.c
> @@ -44,6 +44,7 @@ void avcodec_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, int *h_shift, int
> }
> #endif
>
> +#if FF_API_AVCODEC_PIX_FMT
> int avcodec_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt,
> enum AVPixelFormat src_pix_fmt,
> int has_alpha)
> @@ -60,9 +61,10 @@ enum AVPixelFormat avcodec_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt
> enum AVPixelFormat avcodec_find_best_pix_fmt2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2,
> enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr)
> {
> - return avcodec_find_best_pix_fmt_of_2(dst_pix_fmt1, dst_pix_fmt2, src_pix_fmt, has_alpha, loss_ptr);
> + return av_find_best_pix_fmt_of_2(dst_pix_fmt1, dst_pix_fmt2, src_pix_fmt, has_alpha, loss_ptr);
> }
>
> +#endif
> enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *pix_fmt_list,
> enum AVPixelFormat src_pix_fmt,
> int has_alpha, int *loss_ptr){
> @@ -73,7 +75,7 @@ enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *p
>
> for (i=0; pix_fmt_list[i] != AV_PIX_FMT_NONE; i++) {
> loss = loss_ptr ? *loss_ptr : 0;
> - best = avcodec_find_best_pix_fmt_of_2(best, pix_fmt_list[i], src_pix_fmt, has_alpha, &loss);
> + best = av_find_best_pix_fmt_of_2(best, pix_fmt_list[i], src_pix_fmt, has_alpha, &loss);
> }
>
> if (loss_ptr)
> diff --git a/libavcodec/version.h b/libavcodec/version.h
> index e5a5ec8abc..516411b4b2 100644
> --- a/libavcodec/version.h
> +++ b/libavcodec/version.h
> @@ -144,6 +144,9 @@
> #ifndef FF_API_OLD_ENCDEC
> #define FF_API_OLD_ENCDEC (LIBAVCODEC_VERSION_MAJOR < 59)
> #endif
> +#ifndef FF_API_AVCODEC_PIX_FMT
> +#define FF_API_AVCODEC_PIX_FMT (LIBAVCODEC_VERSION_MAJOR < 59)
Ok, since this was mentioned in APIChanges, i guess < 59 is ok despite
the missing function prototype attribute. But if i were to guess, most
API users will pay more attention to compiler warnings rather than
bothering to read the above document...
So LGTM.
> +#endif
> #ifndef FF_API_THREAD_SAFE_CALLBACKS
> #define FF_API_THREAD_SAFE_CALLBACKS (LIBAVCODEC_VERSION_MAJOR < 60)
> #endif
>
More information about the ffmpeg-devel
mailing list