OSDN Git Service

lavc: replace avcodec_set_dimensions with ff_set_dimensions
authorAnton Khirnov <anton@khirnov.net>
Sun, 27 Oct 2013 08:24:22 +0000 (09:24 +0100)
committerAnton Khirnov <anton@khirnov.net>
Thu, 31 Oct 2013 19:14:14 +0000 (20:14 +0100)
avcodec_set_dimensions() is supposed to be an internal utility function,
there is no reason whatsoever for it to be public. Therefore deprecate
it.

libavcodec/avcodec.h
libavcodec/internal.h
libavcodec/utils.c
libavcodec/version.h

index 3f3b4d2..a4a0446 100644 (file)
@@ -4028,7 +4028,13 @@ enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const en
  * @}
  */
 
+#if FF_API_SET_DIMENSIONS
+/**
+ * @deprecated this function is not supposed to be used from outside of lavc
+ */
+attribute_deprecated
 void avcodec_set_dimensions(AVCodecContext *s, int width, int height);
+#endif
 
 /**
  * Put a string representing the codec tag codec_tag in buf.
index f57bedc..2133137 100644 (file)
@@ -166,4 +166,10 @@ const uint8_t *avpriv_find_start_code(const uint8_t *restrict p,
                                       const uint8_t *end,
                                       uint32_t *restrict state);
 
+/**
+ * Check that the provided frame dimensions are valid and set them on the codec
+ * context.
+ */
+int ff_set_dimensions(AVCodecContext *s, int width, int height);
+
 #endif /* AVCODEC_INTERNAL_H */
index d14d4f4..1e0026d 100644 (file)
@@ -152,12 +152,23 @@ unsigned avcodec_get_edge_width(void)
     return EDGE_WIDTH;
 }
 
+#if FF_API_SET_DIMENSIONS
 void avcodec_set_dimensions(AVCodecContext *s, int width, int height)
 {
-    s->coded_width  = width;
-    s->coded_height = height;
-    s->width        = width;
-    s->height       = height;
+    ff_set_dimensions(s, width, height);
+}
+#endif
+
+int ff_set_dimensions(AVCodecContext *s, int width, int height)
+{
+    int ret = av_image_check_size(width, height, 0, s);
+
+    if (ret < 0)
+        width = height = 0;
+    s->width  = s->coded_width  = width;
+    s->height = s->coded_height = height;
+
+    return ret;
 }
 
 #if HAVE_NEON || ARCH_PPC || HAVE_MMX
index 838587f..b2b745d 100644 (file)
@@ -73,5 +73,8 @@
 #ifndef FF_API_VOXWARE
 #define FF_API_VOXWARE           (LIBAVCODEC_VERSION_MAJOR < 56)
 #endif
+#ifndef FF_API_SET_DIMENSIONS
+#define FF_API_SET_DIMENSIONS    (LIBAVCODEC_VERSION_MAJOR < 56)
+#endif
 
 #endif /* AVCODEC_VERSION_H */