From patchwork Mon Aug 20 17:56:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kagami Hiiragi X-Patchwork-Id: 10035 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:12c4:0:0:0:0:0 with SMTP id 65-v6csp2787071jap; Mon, 20 Aug 2018 10:56:46 -0700 (PDT) X-Google-Smtp-Source: AA+uWPyZEF1TDj8oVmFki0aZXEaTI0u7MGbYNlccUyeJ+0OVpO6Jk5klI/1a9JR9ZBmwrqI/wcYj X-Received: by 2002:a1c:889:: with SMTP id 131-v6mr25008962wmi.142.1534787806373; Mon, 20 Aug 2018 10:56:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534787806; cv=none; d=google.com; s=arc-20160816; b=prvScgJr6ADfT9xFzrDlJg113MQU2YHTYGs6WEAjB1FrXA7ilmkkt3hv+ZrQGSnbUN 74ldVeGOsnRn6Sc4xq8YvL+aExEeaeNpJ6m7BXtQfSQyFbzPqAW3PC501xWeJ76qonPS wk37IYvlvvQlH5a13c+B7eeqfUQOkPj3AbZfAeUPcfZmIsJ0+MegIuElEEmpmjqLZi3m CiMfrZjl7rqgQ75P53x/ma7tM3hWQtq5qYj1hPftf0oLZxZCvbKthurSzBMbgs2/x9Tb 5AVBavPq5Wk1hd8MWwBDPgj3XTRBB/LxmqPyc00rwrj8EbFhjM7wykBKhdhp9l4H6ie1 RlAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:content-language:mime-version:date:message-id :autocrypt:openpgp:from:to:dkim-signature:delivered-to :arc-authentication-results; bh=TxMF5Eg4Xwp/q3/6qIT+o2peDvZZ05dxEirpGrlYL28=; b=CuFukUr7z8Idb2Vq3KF/b1STC+9Wvr8d9aSIlk0z9GpgcKqmW/zP7Qotp0LNp/VsgE 2NrOwvwYzPCKFo2TZ9/lir8qSl3NP+efZJRpgvRlSboZwx3D1BDiOZyw7XM7ZaEKBxRr 2XLRbR277VmGeJqj3Pi632gMZxnhHYQlMH3GXKz8mvBFFlC+l9/bcwwhxzqlq9Ylb9aG NcbnXtia/Il98iL2QzhYL9URc9IOq88VrGUTZjwyFlU7MYjKvLeinRa8T1GbAfYhBXzJ 9SUyRvfaBlWsZsXxX//oY9H/uYHFxo0SSQlslsISt2iwICcIPviMTywCKfukZlkbpF// y9tA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@genshiken-org.20150623.gappssmtp.com header.s=20150623 header.b=pToikVvv; 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 o53-v6si1430486wrf.93.2018.08.20.10.56.45; Mon, 20 Aug 2018 10:56:46 -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=@genshiken-org.20150623.gappssmtp.com header.s=20150623 header.b=pToikVvv; 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 AFC9E689B9C; Mon, 20 Aug 2018 20:56:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f196.google.com (mail-lj1-f196.google.com [209.85.208.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5AF86689731 for ; Mon, 20 Aug 2018 20:56:10 +0300 (EEST) Received: by mail-lj1-f196.google.com with SMTP id q127-v6so12266043ljq.11 for ; Mon, 20 Aug 2018 10:56:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=genshiken-org.20150623.gappssmtp.com; s=20150623; h=to:from:subject:openpgp:autocrypt:message-id:date:mime-version :content-language:content-transfer-encoding; bh=T+j64877kiE/shqXw58jvUGw25ZuQXfpXusuZH3x6x4=; b=pToikVvvY9TrbZpt0DMS+HPD4sqVonV1kAWqRgjdSb7A7Uht74ohhGsWlE2PHmJ0OD tlQY2pcHmoDoNuZCBCuDRX3NYUfwaAlkpvVyc0q6DCI/JlgHeDWWgigts/ceS+70kRmt O0ER3lyCXvIP3SWmL+BalECPu4W1+UrUzJ2etZ3k0Nm+dN3poCFDZETV+eU0TeGXUKX2 qSnuUsxPPwBLB4BglKsaYW0XarFaR7HVB5KfO2lecYsbwGhiE3/ixoh+rnJX11rEwCfI rhDPbdqZPXIyg93Ker9Y2O3LkgN/oWvPJX33GJq+NVHUkaZVv+1UGs/imSUor0kKU5Gb 1q4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:openpgp:autocrypt:message-id :date:mime-version:content-language:content-transfer-encoding; bh=T+j64877kiE/shqXw58jvUGw25ZuQXfpXusuZH3x6x4=; b=Zsd09pkiSkdo6otiWqDMND4wiUnNbl6QaUsxKu7QsO3Z2SGbXD3P98A1+SbvefVl0P TRc5OaoXTgcx1C9R4RmiupVmynDJ/27+n2Ue4loBUqRO4HKKWmztrC9onUN5ZLN+yzoX 0hxWSjiDAJ7jmjvx6Ge0+UoOY9vU34Q7oG7y2U+vjcacjMQzYBavV4WXzme2NS/vxHtK n3MUU5muq8br0zbDE2cbedpIJuPQU0vnrRFkOzyRT0PKAwpDPf/xS66xlhOiuVLMgfrO yQMLoDhOnoYtD92LllSPwzLs9sxttgUcI01qV1spebmUvPJBCcPq/3ct9Fw2kKpMTy2Z Y/5g== X-Gm-Message-State: AOUpUlH+0JiQAIMSylrcS9O7u9hTd//mjUrlins1z1JWbykv8kx9eNTy CeNTxpR+fadmyPOBi/Wnajc/5GbOrx0= X-Received: by 2002:a2e:8617:: with SMTP id a23-v6mr2976332lji.43.1534787796849; Mon, 20 Aug 2018 10:56:36 -0700 (PDT) Received: from [172.17.0.3] ([188.143.216.159]) by smtp.googlemail.com with ESMTPSA id v10-v6sm1698936ljg.12.2018.08.20.10.56.36 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 20 Aug 2018 10:56:36 -0700 (PDT) To: FFmpeg development discussions and patches From: Kagami Hiiragi Openpgp: preference=signencrypt Autocrypt: addr=kagami@genshiken.org; prefer-encrypt=mutual; keydata= xsBNBE+323kBCADGA1qoZLvwJiVWPvpqN0ebGDlgZhQ7gk94zkn667IS+oczB9NXDjwCrR2j y33jy/RLOmKJjk3Uk1kSq7G6ObMWSvMBgIkgXxB7X4/R1qlqCyGyWJKVewzULONZzVQXxpol +GUmsAwrvBiSxj4W2B+YMWo7GcQYBrpgACvQKv9EpVvP4CUkZ7rc/E6VSOX54rsQoL1j88AM Edv1fQ/8lGymw4tsr+8NNhjqwuJGB3WKLlWrXELZwOXJAC/KkitzbNePC3lYIq05e8Q/Djpu +1nVjLHk9cEN/Pju/yyW8oOijXcatV5gTbrreZ9wWv2Tg3WwcbbeZ0Axi8AUjKy9K/rjABEB AAHNJUthZ2FtaSBIaWlyYWdpIDxrYWdhbWlAZ2Vuc2hpa2VuLm9yZz7CwHcEEwEKACECGwMC HgECF4AFAlUFecwFCwkIBwMFFQoJCAsFFgIDAQAACgkQ5A87PUs8d4GuWAgAibXDrGzo0SlJ paK/+Ns0q9E2CZKRsZeZ7KaWLhTyeZNbZtQ8yu5b1d5RUhLPZ4f5u7gubfcY2zoygg+Je8Hk +FI6CxoSQd17ErkMTNLRduRgrpORldGx4pxNNTH7+Yr7WnEtBUzee1UjXmA6luXPoluGq5D1 satnkRJgt91H0XeyzTUA+gPeKBA3yRrwfO7W7wP5VB5uaFnWpOk6JXidyovm5VwNU4f3OJ+8 2cUG6yGD6+NIw03OkXfZ3SpTlXPtYR0HAxc0CPnnDqKfqrWgDmqZitB6httiSURoEqOaaEh8 UfOPLjVFjVIlOIFfXX5IZOIiKjCArGZxfrXUQdiPZs7ATQRPt9t5AQgAngQtfdAkaG+CYFJY 8DdQhz6QZpLJPagE+Wage290QBEexnb/EHaXBKWf3VlUnzi+2BDOeAeve9U9Ee+ZvSU9VC8G koFvdIwvchHYfHtf9nr2N+GJ5asUfpEtZWIQVp8TrJsK0izVhOyikdh4s+IPnjpNKygnClKK zWhe4TNrOTN2q/jj0TDbhXOUCM9GIfx41Ur5dvHI+TdBXyBD8fmyQg3sXOthvblcak/1n/pe gyDy98fPVeg/mUXJzZx0tNMqQ4hMjNyqWay6RlSby+hZs93nRDK2Ecwlhs/rhSGNULeiT2Jb L3Yq+nmUMSANPjd4xqzs3FtQYbLCO9rRoIoWQwARAQABwsBfBBgBAgAJBQJPt9t5AhsMAAoJ EOQPOz1LPHeBV1MH/0cwtZleUHQ7/sbW3+xqG/v2ImDAYrfHYtOXTofaxa/8aIiq9DGWizZq iPk9IvEV0c1Ce0onipR6LxnHGoNZFZ3tb5lpo5FRv1DU438ntIB5U7vr0jCmSr9r3Agks4Of PNVKXjod6Sx3nD9HisSlV1+VSyhHgHeAQK0IRsHWamw32q68YQtjiDo4ATBHAaqNW/8/4zeG 0bVGsSVK6mow2T5qSyW7CsG6clEUgcwZmEQJctXaP616Cmj68AGutp776WOs5GV0pjEDu75q LKRdJVD6HOLWFvu8bLS9Oi+qMAJNtXyKBhQ44QaC2DPjoRdVIlCTAttWvQFUN6JL/RkP7Kw= Message-ID: <68088a70-85b7-1512-a326-9c75e49895cc@genshiken.org> Date: Mon, 20 Aug 2018 20:56:36 +0300 MIME-Version: 1.0 Content-Language: tl Subject: [FFmpeg-devel] [PATCH] lavc/libaomenc: Add -tile-columns/-tile-rows 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" These options are required for multithreaded encoding, because they set to zero by default in av1_cx_iface.c. Signed-off-by: Kagami Hiiragi diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c index 9431179886..55cb7ff72e 100644 --- a/libavcodec/libaomenc.c +++ b/libavcodec/libaomenc.c @@ -68,6 +68,8 @@ typedef struct AOMEncoderContext { int static_thresh; int drop_threshold; int noise_sensitivity; + int tile_columns; + int tile_rows; } AOMContext; static const char *const ctlidstr[] = { @@ -75,6 +77,8 @@ static const char *const ctlidstr[] = { [AOME_SET_CQ_LEVEL] = "AOME_SET_CQ_LEVEL", [AOME_SET_ENABLEAUTOALTREF] = "AOME_SET_ENABLEAUTOALTREF", [AOME_SET_STATIC_THRESHOLD] = "AOME_SET_STATIC_THRESHOLD", + [AV1E_SET_TILE_COLUMNS] = "AV1E_SET_TILE_COLUMNS", + [AV1E_SET_TILE_ROWS] = "AV1E_SET_TILE_ROWS", [AV1E_SET_COLOR_RANGE] = "AV1E_SET_COLOR_RANGE", [AV1E_SET_COLOR_PRIMARIES] = "AV1E_SET_COLOR_PRIMARIES", [AV1E_SET_MATRIX_COEFFICIENTS] = "AV1E_SET_MATRIX_COEFFICIENTS", @@ -449,6 +453,11 @@ static av_cold int aom_init(AVCodecContext *avctx, if (ctx->crf >= 0) codecctl_int(avctx, AOME_SET_CQ_LEVEL, ctx->crf); + if (ctx->tile_columns >= 0) + codecctl_int(avctx, AV1E_SET_TILE_COLUMNS, ctx->tile_columns); + if (ctx->tile_rows >= 0) + codecctl_int(avctx, AV1E_SET_TILE_ROWS, ctx->tile_rows); + codecctl_int(avctx, AV1E_SET_COLOR_PRIMARIES, avctx->color_primaries); codecctl_int(avctx, AV1E_SET_MATRIX_COEFFICIENTS, avctx->colorspace); codecctl_int(avctx, AV1E_SET_TRANSFER_CHARACTERISTICS, avctx->color_trc); @@ -746,6 +755,8 @@ static const AVOption options[] = { { "static-thresh", "A change threshold on blocks below which they will be skipped by the encoder", OFFSET(static_thresh), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE }, { "drop-threshold", "Frame drop threshold", offsetof(AOMContext, drop_threshold), AV_OPT_TYPE_INT, {.i64 = 0 }, INT_MIN, INT_MAX, VE }, { "noise-sensitivity", "Noise sensitivity", OFFSET(noise_sensitivity), AV_OPT_TYPE_INT, {.i64 = 0 }, 0, 4, VE}, + { "tile-columns", "Number of tile columns to use, log2", OFFSET(tile_columns), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 6, VE}, + { "tile-rows", "Number of tile rows to use, log2", OFFSET(tile_rows), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 6, VE}, { NULL } };