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 B1D0A4A53C for ; Fri, 29 Mar 2024 15:15:53 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D6EF468D5F2; Fri, 29 Mar 2024 17:15:51 +0200 (EET) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 53CC068D54D for ; Fri, 29 Mar 2024 17:15:44 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1711725349; x=1743261349; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=ClT64QjdcVyteMnasw3n5TorW0W40G969Ja8e96B234=; b=OOsvzqElG+GJPSX8B5gi0o6mTKZhuLaF+MiEY2zXmDFcHfgXpMco7iKo REtL/ng7pyRApNrNrA37eyainIj6YaYR9m3vRgNlKopMag+520Tq0zgIZ f3ewcQxnxIkldpEFugV6tytJTDy7HsH7+dJScUM9KX5CoV8dG78kOtSa3 hpeLL+iXte0v9SQgpIrxWOGonJassdvgh47089zu/oTrwcJ7aQqluY0yJ u2GySh/V2U94d2v+j8o/oWT9+zuRsch47LYnn9+hEXaw2DMgbZj5wyrJS bfy/HE5PnmSPniOzC6D1PseYHzflP07DAyrUERZ38qSDWzrqFov6EMWea g==; X-CSE-ConnectionGUID: T9qvWFHNQluwc7gNsw5l5g== X-CSE-MsgGUID: 2ruJKftzRRC+8DoOGF+cIQ== X-IronPort-AV: E=McAfee;i="6600,9927,11028"; a="10724230" X-IronPort-AV: E=Sophos;i="6.07,165,1708416000"; d="scan'208";a="10724230" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2024 08:15:38 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,165,1708416000"; d="scan'208";a="40150833" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmviesa002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 29 Mar 2024 08:15:38 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 29 Mar 2024 08:15:37 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) 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.2507.35; Fri, 29 Mar 2024 08:15:37 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Fri, 29 Mar 2024 08:15:37 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.168) 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.2507.35; Fri, 29 Mar 2024 08:15:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gv01h8lVUDKRTXBj+IJ5H88gcNsj/I/eX7lJj4y1rR1yJKXpH+wz8m4cb2KPuifBtVwk5LRiJAmSKzTvPfxAHudzYCuEbgqIUjHoGn0394nK9hrFf38GQGYHj8QaHTt0j2C6LwpH2fbIEAzbwtqe6wtznRWdtO3/cVUGxhz2sF4cAStZcRcRo9nvOVZc7x/HUkQl5QCEtTiNe7so2jiYomNcDHSZFsdtMnYwz7f3MR/b+tXpLgb1OOkl7wCPfsOnzDWbve1eNMyMoOGb0jZu4QPLlqxK052Qz6/gLEa2trxEbX6tYppQUS6ZnTvsPmnG2Ayf49qGt5sMfbGUGfnQ7w== 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=Xfb1AeHjhSXEybdIXO9k81p43cKyu0Q54nAc1jjaWoY=; b=EayhUhHphIdA/34B82fb9vfrO8PF2S8S3IhJx5Lllnn8jK5PVY6/zxyHKDGK/kKldw5LBCM7vhBU2ZJjbUE+imRXau5xbmLS4Z5G40crSlDB1EXy+IcZTmLFrtvVT9JRhHVJSDn1cwHkKKuA36p34UBJ4gyGkMVfwR7rWkh8ebitr9rgocyFz2ufriKQwGdaTHdjD16z55MjOG66u6iOtczUYyhprqhsJstXwnFO/X3deYR8xV1e1tBjPSHh8l45vKrVclp3F3bR+wrsuEDM64PrAGKUTJKEISGbHNHqAFbBFmEMN/1+Ikku1ABt0crjJEzUq3iZSHWdHqLmtCt32g== 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 CH3PR11MB8659.namprd11.prod.outlook.com (2603:10b6:610:1cf::5) by PH7PR11MB7605.namprd11.prod.outlook.com (2603:10b6:510:277::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.33; Fri, 29 Mar 2024 15:15:29 +0000 Received: from CH3PR11MB8659.namprd11.prod.outlook.com ([fe80::4c7a:ec78:f0:ac0a]) by CH3PR11MB8659.namprd11.prod.outlook.com ([fe80::4c7a:ec78:f0:ac0a%3]) with mapi id 15.20.7409.031; Fri, 29 Mar 2024 15:15:29 +0000 From: "Wu, Tong1" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH] avcodec/hevc_ps: fix the problem of memcmp losing effectiveness Thread-Index: AQHagdcZytX4dgGQdkirD5iv3OfpabFO1AnQ Date: Fri, 29 Mar 2024 15:15:29 +0000 Message-ID: References: <20240328131518.766-1-tong1.wu@intel.com> <3e6bb1b0-f862-4f3f-8b12-38620aa768a2@gmail.com> In-Reply-To: <3e6bb1b0-f862-4f3f-8b12-38620aa768a2@gmail.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR11MB8659:EE_|PH7PR11MB7605:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GOIdND+yDSaw9Ir79LBwOxwhdDp2ZdHkypigPlS4OKE16SzoPpkkvZvFb6nD9Zyi7YgBc8Fe2A0enC82CBKwc/Ppgyp6vU28QibvQCo3d+gIJ1ey++T2dQfxCIGOM/SJVaY22W1sQLJriE1ecXT/sXx1T9oPz7b6P13KJu1NtFaIPJ9648STmZNppzOQMbM8S+ZldxotFpf/H6IS+okDoNJPUx/AnH/JJjOAhWhBThrPda1v982S+xnK4DFsv5CkamyK3sPilzTwQUbtuN5EfFgmZJmkzTE3bcF3eOE1i/14L/z4bNOd6jBLPz4bxTxj+i8Trxnxuv/CnvENjQqoGcZFHy4xl5olPHVhCm6gAkEeMwEKS6c2QvR+gYXr30D7KD4VGvtQHiapvYM6OYVWNycfcNS41RDcD39STcunmqHfwyeS1zog6j/F9pQpfJqnZdbf50aHJbnVi8A2tATNge/ptNZ6vJ43ZifvDOmmvUzg81yGUYocu6fxMW6C9Vxtjx8iNLhyGtjK5enXV64iAYLcn1j9Pffafnlz3Bp8/Kjgm0q9dhHPkNPnJYSK3W0dQ5qE8rLnmJTNG4G4Sw0TEyigN44xrC9xESr+btyHY2w= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH3PR11MB8659.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(1800799015)(366007)(376005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?IAOnCoOJxK3aCw0hEdrBwKNOwEWXG34YauCci6emE4R9OORAzA2eWh7ivcng?= =?us-ascii?Q?4FECwI4d5FUZJsEG6n4E0TvXXePMl/BKKc1TkG2t1IJcKVVOrJ7bsERaN1PV?= =?us-ascii?Q?LtBTOyJJE/oMPZKPDHmSvkbRHUIrkhysvGijfQfVKMIrNM9aonWVS7XFYdPF?= =?us-ascii?Q?8RTnTZJkTQM1lEleY2BIrkgEm6X8HtZRsvwqke3tUdTUxyWDGm1LQNPreU2h?= =?us-ascii?Q?NmPO8HshHzXZ1c3Ntz+udbWn2Pubt9hQ2GDeUYYxibcCBDA6LQpMt9/x2zMm?= =?us-ascii?Q?Z627tAog94taTcjm9/KX+btXzkKLA3nL+25UA8zjXz0UjDYbAgxpYM5LzG4f?= =?us-ascii?Q?vQSP4nksRmTqVSP2K5ON/40WermYSvqr7npP2FhEtvb0WnbwbYrCNYyXvh/F?= =?us-ascii?Q?/RZd4kqxZBZB20LcAbPz8NH6G9UDGgNlxlzeIQO4zGLWJ4lYJJJz1XMkByrn?= =?us-ascii?Q?8n7P1RxEoZgXxyzfPQWA80v+2He6Mx7gjWOUUR8bIWEJQ3p/PstBAjXgcV4f?= =?us-ascii?Q?DEGd26tEN3LbGbCduP5Wwas2aZ6Xup79PxLQ/IeFWIC0s8rNNT9WFoqpTpI5?= =?us-ascii?Q?Vfw5K/Mx9AmKxqELkufLRobDG+9QFnU1oYl1mde+gaB1+q8AbiueUYkLU+Qi?= =?us-ascii?Q?U1vGx9ATxB6SdKPEmNOafSav7f3mWFjF5XIsrFUBZp1FNi8el3pX+8aGyr5H?= =?us-ascii?Q?EKJDHhauNpnm4xX2ykJM2MyXZxNJFKz3ovNQj9wCTj47K28ejPs8yI4i7+BQ?= =?us-ascii?Q?vOmR4w5BuAT2s+ZSVWK4JqYd9RCvrp3ePBm/KFkhCwrIvCrnQC14TmA48JwC?= =?us-ascii?Q?VXuLuhWWzCixCumaTft/PBI7bM7v/L2gFfNmTMbzIzQD1aUzYJXAaMRyfi6v?= =?us-ascii?Q?hxK1FvgGMSguxoR5N9CKCGu/D6r/RgNExbcnLVr3KepdxLn3UNZS8Y2xv6iL?= =?us-ascii?Q?0NSFA7bZQAPGKU14j8TcLDLSlB8jayYNeVsVPykOnJ+YEqXfKuoY5hv854uo?= =?us-ascii?Q?4T/fNb/KO+uU1nzQrP2ZL3nNlkI8FRcHngK5ofKa0UhogOfzSyScwTXSpPJT?= =?us-ascii?Q?iDo5wqA4F4U3PXTlwyJoUVjznCbM3p8MikxyIAPCh0EOuWnK9NesGaOeyB7L?= =?us-ascii?Q?Lc3hHRu4sV4Ut80E8/NysNY0UxJd91scGC+Fc/n0EL6Z/WiZ6dA/WpEsTNHa?= =?us-ascii?Q?ZD4kzH6rcZ+4Be4H25q+bzXaEW6WLMfBDtNW+rADQj/dF/g8FyyfQ91Xm38C?= =?us-ascii?Q?L6ul2QBWpLjtLKNxgHCrrs3iOJjgXHzWSxfXLDtk9VPDQVWuTVL7gZ+VZhdw?= =?us-ascii?Q?EHrXkvkrnFYFIko8nrFTR5OZi3oxPuhfFyKkYbt5mzNInif/pWAbI7biq+q7?= =?us-ascii?Q?Ed9dVvQlMTIJpII4GUHITs/W4M+AZ4xL1li4xkr92geg+Y2KU1eVD0BcOUqt?= =?us-ascii?Q?HAFrwociuG7TOvI6AWAgyAaDdGXR1GD3jsnLFQvrZbpOGRMJnSJb9QxpnaFv?= =?us-ascii?Q?3Mh4NlGvfFg+3ho59s9k6INxZW4o7hkvUs6iwzZi0sK/PKk2f6N1NMRC5B8G?= =?us-ascii?Q?/DghxqbdwW2yu43VftI=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH3PR11MB8659.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d9148a9-baf0-42b9-4286-08dc500311fc X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2024 15:15:29.6159 (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: n1+wobV4ma5/GIjGU+8fBliV9J/w9urZC176z/0hoaygjYUwx7sZNRmlQUOxBaMavdEBVuqpUhCXwogO88uAXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB7605 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH] avcodec/hevc_ps: fix the problem of memcmp losing effectiveness 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: >From: ffmpeg-devel On Behalf Of James >Almer >Sent: Friday, March 29, 2024 8:46 PM >To: ffmpeg-devel@ffmpeg.org >Subject: Re: [FFmpeg-devel] [PATCH] avcodec/hevc_ps: fix the problem of >memcmp losing effectiveness > >On 3/28/2024 10:15 AM, tong1.wu-at-intel.com@ffmpeg.org wrote: >> From: Tong Wu >> >> HEVCHdrParams* receives a pointer which points to a dynamically >> allocated memory block. It causes the memcmp always returning 1. >> Add a function to do the comparision. A condition is also added to >> avoid malloc(0). >> >> Signed-off-by: Tong Wu >> --- >> libavcodec/hevc_ps.c | 20 ++++++++++++++++---- >> libavcodec/hevc_ps.h | 4 +++- >> 2 files changed, 19 insertions(+), 5 deletions(-) >> >> diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c >> index cbef3ef4cd..8b3a27a17c 100644 >> --- a/libavcodec/hevc_ps.c >> +++ b/libavcodec/hevc_ps.c >> @@ -449,6 +449,16 @@ static void uninit_vps(FFRefStructOpaque opaque, >void *obj) >> av_freep(&vps->hdr); >> } >> >> +static int compare_vps(const HEVCVPS *vps1, const HEVCVPS *vps2) >> +{ >> + if ((!vps1->hdr && !vps2->hdr) || >> + (vps1->hdr && vps2->hdr && !memcmp(vps1->hdr, vps2->hdr, >sizeof(*vps1->hdr)))) { > >I think this should be vps1->vps_num_hrd_parameters * >sizeof(*vps1->hdr), and done after the memcmp below to ensure >vps_num_hrd_parameters is the same value in both structs. Updated as suggested. Thanks. Tong > >> + return !memcmp(vps1, vps2, offsetof(HEVCVPS, hdr)); >> + } >> + >> + return 0; >> +} >> + >> int ff_hevc_decode_nal_vps(GetBitContext *gb, AVCodecContext *avctx, >> HEVCParamSets *ps) >> { >> @@ -545,9 +555,11 @@ int ff_hevc_decode_nal_vps(GetBitContext *gb, >AVCodecContext *avctx, >> goto err; >> } >> >> - vps->hdr = av_calloc(vps->vps_num_hrd_parameters, sizeof(*vps- >>hdr)); >> - if (!vps->hdr) >> - goto err; >> + if (vps->vps_num_hrd_parameters) { >> + vps->hdr = av_calloc(vps->vps_num_hrd_parameters, sizeof(*vps- >>hdr)); >> + if (!vps->hdr) >> + goto err; >> + } >> >> for (i = 0; i < vps->vps_num_hrd_parameters; i++) { >> int common_inf_present = 1; >> @@ -569,7 +581,7 @@ int ff_hevc_decode_nal_vps(GetBitContext *gb, >AVCodecContext *avctx, >> } >> >> if (ps->vps_list[vps_id] && >> - !memcmp(ps->vps_list[vps_id], vps, sizeof(*vps))) { >> + compare_vps(ps->vps_list[vps_id], vps)) { >> ff_refstruct_unref(&vps); >> } else { >> remove_vps(ps, vps_id); >> diff --git a/libavcodec/hevc_ps.h b/libavcodec/hevc_ps.h >> index cc75aeb8d3..0d8eaf2b3e 100644 >> --- a/libavcodec/hevc_ps.h >> +++ b/libavcodec/hevc_ps.h >> @@ -153,7 +153,6 @@ typedef struct PTL { >> >> typedef struct HEVCVPS { >> unsigned int vps_id; >> - HEVCHdrParams *hdr; >> >> uint8_t vps_temporal_id_nesting_flag; >> int vps_max_layers; >> @@ -175,6 +174,9 @@ typedef struct HEVCVPS { >> >> uint8_t data[4096]; >> int data_size; >> + /* Put this at the end of the structure to make it easier to calculate the >> + * size before this pointer, which is used for memcmp */ >> + HEVCHdrParams *hdr; >> } HEVCVPS; >> >> typedef struct ScalingList { >_______________________________________________ >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".