From patchwork Tue Jul 16 12:59:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 50562 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:612c:40f5:b0:482:c625:d099 with SMTP id lb53csp265596vqb; Tue, 16 Jul 2024 06:06:48 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXmkGabb7KAe/dYR7axFDJjXUS+Hi8dslEVEJqFmJ3eYJmEu2AichVqnqjPpa73pfBazcVdAmCMFbGTSB08zArCFsuv1lK9OvgLow== X-Google-Smtp-Source: AGHT+IHLEDrsc53sKT3gpl/YJpVSV22psNmQ6wysZqnNM/2xD8DKhAOI4hoYVHN0qIjNULJMO3bE X-Received: by 2002:a50:ccde:0:b0:58d:410a:32a9 with SMTP id 4fb4d7f45d1cf-59eeea3efefmr1396983a12.15.1721135208397; Tue, 16 Jul 2024 06:06:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1721135208; cv=none; d=google.com; s=arc-20160816; b=j62DKaeH8MOz5qhBc2zE3taCZPOpK5luKPFY2u2Y+LganeR9/gIg425l5ORACkvYIB kgaWWTnOHOZbyywo3LItfpisG2JJBi9oPvNidXflKWVeWwLHCmxS0iC53TtNrr/aCwed 8yaKyemQGanh0hRjU79SJT0RRBXXHC+ST+4sXZdTNUVOZXN7bJdX7SCLJu4RjKPrlgOH nnDgUcR1JJiBYvlP+8BV1EACfOOlchNlUqTGOWkhRTkF/6xOFCj8e6swaHQKiKkhSLlF HeQVhRbXrcK/Av9SbJ7BQDvlvZpOgAS0jq9hrIHfs/vyZIdheotMswAjvJN4/Mwaj+f5 b5LQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=6GIE6VFkLQYCgkmWdOyA3dJtfz0bw4NqwPSASlj3F0M=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=wqF7OgtY0sNJvQ3ovMRrA9ktUBTKsSq+Pd+0tYnJwrtW2fpP1RTr/PNKVgZFodWWt9 ijw1lsrVW1L8H2mVtYNfaqjCinqmZX85sCL6GOQcm1fsLKAUDcAUJdo82nP/nGfVUD5a f/01dqUglr9j2m8VgFv55M09mXR92+wmCY9KnAlpGczxxTR8lJB/XtrTFlusIgjeuMbf qUWec2FA6bDSV6Ll2X2DwG4RpcHUZR6MTNbWqOqy6H++J6VStimk2fkto62Tnbu7hrqw fZojh+7JZp7k5HPhdUp+lq51WX/LXugn71m99ypuWswVWIHNRFUC27cnQOAatqsUpDTq pADw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=NEb2ofEY; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-59b26a8de68si3775237a12.297.2024.07.16.06.06.47; Tue, 16 Jul 2024 06:06:48 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=NEb2ofEY; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 33EF868D9C9; Tue, 16 Jul 2024 16:00:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-36.mail.qq.com (out203-205-251-36.mail.qq.com [203.205.251.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 393D568D8CD for ; Tue, 16 Jul 2024 16:00:08 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1721134799; bh=UmZxDbQ9eqHx3/3YsKHTIWyAByi/x+cHRKDQvM5xlw4=; h=From:To:Cc:Subject:Date; b=NEb2ofEYHzcmAVUP7a3KY1dlTnRTWztTM70Qe3pR72zlwodCNMQaKnirt0VnDa7C6 YoNqClMytwwEgvI3QwvqF7f9wnbqyQmys8zAbFGH7bwcmIJZugzLl07twc/YY7QGcm sL+6l/wsKiS3ya4sXN3eu0UcViCOfJ4gXSaUgQis= Received: from ZHILIZHAO-MB1.tencent.com ([113.108.77.52]) by newxmesmtplogicsvrszb16-1.qq.com (NewEsmtp) with SMTP id EFAB4200; Tue, 16 Jul 2024 20:59:58 +0800 X-QQ-mid: xmsmtpt1721134798trriuhfye Message-ID: X-QQ-XMAILINFO: NfHsM/dq2nWIe90DOVStDW75Oo74IWN6SCSVpv42IInW/1b1dOYJ7YJxTahGfj mrpB1jrgsXM0D/UnomZSdoprlYTXszue0bx1vnCdp9VTBMZf2/RS5Sm+tIyGY+v+p1VSNjastn8s sAuyIEiDPqXCGzaH/JjcD5g1NO+mtlLUUWqBmZYWpa8om6ZAIoyuUQRJmO6RMRGZJiZ4yDfxxmGn zEfZLzEeEg9ds48QvDlhuIzToQ+FtmHyryQevUgNwTunhJi0AncD54PVOtUnEnpgWGc8k73d4BoT Xc6iCxiZ8vCpXmGHLe3yeDwUhEhFsg8idg8ktUnlnlE7StcGrbX4hmIvPzk786E9jjZgYz6BuWVO N6TXCTsDqel1LREtKgJ6OKJ/RD51fxZfOQQ8nPLk/PvgHaJVv67/Z5AbijiiiyrHYxJmutd7DAFI EEGwRQ3C0J/npfNEuvFaEzJNQKPo6bP5tVJZqMri8i7SJP+ec+BvsL26NSRkP6G/CO9Vp7HHJ1fH UpThUoe8G5+G+PcQSaXhciiJLn4i9Wpa4FEIFZjfCVWg5mYCMSRrtSmiXraVSPnQW7TosThBzl6r +lgxhXOstrvf73SLgrl/HNDUnHHQUjXEgRJYtFq1Wz1zlzFefVuHwBibjiUS8DVP6kRIdVFi5Rrf d8Qjnrtv1PFC2tBSuDa+pcqtiUVQYR7eHXjvAsf44pWQ93PZ/v2oa+Fh98UzU3ovgohDcc91tT3+ 4+Abu8DgGeS39k8wiPsAYdGSdopHEPAaNwGPIBb7BzGMiv1fGx1r6rCu8eMFMfnn86HrqFnN3jx9 SUFJiyM6FD0QPeBAsYoRgS2Ki4Zke0yod4jho4fX+pSoXHOdxcJ1shdB+/7A+rTyMnOmKc1aF+T7 YeZlwoyhRy60OWFAF+GeorlzEu02374y4T3/taq69mscWR4KbeqyM0nWYFXPCK00Qk1+Uf1Z55/5 zTkur4SOzR05cFrhW9+YKa1GFtBGGf9MylfPlhyUwKxqAG1a/V6bTCiBaMuZYs X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Tue, 16 Jul 2024 20:59:52 +0800 X-OQ-MSGID: <20240716125953.30663-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/videotoolboxenc: Fix bitrate doesn't work as expected X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: FfKZKeGZ+pTM From: Zhao Zhili Commit 4ef5e7d4722 add qmin/qmax support to videotoolbox encoder. The default value of (qmin, qmax) is (2, 31), which makes bitrate control doesn't work as users' expectations. --- libavcodec/videotoolboxenc.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index ce80b8e745..35628341f6 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -2932,6 +2932,12 @@ static const AVOption h264_options[] = { { NULL }, }; +static const FFCodecDefault vt_defaults[] = { + {"qmin", "-1"}, + {"qmax", "-1"}, + {NULL}, +}; + static const AVClass h264_videotoolbox_class = { .class_name = "h264_videotoolbox", .item_name = av_default_item_name, @@ -2947,6 +2953,7 @@ const FFCodec ff_h264_videotoolbox_encoder = { .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, .priv_data_size = sizeof(VTEncContext), .p.pix_fmts = avc_pix_fmts, + .defaults = vt_defaults, .init = vtenc_init, FF_CODEC_ENCODE_CB(vtenc_frame), .close = vtenc_close, @@ -2984,6 +2991,7 @@ const FFCodec ff_hevc_videotoolbox_encoder = { AV_CODEC_CAP_HARDWARE, .priv_data_size = sizeof(VTEncContext), .p.pix_fmts = hevc_pix_fmts, + .defaults = vt_defaults, .init = vtenc_init, FF_CODEC_ENCODE_CB(vtenc_frame), .close = vtenc_close, @@ -3023,6 +3031,7 @@ const FFCodec ff_prores_videotoolbox_encoder = { AV_CODEC_CAP_HARDWARE, .priv_data_size = sizeof(VTEncContext), .p.pix_fmts = prores_pix_fmts, + .defaults = vt_defaults, .init = vtenc_init, FF_CODEC_ENCODE_CB(vtenc_frame), .close = vtenc_close, From patchwork Tue Jul 16 12:59:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 50561 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:612c:40f5:b0:482:c625:d099 with SMTP id lb53csp260024vqb; Tue, 16 Jul 2024 06:00:33 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWHZQVE1y98PBo36EMLfL11IYwuIHIfGtdeQduhYci6BvAFhmVRm+xOfMLiDfdQZhkmmeIoCdlqP7EzxjybfyuzCcjpXk9EsO60Fg== X-Google-Smtp-Source: AGHT+IGtCt9no3ICaGjx4LzqKCwZD9xfDDJ+hJvuoNFqtyYOLhixaIg5G4NqSDlRiHe9ayg5IroB X-Received: by 2002:ac2:4e14:0:b0:52c:d753:2829 with SMTP id 2adb3069b0e04-52edef1dfdcmr1521557e87.19.1721134833467; Tue, 16 Jul 2024 06:00:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1721134833; cv=none; d=google.com; s=arc-20160816; b=itdf9P+NdC1MBPR563TeTUOnblMJhaiErIg1eXU/OgD1cilfiJrEbtUqgsD8hZQIGO VdHc9n+6O4MkIi0ylwT/NAC1zHYS0ExgzfyGBnUm3iVZur1yYBi7qX78A+COoNBVNgxS aMFH00BLZUhHdLZ0WvhiRWz7q14wOD8npiQdoMvXImJA93uoS+gRlDRZmC0WaVUdGHDK oVtVy4A6yW8pbzkeOs01vRiUYKjGIAz2UF3iPasFJ3Y1RPAV5kxmI17Ka4/Kz0rgdfyk +kEEA8VlDOX6Xh+ZvL4abfI8hwdfqL6a3RQKgDBBVh7b6SdVsTmR0TZPnnWREKn91osP j1fw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=hqU4ZfLWSXB73ucVnP9Ti9KttFuxYzpv2s6O9HUP/6s=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=uQf19SraQ0Ze0AsxFVgnZof9AKGiNlIEfDooQuy6PzJUhXzoDAh4u6KFoIWyodCm4o zATPs66WuxCPAKjUswo7QB0gxu2G6tYnaFt1sTL5UK7eMylh0lEHwlbdo8Ui01E0S4EJ 6bd2Og2xgZIJP0MCNoaNhfGwPZnOc9StBMhlgoOnlAh5eaDGSSddHyubgA0rLOVo6IMm OwynTjO5nNp6lOZVGynbaE3OWuQa1oj1fkHMBnnc2MSlq8FmE98TcB0UXKXvHH0uDDZ/ CIG7QLiy0H4CE4wFsRvaIrBj9wPVXJEXQM2KLijBuAh7QDvW/qYGXR/SNTTHDZUR1CJi xYKA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=Npn1Di76; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 2adb3069b0e04-52ed255b11dsi2147779e87.249.2024.07.16.06.00.33; Tue, 16 Jul 2024 06:00:33 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=Npn1Di76; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9C9C368DA28; Tue, 16 Jul 2024 16:00:18 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EE1D068D99D for ; Tue, 16 Jul 2024 16:00:10 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1721134802; bh=NmkxBI9+iEFBAG0+umLj0JjF4LQGjqXkCtJ2KSnVauE=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Npn1Di76VrLOmZNJU40u1wzHhlBPy11HEu+OblVN4AYSx0CPhPd1SWfxT/BrRnZvZ zB2+ZJBMgqYuTI2Eq+ZpwEnDU8h5wcSnWUuIpyuXPRirlVJxV2wgHTnWGEChEZRIfI 1Zdmhmkf7OG6ng0TQItk2FtRQRGLwjH+ZUT/Tj9c= Received: from ZHILIZHAO-MB1.tencent.com ([113.108.77.52]) by newxmesmtplogicsvrszb16-1.qq.com (NewEsmtp) with SMTP id EFAB4200; Tue, 16 Jul 2024 20:59:58 +0800 X-QQ-mid: xmsmtpt1721134799tu34foy1w Message-ID: X-QQ-XMAILINFO: MFdGPHhuqhNo0U/b5FZDBdKUSYkSDFYroCVIebpBVkgbR1wOxnnMrp6e+EwuIb AqjKPNRSqbJV4vMtWtA+jHptaYZu1YFdl9KmpC3LTXGFIQ8Uf6xyJsSSh8SVoh2kc5r/Ue4DMdFF tYYcsNKVMxvm4b9dzasaDhHTZRUd1ZFBiYsFvOTTKqKDahHPpxnVR3LaV5HczTa+pDbvd6tg+i/9 QgqzJJZ5c4pjA5LuqfNO7Oq4DOdUz75OanLlW2W33kIAF5ihHBW620FmkhTkDZ9ULCX7JKe1R8lI foV7CIRb+c/Krh4iWcoU2r8LB7hb6Ed+TBDIzk4wE/dBUATQcP/c4uBtcxA2NqpoxTw5C40N97dz 2BOWknBltCQi9XXKYDOa6EXvF8nohjWFhhfwtM5BP0Of5N+OzV3jvG3RXKwTbblU7Cjl28Ttmer7 hefRU8Ifb+cjdSXLKOkXzAUIQbK6dYqyoWyejuEG7enXIqZmtjavQkBc8QVymJ5VONrj37d9UAAL V3SW9ZwGhk0CudbZ1nJ39BDvR4QIB5xJvT7V3NFyLN5tgRP9mjAKwQlNBpgQY5KGZKf1fIBBuXcq Z5D9kKrIrFQrQxlp1xDpavXjEjA57GsJc94pzfuVctzxAkSKGnV9LucwLtRUnMv6N7wqnsFhRQhE AqPK1Yd7CKBxl9rxxaqVnlk0jxlxils25eKXeJXTLgM8Ptfk1wC84v2/jv9V7QE2oUPmnLbHxIeP 9AZecy3eEhU/g5/Xq5Lp3uIUlYB7Ohj718PtrezEuOcWIc37xiP0reN9GwrjNS5J0inxPJI/AgNC RGVomRMCotKvXzIhD/9+W2iQ8XrMLV/lJEcBkt8fEiJNOHi8X3dbS1K0SZg5wmxy2Hkn6S52+NJ7 OXqTJvMLgKw4eLbNOXFZHliI4ZC0o/3B/JpA0fYwkjtkuNhhtQEIA2H+W54TwZDcZok8NalFe2PL yc+HYlqZGTw6yx1POdtvMmGNwQur6izYFd6UN4I0815yIEvimtL+8vqzTezUig X-QQ-XMRINFO: NyFYKkN4Ny6FSmKK/uo/jdU= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Tue, 16 Jul 2024 20:59:53 +0800 X-OQ-MSGID: <20240716125953.30663-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240716125953.30663-1-quinkblack@foxmail.com> References: <20240716125953.30663-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/videotoolboxenc: Set default bitrate to zero X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: JUIghEKb6rRx From: Zhao Zhili Zero is auto mode. From the doc of videotoolbox: The default bit rate is zero, which indicates that the video encoder should determine the size of compressed data. Before the patch, the default bitrate is 200000 setting by avcodec/options_table, which doesn't work for most of cases. --- libavcodec/videotoolboxenc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 35628341f6..747681fd05 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -2933,6 +2933,7 @@ static const AVOption h264_options[] = { }; static const FFCodecDefault vt_defaults[] = { + {"b", "0"}, {"qmin", "-1"}, {"qmax", "-1"}, {NULL},