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 D814340313 for ; Tue, 19 Jul 2022 06:46:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CD84468B56A; Tue, 19 Jul 2022 09:46:57 +0300 (EEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9465F68B4F7 for ; Tue, 19 Jul 2022 09:46:50 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1658213215; x=1689749215; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=4H2zvaqL4WWhshRynzpgKLgnq/mG0ghUVC1CawzztUo=; b=Nt1dxUyY3F/V8bgTPlsPiGC5lFlhep36zKqNskH9L6i2ZWfzFRv/p6pH sMUnpJ3A2WF10cU7GBf3gdEG95NZ/011FYBSYrTfR9hgccIj6pypanxOE U/9++J0tTMexSgJKCHRIXI8MENiaRh6iQdmqvuX6oM90ByLDxkto/OnUB /z6LMGdwTzRZB01Q7OqjKFNxWCOmdSzH4lk+5Q9wPraPZ4s6RPmJLvs1C DoOcwPC1IbBFmt+3ideqcDsRRpHeWK62W2X5Za7PxSYJttgoZEcPZ59QX +zH1lC+B5LsFA1QEG/v17AZ6MqQw3oaIUVyZWzDbo9MkG2OZI+lfCL052 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10412"; a="273242004" X-IronPort-AV: E=Sophos;i="5.92,283,1650956400"; d="scan'208";a="273242004" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jul 2022 23:46:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,283,1650956400"; d="scan'208";a="924652986" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga005.fm.intel.com with ESMTP; 18 Jul 2022 23:46:48 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Mon, 18 Jul 2022 23:46:47 -0700 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 18 Jul 2022 23:46:47 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 18 Jul 2022 23:46:47 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.170) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Mon, 18 Jul 2022 23:46:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YHmDpL1rTyR5r0wfqWXUlM4AMbaVE+/Vasq+OYPvOh4Xp2lI2I74uGVBz7jeckzmWU/++L6w2sgmZyQLhpfcHNGb/ysIrpbr2/iyj4rK49hXaJEwz7hL98138OMyMdfzYxZdYcuhu3lOb7uO/ha+fI0uyzDcIh3NGywppb4S0gWmILQuyjimxUcWJ1Ibzlflk+RZcjkcIF9197g2yQbwP4cGgmmb9Owox4Rxcv54s0Nzxe7wRIU7pgIOSZkA2ZnDIXslsNscVMmLXNLQ3UEb9MVuChgGu26E0hB8R6XdOgGSw6bqaf6qcRDzna/lcW4sUonzeTpKgH8og4Z0AmIocA== 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=4H2zvaqL4WWhshRynzpgKLgnq/mG0ghUVC1CawzztUo=; b=c46ftRHoC6mMBzzvJC3ytIPdeuXvGea2MVpzLBxf7xp1c7fgwC6PdZERQIMwP+98NL7I71SpTpY+5jZM9dS6G1kqZFCeOztRM1WKdnLtRCBcgCNrRQNcNd+bwgSyl3DIBGav0toDeOLuZ+c2jctU+V40n/C/N3faFladaJGaE4tCgcTI6oB9efi+epFY+REfv3Cao8B+SluOj0CQnjnf1dmWS7nf9FGn7x4X59v7yaSk97SsbHPYjbx4ejTAWRdNRJd2UcfK94LpVUahKdmgsabH2Yfi28dLEv7VWd4se/eBGYlfcd4xrIikrU9ZYgpGPSllWbOkKcvLfsmjNjtjjQ== 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 BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) by IA1PR11MB6324.namprd11.prod.outlook.com (2603:10b6:208:388::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.23; Tue, 19 Jul 2022 06:46:44 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::f977:9a9f:bad7:d3ce]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::f977:9a9f:bad7:d3ce%5]) with mapi id 15.20.5438.023; Tue, 19 Jul 2022 06:46:44 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v2] libavcodec/qsvenc: Use parameter from AVCodecContext to reset qsv codec Thread-Index: AQHYl16uZvdHewvrw0qkwmFmrwD+gq2FR9+A Date: Tue, 19 Jul 2022 06:46:44 +0000 Message-ID: References: <20220714084325.362855-1-wenbin.chen@intel.com> In-Reply-To: <20220714084325.362855-1-wenbin.chen@intel.com> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Evolution 3.28.5-0ubuntu0.18.04.2 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: 1f8891a3-6444-42bf-565a-08da695271db x-ms-traffictypediagnostic: IA1PR11MB6324:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 74XdBEkL43Wy6Q5NfVSeGUJ9HxUR8QpNVxamaw4Eiv3/SN4I3YMGmxZRjChfMdM1GovVny3jggeFG7KX+1JT5FFFaxpkT9FA2l8WkHWmnRYqnT5oSScRo+zmJ2MJjlslY5uqkasfsQx9sKdQFPlIb93AHMHgNfcw/Mcw7ZzdoKCPDT7bPmI/P35oQfWcvKJ2m7cbXrgB2yVJ0tjzpZ2g41KnPcx14D86PLtiwUkdghHkWAb43mt00+F3TxjNfAl6ZdsM2HpMAJxZ6sWew7IvAZngcaiKyTnk4nvJY2323VEexsbCX/DF2Jp3OD4xgiDxKLJka7flkXLwGkfI1ujeuc0KV1Dq+e/kP/ApaaNM4E8CJ1foR+0zL8cxOZiojdmKTUNNN0OKFDfVv70DNGDRNrmG2rHdpJZ3mt5S1RoA9RbhveQjreNX/Mp2E6vCOri5a7Y6GADpeu8/AZavI1V0ye4bKLIpGFl3EcDslp/Rs8ebwF/U3IJ+lSY6tTv4yKUxDthblEWlNHzy9fpQpXP8FUEjDfmuU004QGqCLFqQNjMOfI5+Upwmm2ek0XG8nKFzGi4GLZOlZuomJc9ZT/vBJrHb9YkU92ka0hiPZy2yCrBYnBjTFkXFUXtwgEV3xJbYYoGxKuCFFh68puKmVeD1ojNyvCwJGQaAbPfL+Nu/PEjO5oyQfgKeg35U+hI1INhL0TAF0lWxesO/WeB+2UG0/VHBCe6wtUMq0QyBqR92BKtVAyrSSpsPlXSdc/saUiQvIIERuqn9bBGFR1AiOF3OSsEyKyil/fk5c+m4SK2LBKJEjyEYDDY0nRuZj4D1TkqEKtFE6Un3v1/7AXLk1CvXJA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5515.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(136003)(39860400002)(396003)(366004)(376002)(346002)(91956017)(8936002)(66946007)(5660300002)(8676002)(66476007)(66556008)(66446008)(64756008)(38100700002)(186003)(76116006)(36756003)(38070700005)(2906002)(6916009)(71200400001)(316002)(478600001)(6486002)(86362001)(6506007)(41300700001)(122000001)(82960400001)(83380400001)(6512007)(26005)(2616005)(99106002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Yncxd1VPSjlEeUhidWhmTGNLc2tXRHZUTG1ySGxaL29nT0xQZXZjMXVmTEZK?= =?utf-8?B?aVJJQlJycVBaclhHb3haM3JubW5HS2l3T0NmN3paZmpnbUpNa2x6aUM0SlJY?= =?utf-8?B?T0Y4eDBlS0c0ZjREZjJoNld4MTc2V0lWSkFGT1dEMS9vRFp5MU5yV1V3b0li?= =?utf-8?B?TWFrU1NUK1NDeVJXSXNuNjlpQXBsbHBwZStheDg0K3IyWUNTakI5WkRJSHU2?= =?utf-8?B?U1I3aVpvbjVqcklKRDB4RXZZYldNZkVpMHJoTzA4V3Z0bUtWODhzY1Q2ZjJB?= =?utf-8?B?czJjRWkxcGhNcHN3Q2ZoenFYUmFUbmNRSmZSbkh3M0ZOUGx2NW5GNW03czZX?= =?utf-8?B?eUlFYWRnNWVPSVVjN1p5Y2dNVVcwWGpEQ2lzNzFCNittYW1renZTb3lGVFZW?= =?utf-8?B?bktURmd0azdjb3RRbU5SMzVtU2J3NHNZQk0zZi9qNWJOc1FSSzVtaHl3K3NY?= =?utf-8?B?OEh0VElMVkpNZ0tOWUJyY2tmU2M1VWxzcGxCakM3aFk3YWVwN05zM0VQTnRE?= =?utf-8?B?NzZoMmRZK3E3QWtHSkFCOUlqQWw2U3FYOStQK2hCUXRHVGRQc2paQ25tYzFw?= =?utf-8?B?d2FFTzVpeGo5T0gwRmJyUlQyL1RpWklzUnhubk1CdlRzenZMV3FjWE0vQ204?= =?utf-8?B?RGVkS1ZaQVJlay8vVlVlOFFqRkMyVVZKQm5OMTRSSjJneW9aWGxoMHgxcjha?= =?utf-8?B?bFJVL0RlZDdLSjZXV29BQ2xEUElSRjNrWWpMSjdrb0czWVFJRldYZ1E4MGVs?= =?utf-8?B?dTA3UHUveTlQcmdWZDlzSW5OT2x6cG16QlhJMW5yNUdyanVmckV5UXVrUmNM?= =?utf-8?B?cEE0RnB3MzNIejdzalIzMlZSaG14akp2c2VYVXJXbUFLK3JpQ1JNOFVaZTE3?= =?utf-8?B?blgvNkFzZXk1ZjNBTUFrV050Y00zSWZEUTZ4SjU3dDkra1ZtakRoSEM3T1dR?= =?utf-8?B?ZTR1MkxFM09pMEdnVGlCRm5qTHVYMk5aL0g0RU5nQUlhU0VHL2ZIa0FhT1dp?= =?utf-8?B?ejN0M1ExZzdsOWxIU3VpRCswdzlRbGJ0V01zWVpwa3NNeWpMa29yR3YxNThi?= =?utf-8?B?SkxTNFI0czZwK2I1b0t0ZmtWeE9vSkJid2MyRzIxQk5FdWJLU0VUaGtqOUM0?= =?utf-8?B?dU96VmJpTlptSE55Zm9LeVJhNzN4TExBNDdHMWtoVHZCMVhVd3BIMFJxMVh3?= =?utf-8?B?NmF2R3puTW1abXNMNStVcW5tTXlWQm9mSWRPWUQwY0ljTUxKWVJFTGQ2WEE2?= =?utf-8?B?WXIxOGlYRjVQd0dlZjNqQThjNkU2UkMyVk8zcHpHanJpdTVwM1c4U3o3MEEw?= =?utf-8?B?UE90b3BQWFRzdU93c3V3YWxQSnY0L3FyQWRRWWxZWStuWENrWEtmQ0tNUnhr?= =?utf-8?B?TlpUd2xUSXRtblp1TWZUR241UFpqeWxHa0tUMXgzVkVPc1BvWS9vakZ5bFpT?= =?utf-8?B?MVJIcm9PRm9lRUlkZ1E0UDFNQXJSWW12U215eG0yajl5TjNkQzJybEh3UkFF?= =?utf-8?B?ZlFVaDZYRGtSOVJGQUJEZjJzUmx0b2V4MENpUGdrZUlYN3F0V1FrdThSbnJa?= =?utf-8?B?d0Nsc0l6MDhqWlY4R3RuZHFMRm5TZlYrNlhVblN4S29RSmhSNE9JaldNNGhH?= =?utf-8?B?ZGhmYzQyOXZSUklBUWFwNThxZU9NeUh6ZHRPTXlxV3B1SDdYWWtyeVdvU25J?= =?utf-8?B?Y3VZN1YxK1RUNjl1eXBPWFhJaHgrQ3k3QU11NDVEZmNuL1pNaUNsQUxVMEZv?= =?utf-8?B?anBDNFFUYUpET3BrRDNsQ1RyZ2Y5dDNXYS82TTRyY2dJamU0dlBwNnZPd0Zp?= =?utf-8?B?cHpVc2EzUll6VVVpTHhUcmlMMmxPV1M4WSszdmd1eWFlQkpkNU82cXhZWjVs?= =?utf-8?B?MHFJcUhOaDNMV0QyM3VXUS95dHM2dXA0ZkcveEVoSG9SMGhWK3d4RTVzQnRE?= =?utf-8?B?bWRMNjJ2QURQQXlCaG1HTnYrWTZtcmFkNjE4Nzl5UC85aXAyS282b1VNeUQ5?= =?utf-8?B?cDJ5VGJCUDhZWWpDMFhOYWdUZGliUk1vOFZNbWR5WkUvdWIvVENnamt2NUFT?= =?utf-8?B?cnRVOTJaRDJvclZzWENjblNZV1Z1TDVsUmU3U3pMWFUvd3ZZWnBobDR1WXFZ?= =?utf-8?B?NGdlUlYvcVpTZFkrZTBjeEVIRkhaWVY1ZWVmQy84dXU2emYxQ0RnSWtoSjI4?= =?utf-8?B?MkE9PQ==?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5515.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f8891a3-6444-42bf-565a-08da695271db X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2022 06:46:44.4624 (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: BVJ+nfhNAtQrdC8k2uuea0Dg/J8keDduQTz0L8HLxFS3G96bRBqES5y6pF63G89jgKD+iSukdOe98hAQWAo/3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6324 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v2] 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: On Thu, 2022-07-14 at 16:43 +0800, Wenbin Chen wrote: > 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. > Because q->param is passed to both "in" and "out" parameters when call > MFXVideoENCODE_Query(), the value in q->param may be changed. New > variables are added to store old configuration, so that we can detect > real parameter change. > > Signed-off-by: Wenbin Chen > --- > doc/encoders.texi | 9 +++++--- > libavcodec/qsvenc.c | 50 ++++++++++++++++++++++----------------------- > libavcodec/qsvenc.h | 6 ++++++ > 3 files changed, 36 insertions(+), 29 deletions(-) > > diff --git a/doc/encoders.texi b/doc/encoders.texi > index 02a91ffe96..6d73f74196 100644 > --- a/doc/encoders.texi > +++ b/doc/encoders.texi > @@ -3337,10 +3337,13 @@ 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} > +@item @var{i_quant_factor} > +@item @var{i_quant_offset} > +@item @var{b_quant_factor} > +@item @var{b_quant_offset} > 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 these 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..c817577c23 100644 > --- a/libavcodec/qsvenc.c > +++ b/libavcodec/qsvenc.c > @@ -738,6 +738,11 @@ static int init_video_param(AVCodecContext *avctx, > QSVEncContext *q) > q->param.mfx.QPI = av_clip(quant * fabs(avctx->i_quant_factor) + > avctx->i_quant_offset, 0, 51); > q->param.mfx.QPP = av_clip(quant, 0, 51); > q->param.mfx.QPB = av_clip(quant * fabs(avctx->b_quant_factor) + > avctx->b_quant_offset, 0, 51); > + q->old_global_quality = avctx->global_quality; > + q->old_i_quant_factor = avctx->i_quant_factor; > + q->old_i_quant_offset = avctx->i_quant_offset; > + q->old_b_quant_factor = avctx->b_quant_factor; > + q->old_b_quant_offset = avctx->b_quant_offset; > > break; > #if QSV_HAVE_AVBR > @@ -1621,38 +1626,31 @@ static int set_roi_encode_ctrl(AVCodecContext *avctx, > const AVFrame *frame, > return 0; > } > > -static int update_qp(AVCodecContext *avctx, QSVEncContext *q, > - const AVFrame *frame) > +static int update_qp(AVCodecContext *avctx, QSVEncContext *q) > { > - int updated = 0, qp = 0, new_qp; > - char *tail; > - AVDictionaryEntry *entry = NULL; > + int updated = 0, new_qp = 0; > > 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"); > + if (q->param.mfx.RateControlMethod == MFX_RATECONTROL_CQP) { > + UPDATE_PARAM(q->old_global_quality, avctx->global_quality); > + UPDATE_PARAM(q->old_i_quant_factor, avctx->i_quant_factor); > + UPDATE_PARAM(q->old_i_quant_offset, avctx->i_quant_offset); > + UPDATE_PARAM(q->old_b_quant_factor, avctx->b_quant_factor); > + UPDATE_PARAM(q->old_b_quant_offset, avctx->b_quant_offset); > + if (!updated) > 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); > - 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); > + > + new_qp = avctx->global_quality / FF_QP2LAMBDA; > + q->param.mfx.QPI = av_clip(new_qp * fabs(avctx->i_quant_factor) + > + avctx->i_quant_offset, 0, 51); > + q->param.mfx.QPP = av_clip(new_qp, 0, 51); > + q->param.mfx.QPB = av_clip(new_qp * fabs(avctx->b_quant_factor) + > + avctx->b_quant_offset, 0, 51); > 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); > + "Reset qp = %d/%d/%d for idr/p/b frames\n", > + q->param.mfx.QPI, q->param.mfx.QPP, q->param.mfx.QPB); > } > return updated; > } > @@ -1665,7 +1663,7 @@ static int update_parameters(AVCodecContext *avctx, > QSVEncContext *q, > if (!frame) > return 0; > > - needReset = update_qp(avctx, q, frame); > + needReset = update_qp(avctx, q); > if (!needReset) > return 0; > > diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h > index b754ac4b56..bffe957526 100644 > --- a/libavcodec/qsvenc.h > +++ b/libavcodec/qsvenc.h > @@ -224,6 +224,12 @@ typedef struct QSVEncContext { > int min_qp_p; > int max_qp_b; > int min_qp_b; > + // These are used for qp reset > + int old_global_quality; > + float old_i_quant_factor; > + float old_i_quant_offset; > + float old_b_quant_factor; > + float old_b_quant_offset; > } QSVEncContext; > > int ff_qsv_enc_init(AVCodecContext *avctx, QSVEncContext *q); LGTM, will apply. Thanks Haihao _______________________________________________ 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".