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 A03484348D for ; Thu, 14 Jul 2022 04:47:10 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 283CB68B999; Thu, 14 Jul 2022 07:47:08 +0300 (EEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6004668B78B for ; Thu, 14 Jul 2022 07:47:01 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657774026; x=1689310026; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=hd+HqVdeiglFj8XQ7lh9jc4H1soWjzeVGo3s5w+iAQk=; b=fFjXUGVGK811bSK9FI21qAduleA6FNPysr3F0CGqyBN9cUzQmoFJEMI7 Ok9K2s9z8RkNFyVGSQuscxb/NNiW6Gos2/h9pMczQ8sX6Qme1sLohv6OH az6RtkkkSCnzcjSzOOluzSdAZ1ICV+A1MboqDrm1fZJIZAZFujVfu99Rd 1RtHsX219DGibGdJBsKY+460YIB826PS98A4AZuq5a3YjUEtbdsw78Z80 tVX7PhCgM486NpwwhSVAqNb1fYSLQN4mNhyQrSuLU+tem1LgWqYW/7/OA ANatfYyqZvnfTdC5m0IYFlXWtxTOr9y9SAVGCMlX6VHtKlK5pIDkslji5 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10407"; a="371726088" X-IronPort-AV: E=Sophos;i="5.92,269,1650956400"; d="scan'208";a="371726088" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2022 21:46:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,269,1650956400"; d="scan'208";a="922919392" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga005.fm.intel.com with ESMTP; 13 Jul 2022 21:46:50 -0700 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 13 Jul 2022 21:46:49 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 13 Jul 2022 21:46:49 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.103) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 13 Jul 2022 21:46:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QMtiKCwSkLwKP6SK01GCUDIy5euNCCznk9mQY8npq7uCJnpgSlk+UWg8muDa2xEJKW42ktOJiJwm/tNPiLrEgwWl9II0WzooYcplDrqhgeanriv655rowdvpEVtoxHj+DuK01Lr7n0ckFd7gzBuTxp58hgz73bJr0rjnitcmf4FoMO9V7cLGMjaVk9sm0CJ8iVcjK41GCVeG/RPo9XcQJ9a2wDy+A3RIxYTuGxIr4fh1mUl+WO/LAjQdBHKdJhVbN8fcnyUkUjNWOHuR73VPNbInUIve4BU5/JqvZkZfkU2PQKKwfHf9HzJg8FJKiDm4s8eJr+hHVg4Ko9z6Euj/UA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yp75txd4+8r4s4Em6GS8C4b0KW6D23uDR1fMAQ9T9Ak=; b=lbEf9+xIukwpmYcsvPcqddqQLR6tk0HpwAPBk3nj3U+kCa9Y9HiHBVG2xwzq9hjO8243YzciVMxkaJJ77mL6YscG5haeFv5F07VWdpIcREL33ts84cWyX4pmvPn+TJ7f8Cur0LdWfLkffVh2hy0nZQUZI09gLIQopv64AVl3KKNNGPLEOw5/P89km4SAsxHtfkUQ44ZgfbX41dbO5zYsSxaXcUeNZ3a26YLc7v7SAyDuqfRJL8p2kDjF8ydHbwSTV13gZOkymdqRX79EgkX8VJ8azSL8J2REGaJLUBb7QEUAVS050JjVj9HvORsENp0rvnKKjciURqic040vEEk75A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BY5PR11MB3879.namprd11.prod.outlook.com (2603:10b6:a03:18f::17) by CO1PR11MB4977.namprd11.prod.outlook.com (2603:10b6:303:6d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.23; Thu, 14 Jul 2022 04:46:43 +0000 Received: from BY5PR11MB3879.namprd11.prod.outlook.com ([fe80::b02e:fe48:73f6:f310]) by BY5PR11MB3879.namprd11.prod.outlook.com ([fe80::b02e:fe48:73f6:f310%6]) with mapi id 15.20.5417.026; Thu, 14 Jul 2022 04:46:42 +0000 From: "Chen, Wenbin" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH] libavcodec/qsvenc: Use parameter from AVCodecContext to reset qsv codec Thread-Index: AQHYkRm3TRsa1gp/xEOqBlj0fWpzHq19VU6A Date: Thu, 14 Jul 2022 04:46:42 +0000 Message-ID: References: <20220706091440.57627-1-wenbin.chen@intel.com> In-Reply-To: <20220706091440.57627-1-wenbin.chen@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1747c930-7e7c-40c8-be38-08da6553d931 x-ms-traffictypediagnostic: CO1PR11MB4977:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: eAggMg9Grm0AHPZHVo9TW0lf/pH3PTYY7ZTiJZmsFm1PJG15huU3eyf3YZKyPu17n+pZ4BikT3tlbquwRJL+2EUSQet5ZXRggPnpmIBJnhkte8b1Yjh9Vq0ku9CMcm5+I+CIaFvw0NmIlkKbcVbCwpDWmUJhzTFpTE6DVqOIXKejVSubf8tT0p67T7Q2ckMhbHg2aLHGO3t9c5JxY+i/SWXR5aJx3XrQpNh5dluH41z7lkJVrZPXdTfS0mTy7BQ2a/SzN5wnfrdD71BUF9tgLc6z63qDEHNdWMPE/KBa0QYnSknOucuWDXTlQ+4pADhDat58FOZacA+y8Klb/zqQqTV/eeTByGWpICtuL2eKqX/l7rB9XBl8IgiEM5+XxQC7+xVCGKaxvRBr/KzrbEAACQCGPi/MUtNX7GsSNBkkQ5UMJdPWIk7V/kb8An6QeQcPeTrzTq+SWqbhTQNMMlQYUI++iBj1jQSTG7uQvHsk5xAf33ZzWnlID5O699Z6WKBb0UUfBdk6ZGhPZRnrzR86y2FK/ajmzpilYHlAJ1xzXs5oDWImRl86oS6Ub8LkBiMB3Rhw+dvbwlosDM70YnetLg5TqU4DdoZWMCahwgBNO79EHNsaXQXl0SgRkqVAAJd1UD2VfOQnNfWpQD3xE/t0bfEn3zSYByh2/ZTHB3uvc/NsBMX0ewGg9cPl9PKFX2GClWstMA+kB0yv/AJdfzReSSf/joJ5xSQOCryhl4cpLxhGCSa0lHbZBlTZ+9PVZXEOPLQsSvUP9cQ5E063/A7sUx7Q1WH5TwEjtVjTqvkcim/Vb60/U/OaybKWjsCCppY+0exiu++akth0x34BJgA41eZkg0tdKRAvAZui6LIYYTA= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB3879.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(366004)(136003)(396003)(376002)(346002)(39860400002)(64756008)(66556008)(82960400001)(66446008)(8676002)(316002)(38100700002)(8936002)(71200400001)(33656002)(41300700001)(52536014)(2906002)(66476007)(5660300002)(76116006)(6916009)(186003)(86362001)(9686003)(6506007)(7696005)(83380400001)(26005)(478600001)(66946007)(966005)(38070700005)(122000001)(55016003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?gdMbgKHMTu1se9rMqDLdvxq1pw3RP9m4DLjbGEduMheeyqycohd6gkpENNg1?= =?us-ascii?Q?bFiK66xWGl6s8ycEGLMUpRgKRwBROY5uBfMloBlaGYJk5XKbl7BjwE58tLSP?= =?us-ascii?Q?COd0oRiql+tnG29u7ce+W2SOMq2aDQ9KI8+DjRIu79xzBEhlM47ckjqjRdBI?= =?us-ascii?Q?B32DnF2P480tdvlo1FVnW+MBrj1Jph9YfpqqIlkjT38FQols6gN9KN15HE0i?= =?us-ascii?Q?SnvF6/AkHj7WL6dQuDtl2XyEOOadmBzxRxCuGNSRwicR3eAIHYDOng7lkVsV?= =?us-ascii?Q?kNpUw2LWEJ6UxIFXpDCIZSngalWbI+sOgoIHyFVolWglLWo+nEoZGXg3GNPc?= =?us-ascii?Q?IUA541hZ1WZIn4P/areNGPm8yOC8MawJJqaCIkDSOJtSjgF6umul8WrD9f2E?= =?us-ascii?Q?DoaU8NddBGohFzvJ4ecNJb6BCg3A1T1VyrPil1X+fJdQpSkOkR3/zznlekw8?= =?us-ascii?Q?CfuYQFIbhqWd09PHOt0PVYPBLU3RvEdo5TTBqi9xCgXn7C1lmFssEZ6mHWq7?= =?us-ascii?Q?aMowotC88/17+Y/HMHbhBjuz/LCJrf7/Y/sM8GA8XKb9yPnGMqZvmVRLVgdl?= =?us-ascii?Q?Yr6g987mtkVzQAiybaI0KTpr0tyPMJ5TtgwBkHAJs/TzKeSTRRiAO5B4htCx?= =?us-ascii?Q?JgIdyNFlCHVo6S0xcYweY2hSCk/z69+VqZ9ytQF79cJuPPNp7tT64hxZHrpF?= =?us-ascii?Q?c7LZa8rddbH7vtzsRt5AlGnwOuDZiivHQjuo8ZBEykCc23okSFZnTPVHp31g?= =?us-ascii?Q?ePio9jsmD1+4fVe1TSiw1hbv5vAoaMEYukxsBhh3ZbHMoWi0w3TR19q9k/qq?= =?us-ascii?Q?OLByOXEapkO2Vyo1HdrCdmh8cFogkSuXMk69kEUOl6BBlo6Qh1Hp8CmsdSsh?= =?us-ascii?Q?m/ZscVpyuGC4M4JHcUuunSPR9+e+ntqiuSkXmlHfjk8qo9T1TgqgXhUNIw6H?= =?us-ascii?Q?MaGYPv4ldFnufgl1v0Cyh3kPjTXhjkPbclSMffSSKQp8myH90q2DpQtyGylx?= =?us-ascii?Q?SCQLDaPhH0TQoWoYEHXbnxT+LvlE7EeRgJKT061drD0XpfAhKgvv25AxgnJR?= =?us-ascii?Q?bJmT86zdOvxXq9D6fbgxZheQVrBY3kzD9mGlce1KAQjZstsO4t3EUJ3wVNE+?= =?us-ascii?Q?Zm8qkqLEzzog6RPKrW4sDgZvCrXBq4Od+Fx8R45Hl4f1G00A7p98H1ZZLokj?= =?us-ascii?Q?Tkkk4zxMEurRSEYuMNV7TALgkWvo8rYyIa/VBJu5RRhYrt+7N/D5w9acAqEh?= =?us-ascii?Q?ZDDKZYmfVj6lBg34f3LjdYc6qfxyvLw7whWIB8Y7OYm6kbAvTw+WqTse9lZi?= =?us-ascii?Q?WslZtH3wnrVx8Eucd4fbd0d398rtXR2zZCLfXMmWSBeQDr4uB9gfnN8is9uo?= =?us-ascii?Q?UEBOBFVsmb+Yft1qr6wEixQc+rTh9HnkghsuHAjbhPZgzDkBK3OmjsKMoxRf?= =?us-ascii?Q?W8VTSIzYjTr9kE52O2T3GdLidCeIeOcCk7gtOnT3Y89CxQ3qrZnVMplQWZvU?= =?us-ascii?Q?aYrNQfE8CXePozDrXRljatK9elwGOtuH2/W3vQJ1AQuHT8fQvjIQTbYYBCrd?= =?us-ascii?Q?+MLB950/GZEwo0XD66hnk8vXGEsP1Iv7ybJUlDpi?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB3879.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1747c930-7e7c-40c8-be38-08da6553d931 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jul 2022 04:46:42.6797 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: PdduxfCHplH6LYmj0QgNDKY1KDKZFWWRVJg7WHrGmuu09yWd///vYs4d7ZBbeEKLk1og92TFe36ElXIaGgE1mQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4977 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH] libavcodec/qsvenc: Use parameter from AVCodecContext to reset qsv codec 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: > Using parameter from AVCodecContext to reset qsv codec is more suitable > for MFXVideoENCODE_Reset()'s usage. Per-frame metadata is more suitable > for the usage of mfxEncodeCtrl being passed to > MFXVideoENCODE_EncodeFrameAsync(). Now change it to use the value > from AVCodecContext. > > Signed-off-by: Wenbin Chen > --- > doc/encoders.texi | 5 ++--- > libavcodec/qsvenc.c | 26 ++++++++------------------ > 2 files changed, 10 insertions(+), 21 deletions(-) > > diff --git a/doc/encoders.texi b/doc/encoders.texi > index 02a91ffe96..bf5fafd3fe 100644 > --- a/doc/encoders.texi > +++ b/doc/encoders.texi > @@ -3337,10 +3337,9 @@ For encoders set this flag to ON to reduce power > consumption and GPU usage. > Following options can be used durning qsv encoding. > > @table @option > -@item @var{qsv_config_qp} > +@item @var{global_quality} > Supported in h264_qsv and hevc_qsv. > -This option can be set in per-frame metadata. QP parameter can be > dynamically > -changed when encoding in CQP mode. > +Change this value to reset qsv codec's qp configuration. > @end table > > @subsection H264 options > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c > index 2382c2f5f7..82cb5a4865 100644 > --- a/libavcodec/qsvenc.c > +++ b/libavcodec/qsvenc.c > @@ -1625,34 +1625,24 @@ static int update_qp(AVCodecContext *avctx, > QSVEncContext *q, > const AVFrame *frame) "const AVFrame *frame" is not used. It can be removed. > { > int updated = 0, qp = 0, new_qp; > - char *tail; > - AVDictionaryEntry *entry = NULL; > > if (avctx->codec_id != AV_CODEC_ID_H264 && avctx->codec_id != > AV_CODEC_ID_HEVC) > return 0; > > - entry = av_dict_get(frame->metadata, "qsv_config_qp", NULL, 0); > - if (entry && q->param.mfx.RateControlMethod == > MFX_RATECONTROL_CQP) { > - qp = strtol(entry->value, &tail, 10); > - if (*tail) { > - av_log(avctx, AV_LOG_WARNING, "Invalid qsv_config_qp string. > Ignore this metadata\n"); > - return 0; > - } > - if (qp < 0 || qp > 51) { > - av_log(avctx, AV_LOG_WARNING, "Invalid qp, clip to 0 ~ 51\n"); > - qp = av_clip(qp, 0, 51); > - } > - av_log(avctx, AV_LOG_DEBUG, "Configure qp: %d\n",qp); > - UPDATE_PARAM(q->param.mfx.QPP, qp); > + if (q->param.mfx.RateControlMethod == MFX_RATECONTROL_CQP) { > + qp = avctx->global_quality / FF_QP2LAMBDA; > + new_qp = av_clip(qp, 0, 51); > + UPDATE_PARAM(q->param.mfx.QPP, new_qp); > new_qp = av_clip(qp * fabs(avctx->i_quant_factor) + > avctx->i_quant_offset, 0, 51); > UPDATE_PARAM(q->param.mfx.QPI, new_qp); > new_qp = av_clip(qp * fabs(avctx->b_quant_factor) + > avctx->b_quant_offset, 0, 51); > UPDATE_PARAM(q->param.mfx.QPB, new_qp); "q->param" is passed to both "in" and "out" parameters in MFXVideoENCODE_Query() call, so the value in q->param may be changed. There is a potential issue that codec will reset on every frame. I will fix these in my patch v2. > - av_log(avctx, AV_LOG_DEBUG, > - "using fixed qp = %d/%d/%d for idr/p/b frames\n", > - q->param.mfx.QPI, q->param.mfx.QPP, q->param.mfx.QPB); > + if (updated) > + av_log(avctx, AV_LOG_DEBUG, > + "using fixed qp = %d/%d/%d for idr/p/b frames\n", > + q->param.mfx.QPI, q->param.mfx.QPP, q->param.mfx.QPB); > } > return updated; > } > -- > 2.32.0 > > _______________________________________________ > 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". _______________________________________________ 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".