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.rheinha...@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


_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to