From patchwork Sun Dec 17 12:50:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 45189 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp6787979pzf; Sun, 17 Dec 2023 04:51:18 -0800 (PST) X-Google-Smtp-Source: AGHT+IHrcnLdfEon3pb5rv/qDbg0pC5R9UEos5J/uZtsEYBhy9lba/tBl/5q1rqoxJLRBRhcvd3I X-Received: by 2002:a05:6402:1215:b0:553:3749:7a6a with SMTP id c21-20020a056402121500b0055337497a6amr626756edw.6.1702817477860; Sun, 17 Dec 2023 04:51:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702817477; cv=none; d=google.com; s=arc-20160816; b=l4YOASrRifhNdesUQM90GLT82RMOIrm46sFibHRfWCXy0XlTUMQ2B3UahgakHE7hjc 0MTKnPiOrlKumpr79jcwxbhVFnbO5I3wcKSHsVepZ3qkT3/ji1i3qeNbi/O/Vdl/cjtv z8hSsPrJDj5AdyPf3Sz4qH1MRuuad14d3fOTlkoVEAt8JjH/YsA+gzxjrI8CkXv13kmu UfxjhHmME8ZxZPgRFofrPCjfHlD1aRy+bh1/e4iHa/P1nybRE1OkQbCwoQ1bPDu67l+m NLWJo51w/wEwW1IzqwdNt4ZXlqF8z9xHKj9pNpCxX+xYW0FcaF6eOonvZ0izizXYZpKy lzLg== 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=0Cbk12bSZUpKzlUNgVVxIgzqXrcTGfIqqIOyZkAdgmU=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=TQKglApwBmg9Dx0wwCmBJevN7992n2o98A9AETsPGU0CvYGzy84bQ1NHmpy4rC0Nac 51SnJaTKKSPr6lDyg7zAjyTICr2s+w1Bnk+fuw5/drpU689dlEbZEllpBUVd8AyxuVYU SYFNHUUs9WN98CQCJoqvCxGVG4MlQJiZqZAtnLmzasxC1HgZmh2XI0DTmHhknIVmMqXi rGy2uFB+FvEVY6F4zsmqeJrORYzXBRPv3Efdi1L4sazZ48RTpgkxRZO7RTPZ4ACgRskn kyBiOuvNMl9bXe7koWg4PdgLHuP9y3w9145z/p7Ygvzi/LK1/OFthY8LQNjVJ1MXhsB0 KJrA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=QmN7tEK9; 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 s13-20020a056402036d00b00552fda4c951si1375191edw.15.2023.12.17.04.51.16; Sun, 17 Dec 2023 04:51:17 -0800 (PST) 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=QmN7tEK9; 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 D9FF968D165; Sun, 17 Dec 2023 14:51:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-57-49.mail.qq.com (out162-62-57-49.mail.qq.com [162.62.57.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4B01668D0B1 for ; Sun, 17 Dec 2023 14:51:05 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1702817456; bh=3ybXrFXsdNuBt4fgwt8e2RLQbBPSDMdS2az6aEDKWis=; h=From:To:Cc:Subject:Date; b=QmN7tEK9pelKT92OBuuEDkoV31oJCpA0sux0nbepJFz0hOZEwKADkcqI1FyxZpOew wMnpsBV9kjPXmstjU5jFhIGD7ILRPIlxmn+a/VFHbEg5SkZheKcgFAz+f0dybpAUJn IyDGDAG6SUqn2Ux6c8UpzKm2PpcKDrzxC5hOxXtI= Received: from localhost.localdomain ([113.118.106.67]) by newxmesmtplogicsvrsza10-0.qq.com (NewEsmtp) with SMTP id CB786602; Sun, 17 Dec 2023 20:50:55 +0800 X-QQ-mid: xmsmtpt1702817455tevp3ljbz Message-ID: X-QQ-XMAILINFO: MmpliBmRb3iClAEeBx1UVD4DnYbTMGXiq4pWEw7tT6w7r5kz12LqWy9SvDBmFD 0sDc7Qp52l5Ag8Gga324GNp60k6FB+83gaDXSPyB4dElkGUBwo0uifb73EA+VPXFTxqEPN9i/e7/ 1Yup1KsdJbvD5rwg/Mivdn3nRDMQDFbIINID8/EhukQzoh71qS7XO96OwromQdZP9xPVihP59c38 AyZMBGHZrque++6MqHJ4ttv22xdnFHY5AeX5Xoo1kjYswc2EBgZMpE3Ndcm/oGzaM00P9qVHJZHc v+XmtYUbIesLE2jEWyxkbFJnOjIpEHnqUN4tengsXousxmVjE67V4ZOa//u+lSRvlgrWa11G8QqQ r3p23ms2JXPr3LLx5xUoux38nvdrX32wDN/jDZWTvc9la9gNYx4chpd3AR0hFfGP95J4EVw/mbcs XYdw9+Y7zcweV/+d9vnD/ex7VsgtX0hqAqiZwF+AIG2L0Y9RuBkl2uRNft+/ML/3nEggY0emE4MO p36Rwd1ZQJPqzXUoDB9e9F1xtMYii3c9H5E/vstjqa4f3oPuWzRcWoGkxkoTF2jJCa3RTWgBAEwy rFKh2uoqfqiS6gadNxTgn4CfOm3UFBIplI8AH47TVO5ykzM6wzn+bXf3dWz/TzszURc2Qr8HRVjV akbeRDBevyzHsufwPWCva81XFSrvB/wSKt7HDUIN6S2PuT73mkIBja9p3JI/zlMMRUNs3dEiDcVu cEpesStrKzat/W9nmKyGIeGKTZfXo8FhEG0fFkzBodVECIVJHeNm+pjPMXczfr6zLzE9/X4daASp 2JYD8pLekbNT9RT/5YUlblx2KianhMUpE83nZ+E3Mpst020X4TIBA+nj7eA3kyiR+bV6yP37NuGU wdekivTEydd6XFS7CKjvGrC9wY6ZrbA+HD4FdCRnOwJtTXx20tOAJd6Oplq/N1FkIlCYfUlHZD7h rSsAZ8mjr8WJh84r/Nq6sufJ90gygYuuw/wDmxvJm46ynrZRaS/dJY7zm0C89hdCJuWQYbOry1LU yYp48dllg+sdTJs6EJZjOyuOz4Swo= X-QQ-XMRINFO: OD9hHCdaPRBwq3WW+NvGbIU= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sun, 17 Dec 2023 20:50:53 +0800 X-OQ-MSGID: <20231217125053.269645-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/mediacodecenc: set quality in cq mode 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: petCWKbw+Pjm From: Zhao Zhili From AOSP doc, these values are device and codec specific, but lower values generally result in more efficient (smaller-sized) encoding. For example, global_quality 50 on Pixel 6 results a 1080P 30 FPS HEVC with 3744 kb/s, while global_quality 80 results 28178 kb/s. Fix #10689 Signed-off-by: Zhao Zhili --- libavcodec/mediacodecenc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/mediacodecenc.c b/libavcodec/mediacodecenc.c index a1ae5d5ec5..7eae542248 100644 --- a/libavcodec/mediacodecenc.c +++ b/libavcodec/mediacodecenc.c @@ -268,8 +268,11 @@ static av_cold int mediacodec_init(AVCodecContext *avctx) if (avctx->bit_rate) ff_AMediaFormat_setInt32(format, "bitrate", avctx->bit_rate); - if (s->bitrate_mode >= 0) + if (s->bitrate_mode >= 0) { ff_AMediaFormat_setInt32(format, "bitrate-mode", s->bitrate_mode); + if (s->bitrate_mode == BITRATE_MODE_CQ && avctx->global_quality > 0) + ff_AMediaFormat_setInt32(format, "quality", avctx->global_quality); + } // frame-rate and i-frame-interval are required to configure codec if (avctx->framerate.num >= avctx->framerate.den && avctx->framerate.den > 0) { s->fps = avctx->framerate.num / avctx->framerate.den;