diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index 70ec6d3539..d7620878b8 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -28,17 +28,14 @@ #include #include "libavutil/avassert.h" -#include "libavutil/bprint.h" #include "libavutil/buffer.h" #include "libavutil/internal.h" -#include "libavutil/common.h" #include "libavutil/mastering_display_metadata.h" #include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "avcodec.h" #include "codec_internal.h" #include "encode.h" -#include "internal.h" #include "packet_internal.h" #include "atsc_a53.h" #include "sei.h" @@ -182,13 +179,10 @@ static int handle_mdcv(const AVClass **avcl, const x265_api *api, x265_param *params, const AVMasteringDisplayMetadata *mdcv) { - int ret = AVERROR_BUG; - AVBPrint buf; - av_bprint_init(&buf, 0, AV_BPRINT_SIZE_AUTOMATIC); + char buf[10 /* # of PRId64s */ * 20 /* max strlen for %PRId64 */ + sizeof("G(,)B(,)R(,)WP(,)L(,)")]; // G(%hu,%hu)B(%hu,%hu)R(%hu,%hu)WP(%hu,%hu)L(%u,%u) - av_bprintf( - &buf, + snprintf(buf, sizeof(buf), "G(%"PRId64",%"PRId64")B(%"PRId64",%"PRId64")R(%"PRId64",%"PRId64")" "WP(%"PRId64",%"PRId64")L(%"PRId64",%"PRId64")", av_rescale_q(1, mdcv->display_primaries[1][0], (AVRational){ 1, 50000 }), @@ -202,28 +196,15 @@ static int handle_mdcv(const AVClass **avcl, const x265_api *api, av_rescale_q(1, mdcv->max_luminance, (AVRational){ 1, 10000 }), av_rescale_q(1, mdcv->min_luminance, (AVRational){ 1, 10000 })); - if (!av_bprint_is_complete(&buf)) { - av_log(avcl, AV_LOG_ERROR, - "MDCV string too long for its available space!\n"); - ret = AVERROR(ENOMEM); - goto end; - } - - if (api->param_parse(params, "master-display", buf.str) == + if (api->param_parse(params, "master-display", buf) == X265_PARAM_BAD_VALUE) { av_log(avcl, AV_LOG_ERROR, "Invalid value \"%s\" for param \"master-display\".\n", - buf.str); - ret = AVERROR(EINVAL); - goto end; + buf); + return AVERROR(EINVAL); } - ret = 0; - -end: - av_bprint_finalize(&buf, NULL); - - return ret; + return 0; } static int handle_side_data(AVCodecContext *avctx, const x265_api *api,