From patchwork Tue Dec 14 07:00:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 32476 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp6547795iog; Mon, 13 Dec 2021 23:00:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJyajSEfCJjmomfTLRSRQ11Zh62JhAfAy66lfVpZA2TD4WoeUKbpQm02gc6KMAMg/Gf9UDPt X-Received: by 2002:a17:906:fcbb:: with SMTP id qw27mr3771620ejb.320.1639465244743; Mon, 13 Dec 2021 23:00:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1639465244; cv=none; d=google.com; s=arc-20160816; b=J7iNFrC84CjXirnvhMj06a0FXeJD4emIDBycCrADLL46n3HmszYCCHfzPT/ruJPkHw snaUz7HPFa6DVIsTJEMaHKi2G0P4LwUu88qTnv31lvkfVyRtqquVbX/B773TuPMHvsrD 6EqgtZLiw1gwisUGHUUwmmw4bmdQA/8iEiti5XTY0FjEiSUTHPkuASl+QFckEiP7+9g+ QbBa8pKthw8BF7K0NV2GD4xRyF+YNyzIRdZUrHXIPirfSb5zNBBQXulbFzKXWTDrwP0p F3mXQ+FgEXyoB9N1I/z/6MtnmEyOrpfezechYXm3UodGNy6M7XZTKI/mYOvCddoxsUfJ USGw== 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=mlAQ3OKkvCTe9NDjRVipMRP6BvchMswr6GopyqizuBE=; b=HUsvRhjbIG8j/eO4DLWCy38yuNusANTNOIb30aRZd/Y1dcvN2zwODbjE+iTkm6af11 vPucNFcEb0SIWoMnFNw3kxioKL1O2G/PimHVncuWgtTBTOz90vXzVh9fe47spOT/NLBJ qNzVXGqeUAj2U5bOdlPPoYKe0G7NzMdehfdolYM/FSIOa2Psj20vSBNzUqTR70GPyWZ4 yXTPLewd4K3a1MXph1W+HmdmqgW8SBf0Ylf/NcRVac9SEjcnUvQ7TwC5hS0xxzHiDBE6 57UzEnF9jgybAvb1ZYDkxqwCFzAV3+ai+jXPosJbl58679HyrhBSbDc609N3ASWX0qg6 bbqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=BGEy8nzi; 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=NONE dis=NONE) header.from=intel.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hc30si2890286ejc.996.2021.12.13.23.00.44; Mon, 13 Dec 2021 23:00:44 -0800 (PST) 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=@intel.com header.s=Intel header.b=BGEy8nzi; 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=NONE dis=NONE) header.from=intel.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5088468A5BE; Tue, 14 Dec 2021 09:00:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8DC2168A5BE for ; Tue, 14 Dec 2021 09:00:33 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1639465238; x=1671001238; h=from:to:cc:subject:date:message-id; bh=atvi2ukZTjhypI0ByLmU7gEp8XDNG4GKWusni1M/jFE=; b=BGEy8nziU0oK2+bqvbKgiza0+523r0AlhscHzL8oEdRKliggqOg3pXtZ 1wXr0XGjGTATUoZKJbF/SYnrXIkMiRprJi+afaRBBEX185EfRETsRR31k kB35dSkXSZb7t2c5rW2GMr6HoNhlRlben0qMZBPCRuC6kG/blVYUABFPK 2ROrSTldQLv9L9jPkYSAzyAOyxjIf6YjFInM9OfNrCkAO2hLtvo5rqdSf CC0s6uKWuPOkYM5KiFqSsbDiLF9538GyxL+Fz96UQTUzmjg68pSyPw8hL MIT80VtJt0hZJUvCoPsRPUgaaL4IzRisCrlnAldARI7fTDVyGFQDazWcr Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10197"; a="236446305" X-IronPort-AV: E=Sophos;i="5.88,204,1635231600"; d="scan'208";a="236446305" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2021 23:00:31 -0800 X-IronPort-AV: E=Sophos;i="5.88,204,1635231600"; d="scan'208";a="463687152" Received: from xhh-dg164.sh.intel.com ([10.239.159.167]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2021 23:00:29 -0800 From: Haihao Xiang To: ffmpeg-devel@ffmpeg.org Date: Tue, 14 Dec 2021 15:00:21 +0800 Message-Id: <20211214070021.31672-1-haihao.xiang@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH] lavc/qsvenc: add tile encoding support for VP9 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: Haihao Xiang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: tjkmvqMw9pKj Add -tile_rows and -tile_cols options to specify the number of tile rows and columns --- libavcodec/qsvenc.c | 4 ++++ libavcodec/qsvenc_vp9.c | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index 26a94cd419..270bdad544 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -793,6 +793,10 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q) q->extvp9param.Header.BufferId = MFX_EXTBUFF_VP9_PARAM; q->extvp9param.Header.BufferSz = sizeof(q->extvp9param); q->extvp9param.WriteIVFHeaders = MFX_CODINGOPTION_OFF; +#if (MFX_VERSION >= 1029) + q->extvp9param.NumTileColumns = q->tile_cols; + q->extvp9param.NumTileRows = q->tile_rows; +#endif q->extparam_internal[q->nb_extparam_internal++] = (mfxExtBuffer *)&q->extvp9param; } #endif diff --git a/libavcodec/qsvenc_vp9.c b/libavcodec/qsvenc_vp9.c index 9329990d11..0013932f0d 100644 --- a/libavcodec/qsvenc_vp9.c +++ b/libavcodec/qsvenc_vp9.c @@ -73,6 +73,16 @@ static const AVOption options[] = { { "profile2", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_PROFILE_VP9_2 }, INT_MIN, INT_MAX, VE, "profile" }, { "profile3", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_PROFILE_VP9_3 }, INT_MIN, INT_MAX, VE, "profile" }, +#if (MFX_VERSION >= 1029) + /* The minimum tile width in luma pixels is 256, set maximum tile_cols to 32 for 8K video */ + { "tile_cols", "Number of columns for tiled encoding", OFFSET(qsv.tile_cols), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 32, VE }, + /* Set maximum tile_rows to 4 per VP9 spec */ + { "tile_rows", "Number of rows for tiled encoding", OFFSET(qsv.tile_rows), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 4, VE }, +#else + { "tile_cols", "(not supported)", OFFSET(qsv.tile_cols), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 0, VE }, + { "tile_rows", "(not supported)", OFFSET(qsv.tile_rows), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 0, VE }, +#endif + { NULL }, };