From patchwork Sat Dec 8 23:18:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 11344 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id CCB6D44DC12 for ; Sun, 9 Dec 2018 01:25:00 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 21D4E68A9B1; Sun, 9 Dec 2018 01:24:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f194.google.com (mail-qk1-f194.google.com [209.85.222.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2C9CF68A997 for ; Sun, 9 Dec 2018 01:24:45 +0200 (EET) Received: by mail-qk1-f194.google.com with SMTP id q1so4569871qkf.13 for ; Sat, 08 Dec 2018 15:24:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=yq330Ys8DfHlsoglbrhHw7yEcyvQScnPhzR/g8Tz1rw=; b=NyG9z9zRT8op/AR7ABVHNgJOuHUQIbiNfFITZZ6chXQRJpURmmD9HZmWXBMni669Ci Vved+ErhMipm4G/W7s9JVqG5AYwHFQni8+UCGX+r7e6LqkDG6cXbrz5g8+qniTw53FOj EHY7hH4QGUZKA35x4+W6t8Omg9UuamkFd/4HLwQqgUoLdVODh+hS29PU4FGET5S5+F4C 6tvIfD9ucecdv/S6VXqOaHcdbdnR7S2DF2bsLI0At6ZcMX1TS8zh6JicuViYZb6imiF0 Bw0QvqMA/szlDwmQ5aAqpqWsadrg0QAyLitvDNMoelFifwugW8OiJQLBec2+7xY8Yifi z1MA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=yq330Ys8DfHlsoglbrhHw7yEcyvQScnPhzR/g8Tz1rw=; b=FNaHNDV9gUeT5far73oQeBhjQZpsI17ZUdGgMsB8TKErA/Picphn2XR3YBgrPHKj+5 /EMvIb6Zi3FEfBmm++bMQ2rQn3btGD6V/njEyKMVf4yBTopkUGijlTfyiOg5AtN1oTJO II+r5g4f9I1KxWW572LIqLgbUdvWvEy2KGUNqKHlyJvsDa9omiNhVOIYGkrlQvYq+R1Y S5P0n80DTs+YwrmF2HpOUkb1YMyJab1NPl/+5JWeLXzvfGxgNZhh+6ikJD498AoriPaq H6x9x0WQZ3vd+JYvVBH+24hoduoGGQIFnvVxzsJm8SXfeXubOnWPFYbiQBN1LDwIwgoM hVPg== X-Gm-Message-State: AA+aEWZcsdGJL7pIcVbCZ+qR9BTrRjJPcgBl+IS47CiyL6FLrwrDU15D ttSWIA49dYfcjNCM8kSfxsA0/5MIbWA= X-Google-Smtp-Source: AFSGD/XBuGp5F7kV/uQl4rw9k2AvolJLpOtK2+4GTAKpLxRVeOhdo4AkJr1C6srarQwulg5eAlDoGA== X-Received: by 2002:a37:a0d5:: with SMTP id j204mr6452626qke.261.1544311102475; Sat, 08 Dec 2018 15:18:22 -0800 (PST) Received: from localhost.localdomain ([179.38.146.219]) by smtp.gmail.com with ESMTPSA id p3sm5292727qkp.48.2018.12.08.15.18.21 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 08 Dec 2018 15:18:22 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 8 Dec 2018 20:18:09 -0300 Message-Id: <20181208231809.4980-1-jamrial@gmail.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/libaomenc: add row-mt option X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Default to disable, same as aomenc. Signed-off-by: James Almer --- libavcodec/libaomenc.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c index 17565017b4..1d3cef73f3 100644 --- a/libavcodec/libaomenc.c +++ b/libavcodec/libaomenc.c @@ -78,6 +78,7 @@ typedef struct AOMEncoderContext { int tile_cols_log2, tile_rows_log2; aom_superblock_size_t superblock_size; int uniform_tiles; + int row_mt; } AOMContext; static const char *const ctlidstr[] = { @@ -92,6 +93,9 @@ static const char *const ctlidstr[] = { [AV1E_SET_SUPERBLOCK_SIZE] = "AV1E_SET_SUPERBLOCK_SIZE", [AV1E_SET_TILE_COLUMNS] = "AV1E_SET_TILE_COLUMNS", [AV1E_SET_TILE_ROWS] = "AV1E_SET_TILE_ROWS", +#ifdef AOM_CTRL_AV1E_SET_ROW_MT + [AV1E_SET_ROW_MT] = "AV1E_SET_ROW_MT", +#endif }; static av_cold void log_encoder_error(AVCodecContext *avctx, const char *desc) @@ -650,6 +654,10 @@ static av_cold int aom_init(AVCodecContext *avctx, codecctl_int(avctx, AV1E_SET_TILE_ROWS, ctx->tile_rows_log2); } +#ifdef AOM_CTRL_AV1E_SET_ROW_MT + codecctl_int(avctx, AV1E_SET_ROW_MT, ctx->row_mt); +#endif + // provide dummy value to initialize wrapper, values will be updated each _encode() aom_img_wrap(&ctx->rawimg, img_fmt, avctx->width, avctx->height, 1, (unsigned char*)1); @@ -983,6 +991,9 @@ static const AVOption options[] = { { "tiles", "Tile columns x rows", OFFSET(tile_cols), AV_OPT_TYPE_IMAGE_SIZE, { .str = NULL }, 0, 0, VE }, { "tile-columns", "Log2 of number of tile columns to use", OFFSET(tile_cols_log2), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 6, VE}, { "tile-rows", "Log2 of number of tile rows to use", OFFSET(tile_rows_log2), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 6, VE}, +#ifdef AOM_CTRL_AV1E_SET_ROW_MT + { "row-mt", "Enable row based multi-threading", OFFSET(row_mt), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, VE}, +#endif { NULL } };