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 D56384348A for ; Thu, 14 Jul 2022 03:56:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0BA3468B947; Thu, 14 Jul 2022 06:56:35 +0300 (EEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8D3CD68B7CE for ; Thu, 14 Jul 2022 06:56:28 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657770994; x=1689306994; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=0fvDPndcJkID0sqtrXRIEksCG1GVopOibrY/PMI+v1w=; b=XHj/40sVrDKJ3glH78x2fpxxa1ShXkhgwUZHOUt4xGn/MYDpMOcB3r7K QyZndKTvpXgwGB8Wx8TgnDm1VS6MbgZVxBqeMYSlJejP2R12K6BdoV0j0 XaM+COV4WrLog/Rdhwwn2ABDxXGoUyU6M5YlOblqnqKzHN04va+sYDpQZ xehqh9epCyaHjm159iohyjSdRshiBPYrMhAs+0EE/DM2ysRs+fFJYk/2r fltlmi8LaXENp21zAmbMoNTmR62+pw5GsBHmUDBib3su4P6q41Q4kteWI LzZfTgY1F8f+0RFoWukt0lwkZErzfHvlaW8ahhzDGQiF3P1H09D9d+dz2 g==; X-IronPort-AV: E=McAfee;i="6400,9594,10407"; a="286150677" X-IronPort-AV: E=Sophos;i="5.92,269,1650956400"; d="scan'208";a="286150677" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2022 20:56:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,269,1650956400"; d="scan'208";a="623241634" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga008.jf.intel.com with ESMTP; 13 Jul 2022 20:56:14 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx604.amr.corp.intel.com (10.18.126.84) 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 20:56:14 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx607.amr.corp.intel.com (10.18.126.87) 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 20:56:14 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.103) by edgegateway.intel.com (192.55.55.70) 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 20:56:13 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JmA4xk3ClFVQ9UMCgtexLlA38kY0+h+sdYZ4/rwGfkMYwwTKYUA9twwwAz74b+axGaZAEzqWf4gnv7GIZ4LHMjoHhMYry6q0iDoteoU7eGrgwC+OROEv5mikCEqtvjxN2NhLhMpQlHlV03iO83+SIt2Exmo8j5b7LYZ7rL/QJpd3kEfAcZxt89pCvRmz9PytYtZQeoR2nFcmLoTPriRPHMfvElj2Npe6PyepKHXu+Z6M3/4eaJBMMZ1g4TN0q765/FNlQslw2sCh6u/SIR1o0lA4z18S73FoKS38prjAS15l/UwhiTyy2O9TWaqX2ZHTAcwi2BlYpKBsRq1x73H23A== 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=0fvDPndcJkID0sqtrXRIEksCG1GVopOibrY/PMI+v1w=; b=lY9FLLjAchqyIyWwkOP/CZTpWuGjTEbgKQhgfjpWCmVhLa6FURLwGU5D3k0p7uJeQk6FQxQsneF/WYs/9odN/0fIhF7LGlst5rHR7/T3wjWF6xNqs4N+FSs64zfY5P5GgyczxizQ+7kpVAf9P6R6FDdZzgB9KkFxbk3mFYiBHPTh/fbV4lSQYMABxJ0y+JKqrIgwpIC77KRZ4/nFLhJPKqSKxC0kBBF6VqOLEQXDMS/Gjpq9OXPt5bmjyJfS+EBhHEZlvShv5DMAfrNWEBfiBoZp5w0o+xvnbkOFvj54KDAqoIAKSXlgwwaCLuBv/eEvZnOyS3r5BLJTQr3WDLaaMg== 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 SA2PR11MB5211.namprd11.prod.outlook.com (2603:10b6:806:fb::7) 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 03:56:12 +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.014; Thu, 14 Jul 2022 03:56:12 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v2 2/4] lavc/hevcdec: do not let missing ref frames invovled in dpb process Thread-Index: AQHYf45jftbl+5x8DU+el+z8zLmh/q19bDEA Date: Thu, 14 Jul 2022 03:56:12 +0000 Message-ID: <92f4c3784b0807dacfc1a1225ac4c5d7cb9316b1.camel@intel.com> References: <20220614012302.2808428-1-fei.w.wang@intel.com> <20220614012302.2808428-2-fei.w.wang@intel.com> In-Reply-To: <20220614012302.2808428-2-fei.w.wang@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: 4dd5e94d-c3d4-4310-964d-08da654ccb24 x-ms-traffictypediagnostic: SA2PR11MB5211:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IGQyFAOs/iwrxFfP0gUH2YmyYBmE3IiGWBXGVwtQPIwBaY0VMVk7m5JCF5y4Nj20Tnv1WuPZfqLbfdz0ZUwOvVQf7Ul8i6a6C++OJy0lAzr8vH2Lt0z3e6A1EFRAT6HSTZINhuZN3GVlSXcaUsGEbrRtf6gja0waLAKxItnlLR85AQ0kD0qKUn5KhFF0IaK2AMnO0VqC2SnKjiRrmikISpwoch+XpsMqMA7P9Y/9rU+/jjRUaobc5pjJ42f0ifXPtlZC0Z53+4o7BLGI/YzTLwduFlPzUaF3bIpO1TKT1vE+G82fYsvw1Ln0MDiuxdlFdGRdoXLnye2oZFNgV5TzShAFRGM7UiUZx6qIaFhclMez8+HQf/X07CGZ3EhnUOIDkJiqhCMNjJM9UwsaFS+s562Y3LhNAw1RY/H5yniIPqODEOh3i7bibVCdD+sGUvmIhQgfb19zldKwcjhJRmFEiu5ecv6hMek9S3BUuMw3rFKGzQ872MJcZ7KNQ/MiGdqVsFgHtxQD3/fNNuJfyOkhb695JFOAW3qWMp1D8ACKs8+X0RnILdS4Scp2pevb5y75O7fOZy/owNeeV/1zqGYPZM+bDTwlDMzF/zih5XaURYVwUcIV56vpDupD0vw+untoQm4Wae6E0w0ItugoJVDBj345wuDmT9u9QArrqXfXttxgIZi9bK2s7pMTL5TGdxLlLST0PNaBHz0qMPkSw57TCV6WaLgk9IRl4ZhRJ5wK3Rqlk0x6bwhd9Y6C9LhUGjbsWRUzYuuiFYOkZykvoVYq36hXS9+iidmcrCE7wmkBgINFUT/BhGW97LdP/Qg5P1Y2KXiNQfJ2GV4nZsPmvBDOSg== 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)(376002)(136003)(396003)(346002)(39860400002)(366004)(8676002)(82960400001)(38070700005)(66476007)(186003)(76116006)(2616005)(66446008)(66946007)(91956017)(6486002)(36756003)(71200400001)(64756008)(107886003)(83380400001)(4326008)(66556008)(478600001)(316002)(86362001)(26005)(6512007)(54906003)(6506007)(5660300002)(2906002)(6916009)(38100700002)(122000001)(8936002)(41300700001)(99106002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VkthNVdkWkhlN1V2eVVUZUlRQzcxRCtvZmliQkI5VHJQYU50c0w3ZXRKcEVy?= =?utf-8?B?eXRkTXdoendyRWErS1BEMFFNWGIzYW1vcEE2NzdSMDBWWUQrVHJDT3FGQWtF?= =?utf-8?B?ZVEvL1B4eENYYldGQXRzMkphYnlwaHN5RTBaSGQxY0h5alJUdEZiRUR2Z0xD?= =?utf-8?B?ck9CcTUvNTNvYU1iUm1xTU5vMTN6UDlZNTRBT2YxNTR5STh5empUL2pJSWI4?= =?utf-8?B?WWhhZzd2RFEybXF5T1IwczNLS0V1WHJObHhValBRcDVaY29HUVRrdHFzcHJa?= =?utf-8?B?N3llcHFuNFNNOUhuR3BRZkJvVmVELytMcFBCTVFYL3pqNExZaFMvRGh5VTcw?= =?utf-8?B?c0I1WUZ5eXBnMmxtbVk0SzYwOUNLZlA1a2NmUlhNY3gzbFZMSW84YkYvZGZa?= =?utf-8?B?T1lDT094RUhxUnlDczYvNEZqYWhJQW5XeXJOekd1ei9taVdwdW9SMnkxRHR6?= =?utf-8?B?Z0FiK0VLT1d5dS9YR0ZOTW1tNmtPL1NBUTRtWk8yemhzd0ptaWQ3YTFJU0JS?= =?utf-8?B?NUZnVlM0TEUrNkY1ZGMzQzNaTytpZWF5VFZUNnAwR1pBQnN6RVJ6ZWFEOUtL?= =?utf-8?B?VWpmU1JXZlNUUlF5ZGFac2VJVWJwQVZGU2R1SVZHQ0ZSS2UwMkQ3eUJlbENp?= =?utf-8?B?d21hZ3kxQ1hiTENPNHdXa09xcGZnMTRyZVF6QWt4eW1XaU5QWG9WL2V5Rjd3?= =?utf-8?B?UWFySFJYNGZTRGZtNjFjR2hNcGh6NW5FaVN2TEZIOGEydjJnNThhbGVjQkNw?= =?utf-8?B?TEhScWZ0aFMydWtaVnFkMGh5OEhzN1ljUHVVbW9zbjdacTVDZm1NbmFIV0Y4?= =?utf-8?B?cE90S2twYXE1d1VUanBDaWtYMGJuSWszKzlTV0l3RXQrbi9rYUVpcElHVEFn?= =?utf-8?B?U1lCa2N3TW1ia3d2WlM2UXQ3OTY5MXE1eEFjN0VQb2t0WnpvKzNkWDMyakg3?= =?utf-8?B?aWlkd3dZTEYyM3c5UTQ5VG56V3QydXBKZ05UL3ZQeTZlRTRWSE5OMVZEYjI4?= =?utf-8?B?WEY5Qy9BN0ZJR1B5Y3QxUU1QMkQzaWpMTEcvdE1oRm4zRk1MdEhIcTVuNExP?= =?utf-8?B?dVh0SGVmaWllbmZpRk45eWdQMCtQeW9HR0VtL0RVbEdEWFN6Vmk1Nk5TR3kv?= =?utf-8?B?ZHE4NnhqZ2twMkdiYXpacUk1VWJYTWxZdkl2UGxKakRtcW95ek52T1BYUTFI?= =?utf-8?B?YW1JcERsTmh5VDZqa3NrYmY2TTdWZG85NHMxZUthbzluYkhiamZrWlcyQ29I?= =?utf-8?B?SUZvYmlNSFhjYTl5akVBNzVNeDZlcEtRT0Z5NnBlaTRnRXozdDFMN2RpbHVT?= =?utf-8?B?NHcyUkx6MERneVpVdUptVjB1M2U2TnF1Nk5xU3duUTJhY2xHZWtNdEhlbDJz?= =?utf-8?B?QTViNFdVTzhIVjNQOVJNcGRRMXYrZEpVSm1XaXVGNkVLY0IxUWd0enVtNCtt?= =?utf-8?B?SzVCV1VUdW9kaUJ4em5aRzZQRUhLTjI1cHBaQm51Q1RUZXJFenZlaEw1V1lT?= =?utf-8?B?Vnc0ZjREaDl5QUlhalp6TitOemdLQ0VnK29jYUZHTWpqREFYbjZQM0hHVGhi?= =?utf-8?B?MEhVQjdxWXUxTkUyYVVVcEs3WjJxNGhmTUNwdCt3V2RjRElvU3diZXJRd1BC?= =?utf-8?B?NmxndXptUFJrQlNQY2tPYmlDd3FCNmVzY0srODhNQ1FldDV6cDJTb0dENzZD?= =?utf-8?B?ZVFseDRqZEZtKzNaZVJNTGRjalJ5MzViczE5WHl3dDJnd0hWbmFMelV2SkMx?= =?utf-8?B?WlNUKzd2WDdFcUVaeVpjWnI5UThOSmthb29YOUtqY2x5YUFyM1lhWVJ4NjFk?= =?utf-8?B?TnJyQTdoWnVCT3VKWk1HYTlJTDljNGVnUG5lWWgrY2swNjV0TnlYaUxWN2NJ?= =?utf-8?B?WUUzWVdNNmQ0ZllZTnl1eHkrdGdHdmtlOUx0RzRCQ3hSWk9JYmsvZm8za1pr?= =?utf-8?B?OUhDbnJzVUdVRjlRQk0xQXpJUXRJT2FvSGtLeFErNTlBNDhJa3RZTThDMkNl?= =?utf-8?B?YWRsOFo0VU5mTkRWV0x5d2pQenBBaG1zRW5oekUxVzJmMlZFV1cyMDIrTTNJ?= =?utf-8?B?YktuOUFGaGRtdXB1WTh0cXoxVmRaZFg5U0VETFMwRjJHbmJyY0lmR2NvSnhI?= =?utf-8?B?c1dZbk5pRDZmbkNFd2c0TTE3b216R0EycmlHS05CWS9DY2VySEQ2T1lqeUJR?= =?utf-8?B?WFE9PQ==?= 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: 4dd5e94d-c3d4-4310-964d-08da654ccb24 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jul 2022 03:56:12.5814 (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: DVYIol3yj0274bSn00TJSegD6/iR5QgyLAWoi3ezmtUN6jWOiP6Tw2w7PN58ycjsbXpzuWLALWMF0YE+rp8MSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB5211 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v2 2/4] lavc/hevcdec: do not let missing ref frames invovled in dpb process 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: "Xu, Guangxin" , "Wang, Fei W" 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 Tue, 2022-06-14 at 09:23 +0800, Fei Wang wrote: > From: Xu Guangxin > > We will generate a new frame for a missed reference. The frame can only > be used for reference. We assign an invalid decode sequence to it, so > it will not be involved in any dpb process. > > Tested-by: Fei Wang > Signed-off-by: Xu Guangxin > --- > libavcodec/hevc_refs.c | 14 +++++++++++++- > libavcodec/hevcdec.c | 4 ++-- > libavcodec/hevcdec.h | 3 +++ > 3 files changed, 18 insertions(+), 3 deletions(-) > > diff --git a/libavcodec/hevc_refs.c b/libavcodec/hevc_refs.c > index 3f8fe1ef18..89053fd1a2 100644 > --- a/libavcodec/hevc_refs.c > +++ b/libavcodec/hevc_refs.c > @@ -172,6 +172,16 @@ int ff_hevc_set_new_ref(HEVCContext *s, AVFrame **frame, > int poc) > return 0; > } > > +static void unref_missing_refs(HEVCContext *s) > +{ > + for (int i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { > + HEVCFrame *frame = &s->DPB[i]; > + if (frame->sequence == HEVC_DECODE_SEQUENCE_INVALID) { > + ff_hevc_unref_frame(s, frame, ~0); > + } > + } > +} > + > int ff_hevc_output_frame(HEVCContext *s, AVFrame *out, int flush) > { > if (IS_IRAP(s) && s->no_rasl_output_flag == 1) { > @@ -418,7 +428,7 @@ static HEVCFrame *generate_missing_ref(HEVCContext *s, int > poc) > } > > frame->poc = poc; > - frame->sequence = s->seq_decode; > + frame->sequence = HEVC_DECODE_SEQUENCE_INVALID; > frame->flags = 0; > > if (s->threads_type == FF_THREAD_FRAME) > @@ -462,6 +472,8 @@ int ff_hevc_frame_rps(HEVCContext *s) > return 0; > } > > + unref_missing_refs(s); > + > /* clear the reference flags on all frames except the current one */ > for (i = 0; i < FF_ARRAY_ELEMS(s->DPB); i++) { > HEVCFrame *frame = &s->DPB[i]; > diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c > index f782ea6394..99785aa5d1 100644 > --- a/libavcodec/hevcdec.c > +++ b/libavcodec/hevcdec.c > @@ -569,7 +569,7 @@ static int hls_slice_header(HEVCContext *s) > } > > if ((IS_IDR(s) || IS_BLA(s)) && sh->first_slice_in_pic_flag) { > - s->seq_decode = (s->seq_decode + 1) & 0xff; > + s->seq_decode = (s->seq_decode + 1) & HEVC_DECODE_SEQUENCE_MASK; > s->max_ra = INT_MAX; > if (IS_IDR(s)) > ff_hevc_clear_refs(s); > @@ -614,7 +614,7 @@ static int hls_slice_header(HEVCContext *s) > return pix_fmt; > s->avctx->pix_fmt = pix_fmt; > > - s->seq_decode = (s->seq_decode + 1) & 0xff; > + s->seq_decode = (s->seq_decode + 1) & HEVC_DECODE_SEQUENCE_MASK; I see 0xff is used in other places, could you replace it with HEVC_DECODE_SEQUENCE_MASK too ? Thanks Haihao > s->max_ra = INT_MAX; > } > > diff --git a/libavcodec/hevcdec.h b/libavcodec/hevcdec.h > index de861b88b3..9c8bcefb48 100644 > --- a/libavcodec/hevcdec.h > +++ b/libavcodec/hevcdec.h > @@ -390,6 +390,9 @@ typedef struct DBParams { > #define HEVC_FRAME_FLAG_LONG_REF (1 << 2) > #define HEVC_FRAME_FLAG_BUMPING (1 << 3) > > +#define HEVC_DECODE_SEQUENCE_MASK 0xff > +#define HEVC_DECODE_SEQUENCE_INVALID (HEVC_DECODE_SEQUENCE_MASK + 1) > + > typedef struct HEVCFrame { > AVFrame *frame; > AVFrame *frame_grain; _______________________________________________ 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".