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 C85A94C4CD for ; Sun, 28 Jul 2024 13:06:17 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 488F368D7A0; Sun, 28 Jul 2024 16:06:14 +0300 (EEST) Received: from AUS01-ME3-obe.outbound.protection.outlook.com (mail-me3aus01olkn2167.outbound.protection.outlook.com [40.92.63.167]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7796E68D6C2 for ; Sun, 28 Jul 2024 16:06:07 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JquCOzwtguU/x7RDPN9pVbusZJhj3KuXoRXliCfkbA9ZrYRZBiWwQ66M4np3yunZPR610Jd7WDKqN3Y5tSQ9rnPaAytG4o2sOrrCmw9HJIBoI2/ff/rwJnsCujJI89AODbW76ewksMupT0zi2UOdR8o/1W8NXpew5qOTsDAAmmiK95CdyJpNH7l8XX4407W6qJIu8k0iKBJp2thoxtHRye4gUjcu2kwSeDjQ3xsec6LOmnGNyw+0CIlVaFaHjQyte9bbLmrLzOBa6djEl26+ZKam62kgQMhr0zA25X+EB3Yrcly4EHZzIxV4MDbKuYt0q/ra4kQdfh4oiRegDT4T/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=ZyXzDPS7XrhD7bA0l0tiwp4fz7rnEWrmUfbWDqTrIkw=; b=TAZjt4488uXVNdvdiEdxUXixmShr8jBqeBZr4rucL+UNtJN5mzalTIoNlIgxHntOVitRwTH0ZDmbxw0eRObu+9ZHeRPi6aoJiRGXrS2XBkjxoCjmTMvhedwL2kYENAOG7kbedKFPzukx6vv60qHmHJQ7uRgpJK1884lJSInt0Qe2CE1UqMZG8pgD0Vb4LyDMF+yJaSVZRS9mvcpZftkEqFL8/ubCYxLZKVs+xkQl7YLDwEmV+APSBH/NINak5rPWB6vn2rSrJf4uOdvLGmpZe/TukRli6BKfFJTgutqsf56+SiwLuj9hE8m01JkWqorPPZkLhTOdamFNhuVMW9s9rg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZyXzDPS7XrhD7bA0l0tiwp4fz7rnEWrmUfbWDqTrIkw=; b=b+Kuh9JQ+KiXECnSelxTdoKAlsdd2NZdQufUq6NS8RDjUquOBMpR4Rjdbzg3y4Bp6sDWe6TOiR61iKb1SBuobPErBpatjgYjw5iMr3hADAExmJmwl56dOm7ZeMQ+FAh5aRmArDtnNpB3Yj46HL7+GpkA1P4U8tuZeWwWUbUh7gMcAWb6/VqnfUsbeRcSCZUq8cZc+i6zXVGSPUJBOLYkJ62Q6LJANzXIQG91l34bYwBoi748v4JUT4j8dQQCaP0o8VslM2W/pqYprKT0niOCZOpjomhnFtSRxrx8tPYfqHgHN/h85DB8YP6a7s9qflZ9EPM8rdtIcrjMEUsnGArqFg== Received: from SY7P300MB0845.AUSP300.PROD.OUTLOOK.COM (2603:10c6:10:288::12) by SY8P300MB0169.AUSP300.PROD.OUTLOOK.COM (2603:10c6:10:260::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7807.26; Sun, 28 Jul 2024 13:06:01 +0000 Received: from SY7P300MB0845.AUSP300.PROD.OUTLOOK.COM ([fe80::eaec:d3ce:9584:3e10]) by SY7P300MB0845.AUSP300.PROD.OUTLOOK.COM ([fe80::eaec:d3ce:9584:3e10%3]) with mapi id 15.20.7807.023; Sun, 28 Jul 2024 13:06:01 +0000 From: Tong Wu To: Tong Wu , "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel][PATCH 2/2] lavc/d3d12va_encode: trim header alignment at output Thread-Index: AQHa0UlxNSsVmIi/LkS8I8IJMojNirIMOt6A Date: Sun, 28 Jul 2024 13:06:00 +0000 Message-ID: References: <20240708151323.312-1-wutong1208@outlook.com> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [vfIb8WwjS8n4iI/1vR8oziFhHpYpnRFa4JsovZqRIOY=] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SY7P300MB0845:EE_|SY8P300MB0169:EE_ x-ms-office365-filtering-correlation-id: d2aca520-e233-45ce-926a-08dcaf060714 x-microsoft-antispam: BCL:0; ARA:14566002|19110799003|8060799006|461199028|440099028|3412199025|102099032|1710799026; x-microsoft-antispam-message-info: MsKUogz3aidn5rtmNowgKBdfoHm4hQyL6UhvIkx2diWPZthurl6I9J/TZrlnHDLkzQmis76K6N3p/OMDnoXGqnRgRhkHmLpFxkPN3PemAXrMQrvdlWDK7qKB+C1FjosZo2PekMT4cvYUov/RnfpVEi7T8X2BntaOXrSN5E/8dHhfow2x8gUtgE2CnqT2ICVWGxJk5mBrv+S1m5lDRP4MVBkT82wKKrKrapZ79n5YEF32pSp6y15v38skL4s5gEdW8XJLmgYvNICjjigOXSSjKQ2NvTUG9a1+d/t3IhM6VQD/tAqYCYJVg6arJzGckxJy9zcuwGgw79jLdG2dtygPk+QEOpIiRSYpzgVrf9Zr9/AjZMbjtn8Te2qitdrEiMNgdoRRJs/+O6h9af71XpjkjqH4KMZZMrVaUMeeq7jz1W7YtKVfGxAZNwNkmz6zM5gJ/oUTIONhc2tcXfh8CPD55Lg9HDTb2nfXPI6Me5CMLqcPZX9CWJ7sjZZzFxhbodKzeeRodO7QS9ZYAXqf/3gd9LcWU3Tpq3MYFtw49kT/GMTvMJpb6xjAAWOArDtJlBq9XXBsldn3JGvVkzX9dX4CVcXgN80+7jNOv1eVO17Q+ToFHCw/rZStnb2G9yz2wX/i5npTRh6rpsMMQRR6Xoac3SYW991c+zakTcH03XOVtqs= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?OVEjjE4f264qOMzs/UNkqRwWiuqZ/Eire0N5SawfBlr+etXlimZgpqIykCV8?= =?us-ascii?Q?oCzXcZrkOVDT55efrwS80FCMdjrYsIQAXbBBNOvKVxj6u8ClSEWFHjO115yi?= =?us-ascii?Q?CJtlOr3H5JL5tyJElTskZMwverBx6KEPE4h+CHrvVNQdFSd3MfswL5tdHb2z?= =?us-ascii?Q?MMhl8phrTGsq6caIXrAtC2alBwFbD/741wNXQZvhxloMYb7jDdaiAhfeMK0k?= =?us-ascii?Q?w/2AVJ4j3eRs2hwPROOkBmdrre9opTlbnai7w/mD4LucOoqvOOZOgTO/tY8+?= =?us-ascii?Q?QehHunVtQxxlHDgCKPpwH2XTZbtGd7yavTa4Vd8ZsaVSxsEvwFOml/wnv7zw?= =?us-ascii?Q?B/sDeyi6s3gIxA67S0x5d4kT2FOabEHKQPMZbL8UHi1Y0eQUIquBYP6rceFr?= =?us-ascii?Q?4JyRy/X1inm3TgDqNnA7MKYOWdyarQ1BKZ4uCJtU44kDX/TRBVYl7ojRpoal?= =?us-ascii?Q?TJPkjlqgb/LUdtM+7qrFDTOLSOf065bABQfQpXx9Lnhtb59SlOBLPqPGlQX7?= =?us-ascii?Q?jWj4/4uEVPNT05z/YdS9POq7cLyIc7pVuCPr5YlsQDoIO0c8PNhls4azihcF?= =?us-ascii?Q?3K/j+7i93lfrK4OweKeWCJd/djvGAzkstlBPqqeGzn/vzuHS3reJ40azS1Zp?= =?us-ascii?Q?VQHJP1HwyXQo7BAhYXy1x8R9Jf5+mvu8mMo5I65aRDrh2Xz4x2tiZJNOMaOd?= =?us-ascii?Q?y+QCA/0vYXFX6eM03O8IQS1Xh8o7yF3SIPVq2c6wMbUMOHG/9rm400c6AG2z?= =?us-ascii?Q?pDqw+5cIrBfyv2ohSNobqpe4mPATerWog0M1Eb2c3FxS7oIeKvzw5txu0sG8?= =?us-ascii?Q?XHwu/dJ1tEboVI/BUUR5fucXgT7zYf7zbfnjKuoKRHfC5NqhAmvVAhLXXUK0?= =?us-ascii?Q?Nv2LWyWUU2ZoIl5Lrycejp0TImGYv8By8H2jYiHa+EU+5vnfO0OITECS3hHv?= =?us-ascii?Q?1B7dL+DLF5A0w0c2GwBWs9c45wIbDyr8UIWZwoNSAY0mgOZPysG/88S41nmP?= =?us-ascii?Q?0af0b7UaWEwnElsIUjrEagyruxNoboQs4xtNQsdUffi/Mo1WtaZ0qialT5eU?= =?us-ascii?Q?giXEIJFpBRjeGcP0Ogv4sxeguLc1gLY0ajF1LxYJlNGOwOL7uYt0PgL1qVDG?= =?us-ascii?Q?sTnWcRQoq38b83C6SssSC/RE3pNG1krPxsyGkmCOa5fZzRptyZCLWpDQkQnM?= =?us-ascii?Q?2NcQFBA1jYn3PxCXLQP0g5cB+aMI9Ved/rsF5ZRObY4UNOaZEKLvYgO5eBc?= =?us-ascii?Q?=3D?= MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SY7P300MB0845.AUSP300.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: d2aca520-e233-45ce-926a-08dcaf060714 X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jul 2024 13:06:00.2977 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: SY8P300MB0169 Subject: Re: [FFmpeg-devel] [PATCH 2/2] lavc/d3d12va_encode: trim header alignment at output 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: Tong Wu: >Subject: [FFmpeg-devel][PATCH 2/2] lavc/d3d12va_encode: trim header >alignment at output > >It is d3d12va's requirement that the FrameStartOffset must be aligned as per >hardware limitation. However, we could trim this alignment at output to reduce >coded size. A aligned_header_size is added to D3D12VAEncodePicture. > >Signed-off-by: Tong Wu >--- > libavcodec/d3d12va_encode.c | 18 ++++++++++++------ >libavcodec/d3d12va_encode.h | 1 + > 2 files changed, 13 insertions(+), 6 deletions(-) > >diff --git a/libavcodec/d3d12va_encode.c b/libavcodec/d3d12va_encode.c index >9f7a42911e..9ee9da41e3 100644 >--- a/libavcodec/d3d12va_encode.c >+++ b/libavcodec/d3d12va_encode.c >@@ -308,9 +308,9 @@ static int d3d12va_encode_issue(AVCodecContext *avctx, > } > > pic->header_size = (int)bit_len / 8; >- pic->header_size = pic->header_size % ctx- >>req.CompressedBitstreamBufferAccessAlignment ? >- FFALIGN(pic->header_size, ctx- >>req.CompressedBitstreamBufferAccessAlignment) : >- pic->header_size; >+ pic->aligned_header_size = pic->header_size % ctx- >>req.CompressedBitstreamBufferAccessAlignment ? >+ FFALIGN(pic->header_size, ctx- >>req.CompressedBitstreamBufferAccessAlignment) : >+ pic->header_size; > > hr = ID3D12Resource_Map(pic->output_buffer, 0, NULL, (void **)&ptr); > if (FAILED(hr)) { >@@ -318,7 +318,7 @@ static int d3d12va_encode_issue(AVCodecContext *avctx, > goto fail; > } > >- memcpy(ptr, data, pic->header_size); >+ memcpy(ptr, data, pic->aligned_header_size); > ID3D12Resource_Unmap(pic->output_buffer, 0, NULL); > } > >@@ -344,10 +344,10 @@ static int d3d12va_encode_issue(AVCodecContext >*avctx, > > input_args.PictureControlDesc.PictureControlCodecData = pic->pic_ctl; > input_args.PictureControlDesc.ReferenceFrames = d3d12_refs; >- input_args.CurrentFrameBitstreamMetadataSize = pic->header_size; >+ input_args.CurrentFrameBitstreamMetadataSize = pic- >>aligned_header_size; > > output_args.Bitstream.pBuffer = pic->output_buffer; >- output_args.Bitstream.FrameStartOffset = pic->header_size; >+ output_args.Bitstream.FrameStartOffset = pic- >>aligned_header_size; > output_args.ReconstructedPicture.pReconstructedPicture = pic- >>recon_surface->texture; > output_args.ReconstructedPicture.ReconstructedPictureSubresource = 0; > output_args.EncoderOutputMetadata.pBuffer = pic- >>encoded_metadata; >@@ -663,6 +663,12 @@ static int >d3d12va_encode_get_coded_data(AVCodecContext *avctx, > goto end; > ptr = pkt->data; > >+ memcpy(ptr, mapped_data, pic->header_size); >+ >+ ptr += pic->header_size; >+ mapped_data += pic->aligned_header_size; >+ total_size -= pic->header_size; >+ > memcpy(ptr, mapped_data, total_size); > > ID3D12Resource_Unmap(pic->output_buffer, 0, NULL); diff --git >a/libavcodec/d3d12va_encode.h b/libavcodec/d3d12va_encode.h index >1a0abc5bd0..51440428e4 100644 >--- a/libavcodec/d3d12va_encode.h >+++ b/libavcodec/d3d12va_encode.h >@@ -43,6 +43,7 @@ typedef struct D3D12VAEncodePicture { > FFHWBaseEncodePicture base; > > int header_size; >+ int aligned_header_size; > > AVD3D12VAFrame *input_surface; > AVD3D12VAFrame *recon_surface; >-- >2.45.1.windows.1 The first patch in this patchset has been merged earlier. Will merge this patch if there's no more comment. -Tong _______________________________________________ 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".