X-Git-Url: https://git.piment-noir.org/?p=deb_ffmpeg.git;a=blobdiff_plain;f=ffmpeg%2Flibavcodec%2Flibvpxenc.c;h=c69acc00ef34c5746692a6b21098cdc373ec3d02;hp=163d12aca6cfb52ae28aa9f0c8b103fc9dfef2a5;hb=f6fa7814ccfe3e76514b36cf04f5cd3cb657c8cf;hpb=2ba45a602cbfa7b771effba9b11bb4245c21bc00 diff --git a/ffmpeg/libavcodec/libvpxenc.c b/ffmpeg/libavcodec/libvpxenc.c index 163d12a..c69acc0 100644 --- a/ffmpeg/libavcodec/libvpxenc.c +++ b/ffmpeg/libavcodec/libvpxenc.c @@ -89,6 +89,7 @@ typedef struct VP8EncoderContext { int lag_in_frames; int error_resilient; int crf; + int static_thresh; int max_intra_rate; // VP9-only @@ -443,7 +444,16 @@ static av_cold int vpx_init(AVCodecContext *avctx, codecctl_int(avctx, VP8E_SET_NOISE_SENSITIVITY, avctx->noise_reduction); if (avctx->codec_id == AV_CODEC_ID_VP8) codecctl_int(avctx, VP8E_SET_TOKEN_PARTITIONS, av_log2(avctx->slices)); - codecctl_int(avctx, VP8E_SET_STATIC_THRESHOLD, avctx->mb_threshold); +#if FF_API_MPV_OPT + FF_DISABLE_DEPRECATION_WARNINGS + if (avctx->mb_threshold) { + av_log(avctx, AV_LOG_WARNING, "The mb_threshold option is deprecated, " + "use the static-thresh private option instead.\n"); + ctx->static_thresh = avctx->mb_threshold; + } + FF_ENABLE_DEPRECATION_WARNINGS +#endif + codecctl_int(avctx, VP8E_SET_STATIC_THRESHOLD, ctx->static_thresh); if (ctx->crf >= 0) codecctl_int(avctx, VP8E_SET_CQ_LEVEL, ctx->crf); if (ctx->max_intra_rate >= 0) @@ -634,7 +644,7 @@ static int queue_frames(AVCodecContext *avctx, AVPacket *pkt_out, av_log(avctx, AV_LOG_ERROR, "Data buffer alloc (%"SIZE_SPECIFIER" bytes) failed\n", cx_frame->sz); - av_free(cx_frame); + av_freep(&cx_frame); return AVERROR(ENOMEM); } memcpy(cx_frame->buf, pkt->data.frame.buf, pkt->data.frame.sz); @@ -753,8 +763,8 @@ static int vp8_encode(AVCodecContext *avctx, AVPacket *pkt, } if (rawimg_alpha) { - av_free(rawimg_alpha->planes[VPX_PLANE_U]); - av_free(rawimg_alpha->planes[VPX_PLANE_V]); + av_freep(&rawimg_alpha->planes[VPX_PLANE_U]); + av_freep(&rawimg_alpha->planes[VPX_PLANE_V]); } *got_packet = !!coded_size; @@ -793,6 +803,7 @@ static int vp8_encode(AVCodecContext *avctx, AVPacket *pkt, "though earlier partitions have been lost. Note that intra predicition" \ " is still done over the partition boundary.", 0, AV_OPT_TYPE_CONST, {.i64 = VPX_ERROR_RESILIENT_PARTITIONS}, 0, 0, VE, "er"}, \ { "crf", "Select the quality for constant quality mode", offsetof(VP8Context, crf), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 63, VE }, \ + { "static-thresh", "A change threshold on blocks below which they will be skipped by the encoder", OFFSET(static_thresh), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE }, \ #define LEGACY_OPTIONS \ {"speed", "", offsetof(VP8Context, cpu_used), AV_OPT_TYPE_INT, {.i64 = 1}, -16, 16, VE}, \