From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 2DA0B4570D for ; Sun, 21 May 2023 07:32:26 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6182468C131; Sun, 21 May 2023 10:32:23 +0300 (EEST) Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2665D68BFFE for ; Sun, 21 May 2023 10:32:17 +0300 (EEST) Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-96f6e83e12fso315103966b.1 for ; Sun, 21 May 2023 00:32:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1684654336; x=1687246336; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=n2/auBwbv/gWwyTgEqRO9ldvY4YOWuPVPqfU/QlcCZU=; b=VS9bjb/O6o5+y1dwDDsS4On+a5pI/IzkOA+ZsMH3kJUaJ8PzK4hmy0LgtgJdlXhU8j pBA1hY7oEpDR16UsmV7Kc1GYiLO4QUzwNlSZlJNgwvgsUQdWzppWwc5CWgRMCEyFWtau TS+2+xTy68bzcc0uzXyWUYNJ6OIx/n6Hg10cnIywsm05H0sdRGEbM2c8aluIqjoqvobq BEORbvbz02AEly51CuMVxgSlr/ehDS67CGtsDxG9FWdBUjQzmLdZbjQwsWbrPuiZpRLR pMqYMScS0Iguq5Rzs5DqwG1pSa9MyektT4//4Ld/UAmG/a4Sk3YO55b/zEix3XjtEjRN U7/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684654336; x=1687246336; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=n2/auBwbv/gWwyTgEqRO9ldvY4YOWuPVPqfU/QlcCZU=; b=PbyiAHfkv+Am2SN/2KOBDlmtoQR1QxuzmXdbkx0nkMt/1FtZoa27El88CYvaNzoheJ k97ORRQ9EXueXq7wZBB6Vem9ZfnF7SqcFHDVV4954gv/6BoOl+xXu14Z0S7k4ZUSaTZO LcQfRqnjy0F3pXIjTjg0El3zWeq/8iAMrKKcnEn1MZ+flIjvp/4g12nipwKIqEcs+1+N 7M7UiYRk4ZXvaQ1s7Wk37gaYzDtEi9AB/P/oPjrmP4p90ZokHLukLeGjsgyGyauv2QZm SQfAwLUWdl4+3S+dIgwRL545VXAvnOKG366Uz6YEQvJxrg7xxAy9NQova5nssJXrBU3s O6QA== X-Gm-Message-State: AC+VfDwsClusQYjT0Tesb2VQCpx6cLwXGIQtJ9pwKBYDGvFkbFUB3pr6 Bc4GFek8zCNfN4HfOyeD3faeQWUIF9c= X-Google-Smtp-Source: ACHHUZ4wPxET9uBvmWfcxamggV7Q1vgeHwRu0wYaRg9fBK2KHo4d9rFtCzs0SF7nC9+ysTV4EogXZw== X-Received: by 2002:a17:907:9301:b0:969:fd4b:554a with SMTP id bu1-20020a170907930100b00969fd4b554amr5895597ejc.24.1684654335863; Sun, 21 May 2023 00:32:15 -0700 (PDT) Received: from mitsuki.. (ip-78-45-48-213.bb.vodafone.cz. [78.45.48.213]) by smtp.gmail.com with ESMTPSA id rs23-20020a170907037700b0096f5781205fsm1554077ejb.165.2023.05.21.00.32.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 May 2023 00:32:15 -0700 (PDT) From: David Rosca To: ffmpeg-devel@ffmpeg.org Date: Sun, 21 May 2023 09:31:42 +0200 Message-Id: <20230521073141.54054-1-nowrep@gmail.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] lavc/vaapi_encode: add "quality" option to all encoders 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: David Rosca Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Move "quality" option from h264_vaapi to common options. --- libavcodec/vaapi_encode.c | 3 +++ libavcodec/vaapi_encode.h | 8 +++++++- libavcodec/vaapi_encode_h264.c | 5 ----- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index bfca315a7a..974b805df1 100644 --- a/libavcodec/vaapi_encode.c +++ b/libavcodec/vaapi_encode.c @@ -2635,6 +2635,9 @@ av_cold int ff_vaapi_encode_init(AVCodecContext *avctx) if (err < 0) goto fail; + if (avctx->compression_level == FF_COMPRESSION_DEFAULT) + avctx->compression_level = ctx->quality; + if (avctx->compression_level >= 0) { err = vaapi_encode_init_quality(avctx); if (err < 0) diff --git a/libavcodec/vaapi_encode.h b/libavcodec/vaapi_encode.h index a1e639f56b..3e4a8c24d3 100644 --- a/libavcodec/vaapi_encode.h +++ b/libavcodec/vaapi_encode.h @@ -364,6 +364,8 @@ typedef struct VAAPIEncodeContext { AVFifo *encode_fifo; // Max number of frame buffered in encoder. int async_depth; + // Encode quality (trades off against speed, higher is faster) + int quality; } VAAPIEncodeContext; enum { @@ -490,7 +492,11 @@ int ff_vaapi_encode_close(AVCodecContext *avctx); { "max_frame_size", \ "Maximum frame size (in bytes)",\ OFFSET(common.max_frame_size), AV_OPT_TYPE_INT, \ - { .i64 = 0 }, 0, INT_MAX, FLAGS } + { .i64 = 0 }, 0, INT_MAX, FLAGS }, \ + { "quality", \ + "Set encode quality (trades off against speed, higher is faster)", \ + OFFSET(common.quality), AV_OPT_TYPE_INT, \ + { .i64 = -1 }, -1, INT_MAX, FLAGS } #define VAAPI_ENCODE_RC_MODE(name, desc) \ { #name, desc, 0, AV_OPT_TYPE_CONST, { .i64 = RC_MODE_ ## name }, \ diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c index 9ad017d540..c9629c1fea 100644 --- a/libavcodec/vaapi_encode_h264.c +++ b/libavcodec/vaapi_encode_h264.c @@ -71,7 +71,6 @@ typedef struct VAAPIEncodeH264Context { // User options. int qp; - int quality; int coder; int aud; int sei; @@ -1211,8 +1210,6 @@ static av_cold int vaapi_encode_h264_init(AVCodecContext *avctx) avctx->profile = priv->profile; if (avctx->level == FF_LEVEL_UNKNOWN) avctx->level = priv->level; - if (avctx->compression_level == FF_COMPRESSION_DEFAULT) - avctx->compression_level = priv->quality; // Reject unsupported profiles. switch (avctx->profile) { @@ -1282,8 +1279,6 @@ static const AVOption vaapi_encode_h264_options[] = { { "qp", "Constant QP (for P-frames; scaled by qfactor/qoffset for I/B)", OFFSET(qp), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 52, FLAGS }, - { "quality", "Set encode quality (trades off against speed, higher is faster)", - OFFSET(quality), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, FLAGS }, { "coder", "Entropy coder type", OFFSET(coder), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, FLAGS, "coder" }, { "cavlc", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, FLAGS, "coder" }, -- 2.40.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".