From patchwork Sun Jul 4 01:40:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 28753 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp2928053ios; Sat, 3 Jul 2021 18:47:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyv4FGsOnkYtUewWpxlRm4lIVMW9VKEDnE6mIHPjbtlfi6VRhDcUziB+0mWo5PrKX12/Rx/ X-Received: by 2002:a05:6402:1d55:: with SMTP id dz21mr7691522edb.338.1625363223463; Sat, 03 Jul 2021 18:47:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625363223; cv=none; d=google.com; s=arc-20160816; b=Nifi8geiifPc9NqWdF/ll2wKttUNRpw2Ngip9Sg7rmmCMW/xT2TCrsTm8sCAbFNBtu JFYG/tYtKFHk6+i91nrwKYkz8wkaS9KiEfIvOcQaZG9KxUQOp0bzWdzE5CnhjJ1m569e rMkg0UGR4dIUVkklGbpS0r+UXGjnJVSu1Dy+i3I3qKowRrJorET/wz1cDtTxHOUrYtRS lMt8569SsXowlICCWZ+HndQ2LyOyeYL0D+FJ/e8exYeNefShJkOLm2m9bM+ZY5d+vzXN fTAJ7ViU3wYWFJ6Md9XqtEuHGTh5t2Wj9/4yt0M9CSqaApZb/ZULaOTLDkCvhjM6B8tM BmHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to; bh=Yk35kOjr5BEdr0q9vWKdJJz+Q+dWZQrCdePXZyxNy1s=; b=0zVSxq3yftfVleNkB4YNJifP01ZaJOT1EXUsabLJ4bWXGGkfI6LH1+eqT2xWn6h7Z0 uKHyz5y6lXyNoSJrbd8otR3waLI+QxVeof8S9Ixj/mAjfnMZF8xQLh3T+nCzRePyVKMh aLrMXzFBYhoW93fPNUQ3z5oFRKxkfs+akkAqaBpJPH2VeYu/gBnkN59YGYLHuZQh9SSi f8Vp/954LCeULsRw40gumXT9rfoxwSrvQ/LuzkqGA2dBRuCnuzunxTqUsKV69PBnrr6m 0QrTPDbIR4UPEAxF1d328sIDZ0FtZQD6cNnMXiq4HxVW/lZ41dbXXgfK8lvbUybubiQS MNCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=mofuk5Lc; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id k9si2963398edr.515.2021.07.03.18.47.03; Sat, 03 Jul 2021 18:47:03 -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=@gmail.com header.s=20161025 header.b=mofuk5Lc; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 02D2B68A3B8; Sun, 4 Jul 2021 04:47:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4CDEC688181 for ; Sun, 4 Jul 2021 04:46:54 +0300 (EEST) Received: by mail-wm1-f51.google.com with SMTP id n33so1517486wms.1 for ; Sat, 03 Jul 2021 18:46:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=OhCGrrQFKbwJXU67zAXz02Fpkt57UrUVYvacwFqamZQ=; b=mofuk5LcFrdej2LlQoeApE+WHQx+dMgs3Ys3TRqMCCIk71wf/1ALyIzzY/L2Nm3MJn UJZXfW+gd8Qy5IUyqQ3JuDZHbxtxbxojZCYweCgldY1UZNE6MOlPfQ0eilvQFQfhf3VI PbNCRLC0XLV6H7oMjEplEUnRJRFapAS1AiBeAiPvTvAUIh5kP/v+8vSEIUUk8St6qZfD GGBwM/+UhFimM+9mzkes9xilFqWjVeE9icl29yr5VFocMowtHaLkyCXipolXS1nFfAf5 N47tgM7BMNKxGZ/2eM3qvMFoUn15XFpMkRfahUCrlDOua4avorgp3C3uOBleNA/7LUeW Pipw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=OhCGrrQFKbwJXU67zAXz02Fpkt57UrUVYvacwFqamZQ=; b=S6C1Rw/ySHzz2P65b0XdpIYbTCvPoBGBKIsQkJ8VieeD4MN18NkEnhFm0mU6Nz6mh+ mwb+mFVUogGQjG4Zwew3X5mAf8AIhoUaVifs2RRWTFwrDW+XkncVF3AvsM6Wdd27PHxY NB8JiVX2Qgrc5wBAjvmX1FsS0Q4Wxhoddy53ZgVn+48XlTNkrbMyI+mBOAIDQRlm/aym /97eQPDm6m8sLXAXoZwS87nfh5Fyw/Wj0KGsBg+EbdWzq4ARlWHvfc9QH/aCozWKcJRb +7xHzqpYfloTav5xlqKPNawp95xm0vh5/ZlzaaBZH2Dfmv4UgLprxnSKGvFaxiwLtoOs kJ8Q== X-Gm-Message-State: AOAM53099BoAu76MWatNGaI5FBwu6L0exOl4xU/m5+PBIcLRN2taUrKX 03ZzhXTDPnRCm+m3cV5zLNPT8NMDMBQTHT6H X-Received: by 2002:a1c:2142:: with SMTP id h63mr7214647wmh.84.1625362821259; Sat, 03 Jul 2021 18:40:21 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id n18sm11168390wms.3.2021.07.03.18.40.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 Jul 2021 18:40:20 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 4 Jul 2021 09:40:05 +0800 Message-Id: <20210704014007.25451-1-mypopydev@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH 1/3] lavc/libsvtav1: Enable svtav1-params like x264-params in libx264 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 7k9kLlR2z0wk From: Jun Zhao Enabled the svtav1-params, then we can set all the params Signed-off-by: Jun Zhao --- libavcodec/libsvtav1.c | 337 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 337 insertions(+) diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c index fabc4e6428..9d72a35f6c 100644 --- a/libavcodec/libsvtav1.c +++ b/libavcodec/libsvtav1.c @@ -71,6 +71,8 @@ typedef struct SvtContext { int tile_columns; int tile_rows; + + AVDictionary *svt_av1_params; } SvtContext; static const struct { @@ -146,11 +148,334 @@ static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc) } +static void set_asm_type(EbSvtAv1EncConfiguration *p, const char *value) +{ + const struct { + const char *name; + CPU_FLAGS flags; + } param_maps[] = { + {"c", 0}, + {"0", 0}, + + {"mmx", (CPU_FLAGS_MMX << 1) - 1}, + {"1", (CPU_FLAGS_MMX << 1) - 1}, + + {"sse", (CPU_FLAGS_SSE << 1) - 1}, + {"2", (CPU_FLAGS_SSE << 1) - 1}, + + {"sse2", (CPU_FLAGS_SSE2 << 1) - 1}, + {"3", (CPU_FLAGS_SSE2 << 1) - 1}, + + {"sse3", (CPU_FLAGS_SSE3 << 1) - 1}, + {"4", (CPU_FLAGS_SSE3 << 1) - 1}, + + {"ssse3", (CPU_FLAGS_SSSE3 << 1) - 1}, + {"5", (CPU_FLAGS_SSSE3 << 1) - 1}, + + {"sse4_1", (CPU_FLAGS_SSE4_1 << 1) - 1}, + {"6", (CPU_FLAGS_SSE4_1 << 1) - 1}, + + {"sse4_2", (CPU_FLAGS_SSE4_2 << 1) - 1}, + {"7", (CPU_FLAGS_SSE4_2 << 1) - 1}, + + {"avx", (CPU_FLAGS_AVX << 1) - 1}, + {"8", (CPU_FLAGS_AVX << 1) - 1}, + + {"avx2", (CPU_FLAGS_AVX2 << 1) - 1}, + {"9", (CPU_FLAGS_AVX2 << 1) - 1}, + + {"avx512", (CPU_FLAGS_AVX512VL << 1) - 1}, + {"10", (CPU_FLAGS_AVX512VL << 1) - 1}, + + {"max", CPU_FLAGS_ALL}, + {"11", CPU_FLAGS_ALL}, + }; + const uint32_t para_map_size = FF_ARRAY_ELEMS(param_maps); + uint32_t i; + + for (i = 0; i < para_map_size; ++i) { + if (strcmp(value, param_maps[i].name) == 0) { + p->use_cpu_flags = param_maps[i].flags; + return; + } + } + + p->use_cpu_flags = CPU_FLAGS_INVALID; +}; + +static void set_level(EbSvtAv1EncConfiguration *p, const char *value) +{ + if (strtoul(value, NULL, 0) != 0 || strcmp(value, "0") == 0) + p->level = (uint32_t)(10 * strtod(value, NULL)); + else + p->level = 9999999; +}; + +static void set_cfg_crf(EbSvtAv1EncConfiguration *p, const char *value) +{ + p->qp = strtoul(value, NULL, 0); + p->rate_control_mode = 0; + p->enable_tpl_la = 1; +} + +#define SVT_PARAM_BAD_NAME (-1) +#define SVT_PARAM_BAD_VALUE (-2) +#define SVT_PARAM_ALLOC_FAILED (-3) +static int svt_param_parse(EbSvtAv1EncConfiguration *p, const char *name, const char *value ) +{ + char *name_buf = NULL; + int b_error = 0; + int errortype = SVT_PARAM_BAD_VALUE; + int name_was_bool; + int value_was_null = !value; + + if (!name) + return SVT_PARAM_BAD_NAME; + if (!value) + value = "true"; + + if (value[0] == '=') + value++; + + if (strchr(name, '_')) { // s/_/-/g + char *c; + name_buf = av_strdup(name); + if (!name_buf) + return SVT_PARAM_ALLOC_FAILED; + while ((c = strchr(name_buf, '_'))) + *c = '-'; + name = name_buf; + } + + name_was_bool = 0; + +#define OPT(STR) else if (!strcmp(name, STR)) +#define OPT2(STR0, STR1) else if (!strcmp(name, STR0) || !strcmp(name, STR1)) + if (0) + ; + OPT2("preset", "enc-mode") + p->enc_mode = (uint8_t)strtoul(value, NULL, 0); + + /* + * Encoder Global Options + */ + OPT("pred-struct") + p->pred_structure = (uint8_t)strtol(value, NULL, 0); + + OPT("profile") + p->profile = strtol(value, NULL, 0); + OPT("tier") + p->tier = strtol(value, NULL, 0); + OPT("level") + set_level(p, value); + + OPT("fps") { + p->frame_rate = strtoul(value, NULL, 0); + if (p->frame_rate <= 1000) { + p->frame_rate = p->frame_rate << 16; + } + } + OPT("fps-num") + p->frame_rate_numerator = strtoul(value, NULL, 0); + OPT("fps-denom") + p->frame_rate_denominator = strtoul(value, NULL, 0); + + OPT("hierarchical-levels") + p->hierarchical_levels = strtol(value, NULL, 0); + + OPT("asm") + set_asm_type(p, value); + OPT("lp") + p->logical_processors = (uint32_t)strtoul(value, NULL, 0); + OPT("unpin") + p->unpin = (uint32_t)strtoul(value, NULL, 0); + OPT("ss") + p->target_socket = (int32_t)strtol(value, NULL, 0); + + /* + * Rate Control Options + */ + OPT("rc") + p->rate_control_mode = strtoul(value, NULL, 0); + OPT("crf") + set_cfg_crf(p, value); + OPT("max-qp") + p->max_qp_allowed = strtoul(value, NULL, 0); + OPT("min-qp") + p->min_qp_allowed = strtoul(value, NULL, 0); + OPT2("q", "qp") + p->qp = strtoul(value, NULL, 0); + OPT("tbr") + p->target_bit_rate = 1000 * strtoul(value, NULL, 0); + OPT("vbv-bufsize") + p->vbv_bufsize = 1000 * strtoul(value, NULL, 0); + OPT("adaptive-quantization") + p->enable_adaptive_quantization = (EbBool)strtol(value, NULL, 0); + OPT("scd") + p->scene_change_detection = strtoul(value, NULL, 0); + + /* + * GOP size and type Options + */ + OPT("keyint") + p->intra_period_length = strtol(value, NULL, 0); + OPT("irefresh-type") + p->intra_refresh_type = strtol(value, NULL, 0); + OPT2("lad", "lookahead") + p->look_ahead_distance = strtoul(value, NULL, 0); + + /* + * AV1 Specific Options + */ + OPT("tile-rows") + p->tile_rows = (EbBool)strtol(value, NULL, 0); + OPT("tile-columns") + p->tile_columns = (EbBool)strtol(value, NULL, 0); + + OPT2("dlf", "disable-dlf") + p->disable_dlf_flag = strtol(value, NULL, 0); + OPT("enable-tpl-la") + p->enable_tpl_la = strtol(value, NULL, 0); + OPT("cdef-level") + p->cdef_level = strtol(value, NULL, 0); + OPT2("restoration-filtering", "enable-restoration-filtering") + p->enable_restoration_filtering = strtol(value, NULL, 0); + OPT("sg-filter-mode") + p->sg_filter_mode = strtol(value, NULL, 0); + OPT("wn-filter-mode") + p->wn_filter_mode = strtol(value, NULL, 0); + OPT2("mfmv", "enable-mfmv") + p->enable_mfmv = strtol(value, NULL, 0); + OPT2("redundant-blk", "enable-redundant-blk") + p->enable_redundant_blk = strtol(value, NULL, 0); + OPT2("spatial-sse-full-loop-level", "enable-spatial-sse-full-loop-level") + p->spatial_sse_full_loop_level = strtol(value, NULL, 0); + OPT2("new-nrst-near-comb", "enable-new-nrst-near-comb") + p->new_nearest_comb_inject = strtol(value, NULL, 0); + OPT2("nsq-table-use", "enable-nsq-table-use") + p->nsq_table = strtol(value, NULL, 0); + OPT2("framend-cdf-upd-mode", "enable-framend-cdf-upd-mode") + p->frame_end_cdf_update = strtol(value, NULL, 0); + OPT("chroma-mode") + p->set_chroma_mode = strtol(value, NULL, 0); + OPT2("dcfl", "disable-cfl") + p->disable_cfl_flag = strtol(value, NULL, 0); + OPT2("local-warp", "enable-local-warp") + p->enable_warped_motion = strtol(value, NULL, 0); + OPT2("global-motion", "enable-global-motion") + p->enable_global_motion = strtol(value, NULL, 0); + OPT2("pic-based-rate-est", "enable-pic-based-rate-est") + p->pic_based_rate_est = strtol(value, NULL, 0); + OPT2("intra-angle-delta", "enable-intra-angle-delta") + p->intra_angle_delta = strtol(value, NULL, 0); + OPT2("interintra-comp", "enable-interintra-comp") + p->inter_intra_compound = strtol(value, NULL, 0); + OPT2("paeth", "enable-paeth") + p->enable_paeth = strtol(value, NULL, 0); + OPT2("smooth", "enable-smooth") + p->enable_smooth = strtol(value, NULL, 0); + + OPT("mrp-level") + p->mrp_level = strtol(value, NULL, 0); + + OPT("obmc-level") + p->obmc_level = strtol(value, NULL, 0); + + OPT("rdoq-level") + p->rdoq_level = strtol(value, NULL, 0); + + OPT("filter-intra-level") + p->filter_intra_level = (int8_t)strtoul(value, NULL, 0); + + OPT2("intra-edge-filter", "enable-intra-edge-filter") + p->enable_intra_edge_filter = strtol(value, NULL, 0); + + OPT("pred-me") + p->pred_me = strtol(value, NULL, 0); + + OPT("bipred-3x3") + p->bipred_3x3_inject = strtol(value, NULL, 0); + + OPT("compound") + p->compound_level = strtol(value, NULL, 0); + + OPT("use-default-me-hme") + p->use_default_me_hme = (EbBool)strtol(value, NULL, 0); + OPT("hme") + p->enable_hme_flag = (EbBool)strtoul(value, NULL, 0); + OPT("hme-l0") + p->enable_hme_level0_flag = (EbBool)strtoul(value, NULL, 0); + OPT("hme-l1") + p->enable_hme_level1_flag = (EbBool)strtoul(value, NULL, 0); + OPT("hme-l2") + p->enable_hme_level2_flag = (EbBool)strtoul(value, NULL, 0); + + OPT("ext-block") + p->ext_block_flag = (EbBool)strtoul(value, NULL, 0); + + OPT("search-w") + p->search_area_width = strtoul(value, NULL, 0); + OPT("search-h") + p->search_area_height = strtoul(value, NULL, 0); + + OPT("scm") + p->screen_content_mode = strtol(value, NULL, 0); + + OPT("intrabc-mode") + p->intrabc_mode = strtol(value, NULL, 0); + + OPT("hbd-md") + p->enable_hbd_mode_decision = (uint8_t)strtoul(value, NULL, 0); + + OPT("palette-level") + p->palette_level = (int32_t)strtoul(value, NULL, 0); + + OPT("umv") + p->unrestricted_motion_vector = (EbBool)strtol(value, NULL, 0); + + OPT("film-grain") + p->film_grain_denoise_strength = strtol(value, NULL, 0); + + OPT("tf-level") + p->tf_level = strtol(value, NULL, 0); + + OPT("enable-overlays") + p->enable_overlays = (EbBool)strtoul(value, NULL, 0); + + OPT("enable-stat-report") + p->stat_report = (uint8_t)strtoul(value, NULL, 0); + + /* + * AV1 Specific Options + */ + OPT("color-primaries") + p->color_primaries = (uint8_t)strtoul(value, NULL, 0); + OPT("transfer-characteristics") + p->transfer_characteristics = (uint8_t)strtoul(value, NULL, 0); + OPT("matrix-coefficients") + p->matrix_coefficients = (uint8_t)strtoul(value, NULL, 0); + OPT("color-range") + p->color_range = (uint8_t)strtoul(value, NULL, 0); + else { + b_error = 1; + errortype = SVT_PARAM_BAD_NAME; + } +#undef OPT +#undef OPT2 + + av_freep(&name_buf); + + b_error |= value_was_null && !name_was_bool; + return b_error ? errortype : 0; +} + static int config_enc_params(EbSvtAv1EncConfiguration *param, AVCodecContext *avctx) { SvtContext *svt_enc = avctx->priv_data; const AVPixFmtDescriptor *desc; + AVDictionaryEntry *en = NULL; + int ret; param->source_width = avctx->width; param->source_height = avctx->height; @@ -218,6 +543,16 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, param->tile_columns = svt_enc->tile_columns; param->tile_rows = svt_enc->tile_rows; + while (en = av_dict_get(svt_enc->svt_av1_params, "", en, AV_DICT_IGNORE_SUFFIX)) { + if ((ret = svt_param_parse(param, en->key, en->value)) < 0) { + av_log(avctx, AV_LOG_WARNING, + "Error parsing option '%s = %s'.\n", + en->key, en->value); + if (ret == SVT_PARAM_ALLOC_FAILED) + return AVERROR(ENOMEM); + } + } + return 0; } @@ -533,6 +868,8 @@ static const AVOption options[] = { { "tile_columns", "Log2 of number of tile columns to use", OFFSET(tile_columns), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 4, VE}, { "tile_rows", "Log2 of number of tile rows to use", OFFSET(tile_rows), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 6, VE}, + { "svtav1-params", "Override the SVT-AV1 configuration using a :-separated list of key=value parameters", OFFSET(svt_av1_params), AV_OPT_TYPE_DICT, { 0 }, 0, 0, VE }, + {NULL}, }; From patchwork Sun Jul 4 01:40:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 28752 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp2927673ios; Sat, 3 Jul 2021 18:45:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwBHprXdEjT+Ib8b46dSreJ3wTRzh75EyY0628Xspk5sSAS1MxTE/97or3YVuG28w6T6X0f X-Received: by 2002:a17:907:7253:: with SMTP id ds19mr6841693ejc.342.1625363159413; Sat, 03 Jul 2021 18:45:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625363159; cv=none; d=google.com; s=arc-20160816; b=CvJbtHRB7yZD2rkSZO5+Dx+tQrsZAB04HHm8lJOA4X1NsF8RncKrMTZp8/UNjofKA4 tEY6sDygvH9hCl/o5Uu5d1Patd8+wrP5V2IWT+ViX9B+9wFHjuA0P8qTy2h7SJw7N5dl PcWcszdiorTGikv7UUY6DzRL8Ki5vD5igfKrz+oh7fhBq6T05y0JaWkbYoZes9HNOiXg uyoK4sc4OOWXGcbCkkMs3tqAPabhSp59z4jqKwlz/FMPWL9vxXFLANLlCGTKSVNal3U2 65sgiH3L5X9GU7yL1Ped7xtJvFbT0eKgAoC63rM9WROFc18ysHzLXqZpEB4d8Ko7+Drt YCPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=c31YhfmsSB9QcYKfjQ8oT0nZKft0aCdBwXeJt3Qsiuw=; b=xV+8eoDyoPKKLk6KcUVbHOox7mQqTrP7QiOf4St9uGWZ7udkCpKx8O8a9htwJ+yACv A25aK9R3iE5BIqAKiBol/HnRzh91SkXQno2oGN1lTFRSi/pqOmpJq4X1x+KVM6TTlvdc YBGTksgoVGRh1o0/yDV1r3NOCclwdRrPXew9JycIXSBDOE+nN+0osNVPO8NSlVg9iS5L emltWuU+hY8Fu+S8/22coNjDc5PU3/3XXXMsZiSucJZ5VhgEqkWFrazXFE6w6PHmpf64 mrvimCX2vQ0nS99PdqZBAxhkWAELLrizqnT8kEN4/69fAOFWwaX4NHkKJM82zs6pMonp ibqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=TzQUZVLg; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id mm11si7018871ejb.495.2021.07.03.18.45.58; Sat, 03 Jul 2021 18:45:59 -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=@gmail.com header.s=20161025 header.b=TzQUZVLg; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B97B068A12D; Sun, 4 Jul 2021 04:45:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 32AFD688181 for ; Sun, 4 Jul 2021 04:45:48 +0300 (EEST) Received: by mail-wr1-f43.google.com with SMTP id f14so17098184wrs.6 for ; Sat, 03 Jul 2021 18:45:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=YQKgQNjPoJGzxg1oKdV/DoD0qjm9A00Ey/iSmRsDKPg=; b=TzQUZVLg97nAsnfraXyKUukE1pzGEAx/6QXqH2/QM7yIfNfOTtOLzaRJaj3snIDbTF 3TxLs3Z14BWPPitOyHGrHuGiHNGCx4RcoE/XTJxxQt83O49L/B2++9up3sJMtWBGhn/B 4qFN16c6Oaee0cn39MoW8cqOeyWtIi7ebOQXcdbk9ochG/A1b0TsMBYHqSo/hlhREdnd bgONEeIhPi49NCHZAxUOGwxa9G2pNX9o1Bv+DMZPiPB8BCTxbsHPeU9dfVITZk6O8hxq P1cSvPLV9MH3L9M7C1Zx4LPuu2UFvjVQk0iC0R0KIaZtK5JKjbJLLcUYrCr3tQJOQOPE cs1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=YQKgQNjPoJGzxg1oKdV/DoD0qjm9A00Ey/iSmRsDKPg=; b=RjA4GUO3CVHkfILhQnVvvkAsruBdODebl6liNpYaheTg1lzRCX2QEtoE9TJ9fklmSR QnWCs/2GcXvaI5BC5WI7FeB2aRlHC8nvdIeWaPKJP7eyeqwdomS9viPtjhJqnPqng7w2 CxiVA1jOy3EE4mTmLQd8okiwUHWlev0GKtqySvGQJA8V5jxD+PpgE2EJycUP77wFrrCk S3g48g0PSbhjqdv67/MocJuYtViZcT55VsJaiRgHceNiHrwDly+9Z8qgRRsgYtm/jHG3 viPn/7V5iP7JPUs0fswKXuwEvyw9CLbWCQ3y5AJn+4ymneJni2A6BIrJ9ZRYo7DKfUcn x/eg== X-Gm-Message-State: AOAM5317Aj2AlIXleuLFyTJeyPRXBb+pQ5+PgqM6CrvrTuBqROB4zPqx S4PqPZFQBkBOVcSDR1KCHjQ/MVp3kRVHwTgb X-Received: by 2002:a05:6000:178c:: with SMTP id e12mr7847233wrg.140.1625362822361; Sat, 03 Jul 2021 18:40:22 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id n18sm11168390wms.3.2021.07.03.18.40.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 Jul 2021 18:40:21 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 4 Jul 2021 09:40:06 +0800 Message-Id: <20210704014007.25451-2-mypopydev@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210704014007.25451-1-mypopydev@gmail.com> References: <20210704014007.25451-1-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/3] doc/encoders: Add svtav1-params option for svtav1 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: a/9gIbXBCQZa From: Jun Zhao Signed-off-by: Jun Zhao --- doc/encoders.texi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/encoders.texi b/doc/encoders.texi index 4c38996372..4df6066304 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -1798,6 +1798,10 @@ Set log2 of the number of rows of tiles to use (0-6). @item tile_columns Set log2 of the number of columns of tiles to use (0-4). +@item svtav1-params +Set SVT-AV1 options using a list of @var{key}=@var{value} couples separated +by ":". See @command{SvtAv1EncApp --help} for a list of options. + @end table @section libkvazaar From patchwork Sun Jul 4 01:40:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 28751 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp2928170ios; Sat, 3 Jul 2021 18:47:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwthVYrF3NcOXa1pWxSMdOATXDkVMYWb+RFl/RNSfDugwYf+119YJGgIaPdocFpPG0x+rI4 X-Received: by 2002:a17:907:7d94:: with SMTP id oz20mr6707881ejc.333.1625363240548; Sat, 03 Jul 2021 18:47:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625363240; cv=none; d=google.com; s=arc-20160816; b=TUNI4ow9Jk7cWFw/tRpBRuv/lgq4FUddFSJsT6uaks8t3nfv9p/gdjbitydC7nSNcC sk0nvrdjFTDyJTHkkFDkClblhPU1qyuCDc2bzhiR0Ah5uVyZrRlIweGF8L5cJ6LtI8QD VeMZR1T6z1GgJlh4SPoowq9isC9pUAAkKPKw1ooBdUW4zRb820fpaBOwmLmw9+IImfYz CKyGiOu4JjFHJfy+fAMkNsR79YcU8eOrp4jPqw8KVf2Xd/ndk1yH7b2SdaDYl850783r 0ZyvZb9e3kVAX3zAt0VRJyKyNHuuFTm352NVfEeOpvRHsPYaUTB5PgoV4YsSE2xTSwHA F4nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=/j8i+MMrTMXUdub0kbkcGPiQ4E2yQI/5pjoAVbYirO4=; b=0ANSX/2PZOyzZ3BT2bQL23F140tYQES5Z/PhRn46OuUDFAXcIOEFCXWjHG3IR6BIiL ef69+R4RXqjO03xO59/AsUWICc/ibel2BSoVQJ/fu6Qfw5vMFVfR1K/5BS4ScDdBhzhC QNrDMMU4ORXaZPOvD/DyLwkqK9W1PJ5s6dtF9Aan2GVtpDqY0dEND1hfgYtV6RzzBDEL SZ+XsUsS8UD4zTpp8mUsJgjMYao6wOulZoDOH4/Q77vNDKgOGrnqVNxNj1HpVHgHsGDg v3ULV/Ip+g/OYaFTi9e76ekVZ0VdWkGXp2bHZDMdTZRO94dyjWa5Nc6rjiYiVagBsuSI B2iQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=RflJx8VR; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id jg40si6854765ejc.589.2021.07.03.18.47.20; Sat, 03 Jul 2021 18:47:20 -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=@gmail.com header.s=20161025 header.b=RflJx8VR; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2BBF568A119; Sun, 4 Jul 2021 04:47:18 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D7CCD68A119 for ; Sun, 4 Jul 2021 04:47:10 +0300 (EEST) Received: by mail-wm1-f45.google.com with SMTP id g10so3159866wmh.2 for ; Sat, 03 Jul 2021 18:47:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=aYi7IrKbFJu1bbsIz0BLbQQDplgc1B7MGG+LsddWJoo=; b=RflJx8VRKae7V+O0l0FfCWFp+Fz5B3vuhibGVe9yf6NM4het2Dv7ELx+IYodhBFfAj pDx1EABmG7wq39Uc+u0tgPpEC1tN5YCibjI5LuiYiLMuZeoZINjSSdFK3qBW78MfwfyH jxeVaM4y61E8W4GN5f+qfYf1G1/2OE048tK3d8Ryl8Mn/64jNGehzlDIUbZ5kRtR3XJD e45wRiyNEnFM1O+IKj+locTAnbKuMGoBBgDQOUQWACyOsANqeG+7Jj3WneyxKDtGZKwM c3o1YVRnslT6xal6nWmpojnfYp0eGMbP5cO0ERMVGG7dTC48BsrZyal9Qu6y1A4tkTqj Lp6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=aYi7IrKbFJu1bbsIz0BLbQQDplgc1B7MGG+LsddWJoo=; b=t8ozgm2E8KQ/o5F/IuP5smPgNMbdDJ/95QdV0uq2dGdwr8anGRwtfOOXrGVc0x4xJH NdqzCwbo2w/S1xxaS+cgeFtZIZ75lqESvBIjjmAosK2bOc0PShBapmlNmMnY3wdnpAY9 aFxDcE5vVBoAPWXsqhncpGvJ/LHclv2EVZy9jslRD1ag8sQ2x7MDAGY40WCN0fQMxdJq sf2p+SQVItTlI1yUMFr/auy8ytKrjO4Rk6r6aE7YgRLNn/w1FrKdtYtvsfHqZ8/SI/Vs BX6et4xlyBw5Wdca0QbejydCx16QLjFSk1lVoRXaDQq02Kgwf8d7jtbsf3+02v9OHuBY s38A== X-Gm-Message-State: AOAM533kRwdlgt8hi+yQo8xSuFICs+lFwhyyz3mxtSujGBHCfOhrqOks DoWBOX0TjLdTUfjISSNhDkbMxPtaed5uGbQT X-Received: by 2002:a1c:4e18:: with SMTP id g24mr7149735wmh.147.1625362822777; Sat, 03 Jul 2021 18:40:22 -0700 (PDT) Received: from localhost.localdomain ([49.51.162.193]) by smtp.gmail.com with ESMTPSA id n18sm11168390wms.3.2021.07.03.18.40.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 03 Jul 2021 18:40:22 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sun, 4 Jul 2021 09:40:07 +0800 Message-Id: <20210704014007.25451-3-mypopydev@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210704014007.25451-1-mypopydev@gmail.com> References: <20210704014007.25451-1-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH 3/3] lavc:libsvtav1: Update SVT-AV1 new repo 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ug9C/3oad3sK From: Jun Zhao SVT-AV1 moved the repo from github to gitlab. Signed-off-by: Jun Zhao --- doc/general_contents.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/general_contents.texi b/doc/general_contents.texi index 354899ad17..f3f4feab70 100644 --- a/doc/general_contents.texi +++ b/doc/general_contents.texi @@ -263,7 +263,7 @@ to @file{./configure}. FFmpeg can make use of the Scalable Video Technology for AV1 library for AV1 encoding. -Go to @url{https://github.com/OpenVisualCloud/SVT-AV1/} and follow the instructions +Go to @url{https://gitlab.com/AOMediaCodec/SVT-AV1/} and follow the instructions for installing the library. Then pass @code{--enable-libsvtav1} to configure to enable it.