From patchwork Tue May 17 18:24:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vignesh Venkat X-Patchwork-Id: 35809 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp2169046pzb; Tue, 17 May 2022 11:24:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyR48Jf/4qQXlSGnkbr5Ls77oWpg22dcZDuKk891KMH/NoB4kDmBbmm8AI91+txMscsQ8qt X-Received: by 2002:a17:907:6d93:b0:6f4:f84e:8cf1 with SMTP id sb19-20020a1709076d9300b006f4f84e8cf1mr21644171ejc.555.1652811897278; Tue, 17 May 2022 11:24:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652811897; cv=none; d=google.com; s=arc-20160816; b=iefBm3iqtXkRpe0+c71Tl33Ty1I03u4biuLRqOpDew65bKf/4zVCNGXATOy0vLC9PH W0hh+YlLglpyrihZ2DqdvH4Ct4WpMPRgmAOPHjRW+cQyfn1ruXZIz+MvsVqe1xVc+1ij b6lhEF2ebSNRxVNtIEHFqrtjWz5WNM6nozIa9llkkR9REnUU0WLodeg/q1y7Qtwsw1kn 4Rr2zOLKq67kKH2JfUQfqqmzf1C9RlPC7GKL6Za5nRNJgxrQWNb6pWSiCltPlnYrGSVG TxdPuyVAaL4JtW0/gsFAEcmWuqmKJcVtiNINuSLodwHPH/eeSlpOmqc8sBaF5By5DxhJ o06Q== 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:to:from:mime-version:message-id:date :dkim-signature:delivered-to; bh=C5xySgw+OvxD6kLuAR64sxMYVAzp72NmgEWpPs2HEnU=; b=nyHpYmj5fzWnsQrajlp16HOWGazylmEmrZ9hW8KMmVGijD2eFYvB6OkkSZIaSokqLG h59q4TN824rwzQJx2YS4OLhag0K5SStjpgAFleXQy2q2l9Tccl7x3l3Eh2K0oQW5Prxv /t/LCxirQtPdeuEHDm0XwaYAGeeaVYdwTJ/t4RyrcA4LtFnxeiEcQ6UB/HOqneYM4Thu IR8EJ5LVaW6uliG+Bp+aqscGsoLqJkVvyYyCHtIoIbobgPRvhfL6z7cakFEc8ocu7yNb lHLM9mFzjGl/GGSZn1Bz5286YpiQgN6nIOBtD50qNTHRhvuR5fgmsd67yQ8J4QskwGCN IXPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20210112 header.b=rjRBBzNn; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gf26-20020a170906e21a00b006e8c13a790fsi2912763ejb.860.2022.05.17.11.24.56; Tue, 17 May 2022 11:24:57 -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=@google.com header.s=20210112 header.b=rjRBBzNn; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 90ED668AF3B; Tue, 17 May 2022 21:24:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 505E768A708 for ; Tue, 17 May 2022 21:24:45 +0300 (EEST) Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-2fed8245a03so102877b3.1 for ; Tue, 17 May 2022 11:24:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:message-id:mime-version:subject:from:to:cc; bh=nzoD+r6RdTTJHxymBoKhBPboL/iyGXvVW39d6GRMUm8=; b=rjRBBzNnXgDUPtNo9dSyuYbzOAHbazDnATLiLHLyjCReYQXLI6+GUxKnLkBCiU53os 4G4ooPHo6gUp7nA8Ti5v6hzGJ2QVGJjtQIOdXpI5JUabnoQnpmAqdD5oY8Rl4vFNjVPq i7T96DFz+R1lx/+hpSz5LxUaoJNwu6FeC6SCdQNVjRD3tvk6D1Mcz4yRS8F8cyZ+KCBV foW2O+FQKhntGWmzaZ2iZZmUQXU7pf7nFBXY6AxBM/fGVYZjkLVa3nMjM7nA9vGUVDJz M0ep2QR5LfwYSYdiJunCjpKw8oLx17PunRMPkjY2WRwPzEN6vaPmn/5oP9L4C/DU963i /npA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=nzoD+r6RdTTJHxymBoKhBPboL/iyGXvVW39d6GRMUm8=; b=BYBlNmp43wfIaTkqaBpdh789J9PChJzS8pUYpn2LV7JjcYoqzUhQUhdBVYtMYOKpsS T+RS2glVv5G+1zq77R3XhB0BGKcgsNwiFCjHKbOeQNa6CIESKvDX90WAPvHBwU49vsyR oGQ63kFjv2gsgFOKKSFoSCBgHG+KLJ7kQJsig6c4Jo8sE3HfnD5e4pKvDDFTuvzF3m19 OaSUCsEP8XQ8u/AXUdFgXpJt2jOzjCm3D8yl9wNfEnDDe0oaIC0hQrH51akEOZzFMEnF pQXYbksBRdlU8IpmhKrZvPVX4xRB7klyxAlgUpVkpoIEWyIPeKIAYQ35tVYOcUFIz6FZ aMrQ== X-Gm-Message-State: AOAM533mulDOlyifoIlwLKy5GIzyK7stwy50vOXOnL/GtRjHlLhJPgj2 3P8PTFQZ/zzqhFioKEn5IXTpX/p3hmux35fv3k6dyUyqY2AyeIy1uMMxcskbCTOHI27NHJGGMRg yOyvtuhhl6ov3dAUaOOZVuyaDra6/8/dUesmPUU/VBmoBkbJPTFwS4al9wVBsdgjnaYaH X-Received: from vigneshv3.mtv.corp.google.com ([2620:0:1000:2511:7300:7741:e80c:c737]) (user=vigneshv job=sendgmr) by 2002:a81:7302:0:b0:2fe:ff54:43f2 with SMTP id o2-20020a817302000000b002feff5443f2mr12103405ywc.124.1652811882875; Tue, 17 May 2022 11:24:42 -0700 (PDT) Date: Tue, 17 May 2022 11:24:39 -0700 Message-Id: <20220517182439.545198-1-vigneshv@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.36.0.550.gb090851708-goog From: Vignesh Venkatasubramanian To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] avcodec/libaomenc: Expose the allintra usage 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: Vignesh Venkatasubramanian Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 0zmbTFGaIord libaom added an usage=allintra mode for doing better with still images. Expose that in the ffmpeg's wrapper. This is especially useful for encoding still AVIF images. Signed-off-by: Vignesh Venkatasubramanian --- libavcodec/libaomenc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c index 0411773bbf..7a601c120e 100644 --- a/libavcodec/libaomenc.c +++ b/libavcodec/libaomenc.c @@ -1298,8 +1298,11 @@ static const AVOption options[] = { { "enable-intrabc", "Enable intra block copy prediction mode", OFFSET(enable_intrabc), AV_OPT_TYPE_BOOL, {.i64 = -1}, -1, 1, VE}, { "enable-restoration", "Enable Loop Restoration filtering", OFFSET(enable_restoration), AV_OPT_TYPE_BOOL, {.i64 = -1}, -1, 1, VE}, { "usage", "Quality and compression efficiency vs speed trade-off", OFFSET(usage), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, VE, "usage"}, - { "good", "Good quality", 0, AV_OPT_TYPE_CONST, {.i64 = 0 /* AOM_USAGE_GOOD_QUALITY */}, 0, 0, VE, "usage"}, - { "realtime", "Realtime encoding", 0, AV_OPT_TYPE_CONST, {.i64 = 1 /* AOM_USAGE_REALTIME */}, 0, 0, VE, "usage"}, + { "good", "Good quality", 0, AV_OPT_TYPE_CONST, {.i64 = 0 /* AOM_USAGE_GOOD_QUALITY */}, 0, 0, VE, "usage"}, + { "realtime", "Realtime encoding", 0, AV_OPT_TYPE_CONST, {.i64 = 1 /* AOM_USAGE_REALTIME */}, 0, 0, VE, "usage"}, +#ifdef AOM_USAGE_ALL_INTRA + { "allintra", "All Intra encoding", 0, AV_OPT_TYPE_CONST, {.i64 = 2 /* AOM_USAGE_ALL_INTRA */}, 0, 0, VE, "usage"}, +#endif { "tune", "The metric that the encoder tunes for. Automatically chosen by the encoder by default", OFFSET(tune), AV_OPT_TYPE_INT, {.i64 = -1}, -1, AOM_TUNE_SSIM, VE, "tune"}, { "psnr", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AOM_TUNE_PSNR}, 0, 0, VE, "tune"}, { "ssim", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = AOM_TUNE_SSIM}, 0, 0, VE, "tune"},