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 3B1DC423CC for ; Mon, 17 Jan 2022 11:29:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 72CD468AFAA; Mon, 17 Jan 2022 13:29:56 +0200 (EET) Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0205D68A6D2 for ; Mon, 17 Jan 2022 13:29:49 +0200 (EET) Received: by mail-lf1-f43.google.com with SMTP id d3so56244479lfv.13 for ; Mon, 17 Jan 2022 03:29:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to; bh=Fzz2FzBRCFZ93lqNH1lvkIakOfKatujUC+KRdl/7goY=; b=eZ5dSAN2WMRcdzOARZ9JN5yCWCePD3WgpjP+rJQ8i2U0N7NqX41KpXNxy97Xx5lV4E 5jsly80AeVKg3ONh6WLg4gFIO/43GphJ/RZ0Eh7slyqyFbfmy54/JgyYGc8KAf54okf1 nluCWngwBHQmP2ZbHsmZeixcFhwu6bw3o4HxUEC8R43H/HG66FZAPcuayGfv+zV2SqCy 5Fnw6sPAcWC2buRT3kLltPplSuk6KTKcC9dU7+PiXHJKPUMI9Zy3n6EdGQd9vWqPSut+ oswmn6DSQ+zNi38BNKkhbhBO7wdd41QOOtDzewod4zAv6jGC0WBZRRI7ukiY4Ur0nP/h M/ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to; bh=Fzz2FzBRCFZ93lqNH1lvkIakOfKatujUC+KRdl/7goY=; b=dFhoGV6ue0mvOSUE78kx+LQReHAOAWxVCuSJ5D3sszeL72OU6OwwZr0UK4pHrqag0H RHRjLtoxKxjS2QeQQSyGl+gmAWkVKLY+eEldddZtagjpPBRsbkpEkEDRDkIkJoyH+nVQ jiljtlku0kd6u+eT6/8M9y26KDfkUBJqezZ6MmUkDMf3Xcfpg6QY0t/PwDqBkXfwDI/o dt3XuHEUqx7BAaq6gABOKjeynHPftv8sDSd8TDNhjB6XkCy87U10AuYM1NAlhsmE3o1W xxOS1u0SPQicdqDq5t7IpzXGQIEX5FblEb+W+b7oUBe6RcUiMlU6isyBLdLJULKWp1U/ 6S8Q== X-Gm-Message-State: AOAM531RV8zM52v73H11Hl6frmkvBdKZY2gnH+XrKs2Vj+I91MAihVC1 jlOBl+jPW/SRQ6/edeQx9q5fL+h/IkfurMmErGlsMezNlg+wgQ== X-Google-Smtp-Source: ABdhPJxTlVzSzwA3EMN56AC1gaQ9MbG6FSwAiWFRvdUY6Y0FPl5A+MH78CnJSTnq+gKO6FnTIKFLqgDtYePz849jwYo= X-Received: by 2002:a19:f703:: with SMTP id z3mr15988121lfe.575.1642418988909; Mon, 17 Jan 2022 03:29:48 -0800 (PST) MIME-Version: 1.0 References: <20220113054525.14057-1-haihao.xiang@intel.com> <2de74c97e30007697825af8d68df3fdf5270350c.camel@intel.com> In-Reply-To: From: "mypopy@gmail.com" Date: Mon, 17 Jan 2022 19:29:37 +0800 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH v2] 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 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: On Mon, Jan 17, 2022 at 6:57 PM Soft Works wrote: > > > > > -----Original Message----- > > From: ffmpeg-devel On Behalf Of > > mypopy@gmail.com > > Sent: Monday, January 17, 2022 11:36 AM > > To: FFmpeg development discussions and patches > > Subject: Re: [FFmpeg-devel] [PATCH v2] lavc/qsvenc: add tile encoding support > > for VP9 > > > > On Mon, Jan 17, 2022 at 4:30 PM Xiang, Haihao > > wrote: > > > > > > On Thu, 2022-01-13 at 13:45 +0800, Haihao Xiang wrote: > > > > Add -tile_rows and -tile_cols options to specify the number of tile > > > > rows and columns > > > > > > > > Signed-off-by: Haihao Xiang > > > > --- > > > > v2: add option descriptions in the doc > > > > > > > > doc/encoders.texi | 6 ++++++ > > > > libavcodec/qsvenc.c | 4 ++++ > > > > libavcodec/qsvenc.h | 1 + > > > > libavcodec/qsvenc_vp9.c | 10 ++++++++++ > > > > 4 files changed, 21 insertions(+) > > > > > > > > diff --git a/doc/encoders.texi b/doc/encoders.texi > > > > index 7cc8be1209..a4176089d5 100644 > > > > --- a/doc/encoders.texi > > > > +++ b/doc/encoders.texi > > > > @@ -3457,6 +3457,12 @@ These options are used by vp9_qsv > > > > @item profile2 > > > > @item profile3 > > > > @end table > > > > + > > > > +@item @var{tile_cols} > > > > +Number of columns for tiled encoding (requires libmfx >= 1.29). > > > > + > > > > +@item @var{tile_rows} > > > > +Number of rows for tiled encoding (requires libmfx >= 1.29). > > > > @end table > > > > > > > > @section snow > > > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c > > > > index 4e7a15f060..4cbc9ff4dc 100644 > > > > --- a/libavcodec/qsvenc.c > > > > +++ b/libavcodec/qsvenc.c > > > > @@ -939,6 +939,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 QSV_HAVE_EXT_VP9_TILES > > > > + 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.h b/libavcodec/qsvenc.h > > > > index 31516b8e55..00ee52a5d1 100644 > > > > --- a/libavcodec/qsvenc.h > > > > +++ b/libavcodec/qsvenc.h > > > > @@ -41,6 +41,7 @@ > > > > > > > > #define QSV_HAVE_EXT_HEVC_TILES QSV_VERSION_ATLEAST(1, 13) > > > > #define QSV_HAVE_EXT_VP9_PARAM QSV_VERSION_ATLEAST(1, 26) > > > > +#define QSV_HAVE_EXT_VP9_TILES QSV_VERSION_ATLEAST(1, 29) > > > > > > > > #define QSV_HAVE_TRELLIS QSV_VERSION_ATLEAST(1, 8) > > > > #define QSV_HAVE_MAX_SLICE_SIZE QSV_VERSION_ATLEAST(1, 9) > > > > diff --git a/libavcodec/qsvenc_vp9.c b/libavcodec/qsvenc_vp9.c > > > > index 9329990d11..1168ddda0e 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 QSV_HAVE_EXT_VP9_TILES > > > > + /* 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 > > > > + > > perfer one option like "-tile rows x cols" than two options like > > The example is invalid. (spaces) > > > "-tile_rows row -tile_cols col" > > This way, the options are typed, have min, max and default values, > without needing any code to write and maintain. > > if you mean "-tile rowsxcols", there's no option type for this, > unless you would want to mis-use the video size type for it. > Otherwise you'd need to make it string and write all the parsing > and checking code for it. > Do you think that it would be worth the effort? You convinced me > > Also, in most use cases, you will probably have rows or cols, > rather than both.. > _______________________________________________ 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".