From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id BD9A44D177 for ; Sun, 14 Dec 2025 15:49:29 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'oa77DrXLIvc2pqFeSIJpmS1mwuQUhInD3+cmPfEb9l0=', expected b'lVLX016ZBUvW35Kw8gFyYhZwfhDhCEnYx7p007bOTRA=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1765727359; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=oa77DrXLIvc2pqFeSIJpmS1mwuQUhInD3+cmPfEb9l0=; b=tgkcR6kM6Ie4YVSRx3BMvBiFoxZ6clweIdfWjjwMhGL+VT3zIJ9dMI0boROa+YmcAXbgp AE/u0dtPtA09X2l1oBDAMya4ZdHuf6gP+QGZVMw3nDaPBBAUqLqWJQHIHeGDdzqYWGcq7oz 8OwaTFkGkKvvBg4fsj45QwuNvNbKMKx2MdHEzAtIRI6Tt6NbK7O59L/3duHsk7mz1+5kXd9 0E5ngSRaEaFK6fTv9l+kM2+AAin8/Q9bfwtV2pJN/kidhjRjRdVOZHwrkmSkuOELgNZen/P Bm0MAJnjZXeBwZ2nq8EZqARv8ynEnaJZu5bcZ3mpebz/cngw2S+sfhDDHqTQ== Received: from [172.20.0.2] (unknown [172.19.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id CDDBA69084B; Sun, 14 Dec 2025 17:49:19 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1765727352; b=KgzA7KCAeAbPWpvtkvPYzwOrYGzysw28ygzLXKLIVhCw5vhQ9r1VzZWDSOM3R7ZVsxY/4 YvgG1xNanYk4z4zoDNNl0SUtwlHTPmk7mjWKG2Q+qNqRi1ttPet54MgUs5ya5CZiekbc+kE q2nCpkU543zeB3BLbYnOpGTqwB+xP+Q+5EyprrVpEbMNaTpHjWberm+BvpX//75iKmSVaaS 0DIbwCmCcoyZ5UYzHE6o48U60oF2P5sKUCQ3QjaCVygD0tu/VSSfneIaMeoX7MZq1Of9PBK siyoMrUdXtalhZgN1yANCHRf3EzvtpJ38KeCVqsGMFCt14iYrHrJvUmA9HmQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1765727352; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=cTOTEDYEwALfD8k2X6LbwacS38JBJewpNvDUAzkXe8k=; b=PCDlPNicMKfdTJ3sohNtIJYMJ+M4sAQyH6u5AtLK/3R7Iqd//sC1r3mKiWvGmkcs30+wz Kmjc4DWdmojRWyC5mpGptJl6MTYKllMH93B4rxy94UHCazEgcpAwipLs60BJwN4P6O7qbWY 8C2lNuiXNk+VmLC6F/CBCCAnIboJF/L45nKJh/KUquNxUv4BUPV0M21ZN06x5LK51A4MDvS m3/YwO3GJ0rMAjQJfdBwYXwZdp9lWID8HeoXJXlOQQwQiGbQjRjsTTRYetVVMcCaDeEAXrM TPe+hOtfGE1df68bDIRPxzydrJ37s2atg/rZ/Of/QTJmxq2/pFI8ZzWdJkYA== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1765727344; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=lVLX016ZBUvW35Kw8gFyYhZwfhDhCEnYx7p007bOTRA=; b=hy4M1B/k0P7hU8lvtP+3NXq+5KQwTOPrMBM8fKZt1KN6DuL6v49jQV44gNVQZizueaZGv xxCbdbcusrpAZIyCLRaOchj8u7Y2bsRudgzEkcFPtg6MK6ybgPyE1rHF8b5aH0VTbmX7qKH 80+MmJqfK5u96rAiIHy53IyrZyvey673jVM+QPsg7cZupeHS/iNVqAhEv4giFzmlEl0t5WT /l1r8W0bD8lz1UQasFN1pnsZmAp2oit/Pr023QMrSrwW2xkxtAHfp/lBxZEQ9z2f1qNuffv tJtzopYBSzoxLYhFz2pQvaUTC1eNn4qaxPelTmSH+un0OZ58YNa8TZovJkgw== Received: from 55ca25703178 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id C6985690804 for ; Sun, 14 Dec 2025 17:49:04 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Sun, 14 Dec 2025 15:49:04 -0000 Message-ID: <176572734495.60.11850090842391866933@2cb04c0e5124> Message-ID-Hash: S4WIKGVFPM4O27QPZWSZSQGRXNB2XZEL X-Message-ID-Hash: S4WIKGVFPM4O27QPZWSZSQGRXNB2XZEL X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] avcodec/libsvtjpegxsenc: set bitrate to a sane default if unset (PR #21193) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: James Almer via ffmpeg-devel Cc: James Almer Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21193 opened by James Almer (jamrial) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21193 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21193.patch Better than failing with an impossibly low bitrate. >>From 5486773347deb61deb12ff62308a083bf716b9b8 Mon Sep 17 00:00:00 2001 From: James Almer Date: Sun, 14 Dec 2025 12:48:07 -0300 Subject: [PATCH] avcodec/libsvtjpegxsenc: set bitrate to a sane default if unset Better than failing with an impossibly low bitrate. Signed-off-by: James Almer --- libavcodec/libsvtjpegxsenc.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/libavcodec/libsvtjpegxsenc.c b/libavcodec/libsvtjpegxsenc.c index 2f7ec095df..3afb25c507 100644 --- a/libavcodec/libsvtjpegxsenc.c +++ b/libavcodec/libsvtjpegxsenc.c @@ -196,14 +196,17 @@ static av_cold int svt_jpegxs_enc_init(AVCodecContext* avctx) { else svt_enc->encoder.verbose = VERBOSE_WARNINGS; - if (avctx->bit_rate <= 0) { - av_log(avctx, AV_LOG_ERROR, "bitrate can't be 0\n"); - return AVERROR(EINVAL); - } if (avctx->framerate.num <= 0 || avctx->framerate.den <= 0) { av_log(avctx, AV_LOG_ERROR, "framerate must be set\n"); return AVERROR(EINVAL); } + if (avctx->bit_rate == 0) { + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt); + // default to a 1.5 compression ratio + avctx->bit_rate = (int64_t)avctx->width * avctx->height * + (av_get_bits_per_pixel(desc) * 2 / 3) * av_q2d(avctx->framerate); + av_log(avctx, AV_LOG_WARNING, "No bitrate set, defaulting to %"PRId64"\n", avctx->bit_rate); + } av_reduce(&bpp.num, &bpp.den, avctx->bit_rate, (int64_t)avctx->width * avctx->height, INT_MAX); bpp = av_div_q(bpp, avctx->framerate); @@ -253,6 +256,11 @@ static const enum AVPixelFormat pix_fmts[] = { AV_PIX_FMT_NONE }; +static const FFCodecDefault svt_jpegxs_defaults[] = { + { "b", "0" }, + { NULL }, +}; + #define OFFSET(x) offsetof(SvtJpegXsEncodeContext, x) #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM static const AVOption svtjpegxs_enc_options[] = { @@ -288,6 +296,7 @@ const FFCodec ff_libsvtjpegxs_encoder = { .priv_data_size = sizeof(SvtJpegXsEncodeContext), .init = svt_jpegxs_enc_init, .close = svt_jpegxs_enc_free, + .defaults = svt_jpegxs_defaults, FF_CODEC_ENCODE_CB(svt_jpegxs_enc_encode), .p.capabilities = AV_CODEC_CAP_OTHER_THREADS | AV_CODEC_CAP_DR1, .caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE | -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org