diff options
author | Anton Khirnov <anton@khirnov.net> | 2013-10-27 09:24:22 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2013-10-31 20:14:14 +0100 |
commit | 7644f5a80787c9b608b82873604805d7e38a6a18 (patch) | |
tree | 13ab56556d67d4e4fce64ffa19c6f1e45cf2fed3 | |
parent | 28096e0a806e57376541e6222d315619906e3c55 (diff) | |
download | ffmpeg-7644f5a80787c9b608b82873604805d7e38a6a18.tar.gz |
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.h | 6 | ||||
-rw-r--r-- | libavcodec/internal.h | 6 | ||||
-rw-r--r-- | libavcodec/utils.c | 19 | ||||
-rw-r--r-- | libavcodec/version.h | 3 |
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 */ |