summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2013-10-27 09:24:22 +0100
committerAnton Khirnov <anton@khirnov.net>2013-10-31 20:14:14 +0100
commit7644f5a80787c9b608b82873604805d7e38a6a18 (patch)
tree13ab56556d67d4e4fce64ffa19c6f1e45cf2fed3
parent28096e0a806e57376541e6222d315619906e3c55 (diff)
lavc: replace avcodec_set_dimensions with ff_set_dimensions
avcodec_set_dimensions() is supposed to be an internal utility function, there is no reason whatsoever for it to be public. Therefore deprecate it.
-rw-r--r--libavcodec/avcodec.h6
-rw-r--r--libavcodec/internal.h6
-rw-r--r--libavcodec/utils.c19
-rw-r--r--libavcodec/version.h3
4 files changed, 30 insertions, 4 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 3f3b4d2662..a4a04468cb 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -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.
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index f57bedc8cf..21331377c3 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -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 */
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index d14d4f4472..1e0026d255 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -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
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 838587f7b8..b2b745d65f 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -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 */