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 C8C914267F for ; Wed, 25 May 2022 15:28:19 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 79B1768B546; Wed, 25 May 2022 18:28:16 +0300 (EEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10olkn2084.outbound.protection.outlook.com [40.92.40.84]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7D22068B452 for ; Wed, 25 May 2022 18:28:10 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bvutExUUodbdSvjNUOULq+kPT6bUPASPS9aU8iANe0J449svry62X7jIHaGF3bwL/sH/j5JYIbXq0rRsTm/CBIHsfMdlTzR2MSXo+Ul1qAjmL2T1vK5kJb7+3gTXE8C9xZi1ssaSxjdjcwgKGuZyW0NXkI0b5+Scq/elIr8jMMx+T46FN3XYn4omNw+Vxovv8yNJSDvV0yeRJCxIwKo0ymIxJfUC4HWuD45+hQdrL8B4tsJmaKfyn9B8TsWTX8XIPHuvMNjBcb7Vu45/Z4PBAxogas/TojbIQ84VPj0PZgMlpHyRrQiwDSgcLJblCLYPZxlEE3jaJ2QBlWEdQgzvnQ== 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=hmbMuaW/1mKKWnUWpi6jyEflnzv9iKngVCggAVchMU4=; b=c08pZpShNfQk0Ht7RVuTTFmjpGEwapYWXzARwz06Ro3xzhO1+SXbjaiFupEKJgWd4CqkYynjxvPpTbHzaA+G0ru9sERq3HbqGEKbWpElBEevcmGJvCc54dFZv2V/XZ5ABe290GklvYwJRtyfT2a99t1Hr5jE3thgFqCT+X0Ch7eA7SuqZShq7x2P38AVxfHPNdaQzLnkC3r4HHqSPwK7sNHwA8juTVQ731buhtAWhMOM6T2MVNDbQOV6z7RFmPf4bDrVlvc5COqilV7W0KOS4WPilVxTVNuX5A7NDxoWFm+KzxfG7xGLarmW1LrnQwE2R7nH0kHvagYrcvmhDgzUHA== 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=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hmbMuaW/1mKKWnUWpi6jyEflnzv9iKngVCggAVchMU4=; b=SfsvZ1CDex9v9F3dd7h1ZYxW6Um43gsGzt5lqbOpWEWz6t6o0OwM3xVF5cV/KmK/l64qMFzaPqBbzoK/tX/OB+nVcKLJ1qm2NGChT6S7TQpXvLMTzIg7a/iaZeS7yR5F6KzW44FWJbSrlM/YmM5r1QiQi6a+CUsrmRVnFsPkyHUE4Z1hF+GJpmBk8YiD5NQNZsU1EfHqflPKqjRJVshi/tQUnxnvvYBZir/mrXs69fKg4Rxl0r5Kp2f4/Dl+5VAOmWl5HcVuCt3AZT1iBUkNJMu9Pd/FT3OmN8m4YIDBtOeJ7R2BP5Gd2WC9Z1hEtylguhRudd6BCzcM7SsDT/Z+fA== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by CH0P223MB0268.NAMP223.PROD.OUTLOOK.COM (2603:10b6:610:e8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.16; Wed, 25 May 2022 15:28:07 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::f144:21f9:cdb1:5c8a]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::f144:21f9:cdb1:5c8a%7]) with mapi id 15.20.5293.013; Wed, 25 May 2022 15:28:07 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v7 2/3] avformat/os_support: Support long file names on Windows Thread-Index: AQHYb7yJuBML25MNo0OXZrIvuacPB60vrVyAgAAJuLA= Date: Wed, 25 May 2022 15:28:07 +0000 Message-ID: References: <7751335906bcaa5da249928c9830fcc75b01970c.1653430851.git.ffmpegagent@gmail.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [z1PWG0WmwwCUXC8voHOVK2zTSkAm2vre] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 84d4a999-0916-4ee4-493b-08da3e632b75 x-ms-traffictypediagnostic: CH0P223MB0268:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7G2Lt6WnMPTxyxH4H82TSXbCA9RjMOTd9jcg2M/a1GxIjk6z6YJ0FNcmXZl6YgctwaFwkRan1oGqOOWNws+EnS7Os2uU9HvkBWdPvGDRgxQLLLLq8iO2AJ71orPJZobq3Djd6TKKCBLk46XiYBgzI7V7FyrkFrQwRTGq2a8FlUKe+nnsNrVL8zVsz8AvDDfzRWHByg/uvObvvcL+ZSkqsFMdfxN3H2VcSg0Y/SD1IifVBOUwQqlaS32z3uODeLb0bWoHU4x0oIHhivs0PNkTs8cDR+b7099vgBT0dWaExOEda1j9+RzrwhaoaSBeXoiO2wA1vfS+F4NRhYBt60746koGXCrwSzDAE1BQfF98OG1jXO+CvXsEs5PeovlNDAQZrqvHo5lafngKcBeMoRR58dIlOdjmaAOoeZY6QVSDSc9pd8prgaZHf3Ic5R3ydLGdRGe1L8/NcTfCyZtHaA47ERNlxu2Ih4TG9zADAMht69oIAZPpbztktiYk/iXXADf9g5VW5mLt5vnjpAbVGoJmBkH2VS+3xP9NDyN34c8nZWilyHJbLUpKlHQaX0LAcA8NDtp0ZtOrKm2Uyo0ktusxQFfZsHeLkEB+EVUgkoNSmhfHiJoD6AjLCSpmivHdKz+X x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?V1A2T2FsbnhPSWRDRkNvcnQxdExZRWhvaFJpY3FNb0Ixd2I0dG5DcEZqUTZz?= =?utf-8?B?TmVzR1owQ1VGVE4vL1NaNDRHL2dyVnhIVHh5MGlQYmE3QlV1dFI0MDNMQW85?= =?utf-8?B?aUd5dUlVUTR3ZDhhS3BucnNRaGZ3RmE0NUJHRzBXWW43QmwrTDUxS3lvMzZn?= =?utf-8?B?cmhrT2R4a3EwYnl2d0liL0NaUmZKWnc5QTJuUEJtMllycW1CQzN3Tm50ZjNz?= =?utf-8?B?NGt3dG5nVkpOUWZ3V1JWdm13Tm5jcmcyUCtUY3prREUwMmhncmlrUlFHUEdB?= =?utf-8?B?UFlkbWZ0VXdCcjJZalBPSzlnNDB3OGtOUy8wdlh0NFJqM1p5dXVBWTgzcW5S?= =?utf-8?B?Mkx5MDAzZWh6dElQUGtIekdVRzBVNGtxUWZ5ZmRjRm5uam9NNFlkT1kwTVpC?= =?utf-8?B?STB0SWZpTEdmcTNNY1FCU0NqS0owSEUyejlwcHJTQnNuK2E4ckR0T09reFJJ?= =?utf-8?B?MDBWdHNDb1YyOTVXZ0xKODVHVXVETWE4YjN5RUlXbzhrdk1ZaHl5cjlYd2F6?= =?utf-8?B?cGxrSktrR1N3eWtrdUVoK2t0enN5dnl6MWJEbGJFSFlHTTdYOUVkckNhY0cy?= =?utf-8?B?L3czdkZxaVRuMlZmTmN3a3VsbnQxOXhRTFBOSkRJTXRROEZWQmE2ZWpQOWxD?= =?utf-8?B?OUVCRjc0eC9mcmMxZmk3R0dSV09NNVR4KzNmYzhycnh5OTVTSG1WbjF4TGND?= =?utf-8?B?TzBWdjlwbE5EVFVoWEk1VEwyN2RuQVhKUm9DdVIvcFMzSkZQMWNnV2VIVWdB?= =?utf-8?B?a2ZWSWNRdmF0NVRIdW9QelhjUGwvS0dCaThCQkw3bGZVTnpiMFdTajdwR0c4?= =?utf-8?B?WlNJc1Yvd24vYlZvSFVlSk9jN1NibGZZSnpPRWQ4VkYxZDBKYnBkR3p3T0ZS?= =?utf-8?B?anliWCtsRTVGNVJqY1BDU21KTHZRaFhGdkpxM0d1MTVtbURnbG9wTHp1OVQz?= =?utf-8?B?SkVpdkVpK1l1djRya2xJeGQzZ244U1lyeWVTeEtUdExpMVZXNUVHQWQvME0y?= =?utf-8?B?aWoxRzZUaEtyRUFVVTgvclJPWXZDMllOVUxtVCszL0thSGlOZldna2RpbmMr?= =?utf-8?B?SUl0NER2M0U2aTZtSFExVG00STZWUWtxeWFFVTJoaUQxcWRpd2hCVURDSTJH?= =?utf-8?B?M1htZVB6N0k1NVZURmMxZFN2dGlVSkZRT2kzV1kzbW9FYWFtRUhEU2hyYU9H?= =?utf-8?B?b3ROUUVQdFdoUzM4TnJwQ3pyVm9iT3BLcVJJOUt1bU80SHFyM3BNcFVkQXpX?= =?utf-8?B?TUJLdHFydmVRS0JmdE9ETFV4U0F2a09QcWMvVUx4MzNBUUY2eWVyamhRNUVa?= =?utf-8?B?ajRvRUVrUkkvaEEvTUNiT1RRYkpUeXZxbVc3Y1FndE1vdWUvcUd4alpVN0sr?= =?utf-8?B?MmNYSHZzRXN1Yjk3akRYNU9TdThjLzdqb2hBNEFrSmM2WHVYSzFPUkxEbkhE?= =?utf-8?B?UDBQSkZrZlJka2ROVmFReUZKbWRLZGVxNGV0QVVSUk1ta09BSGlaQjNibVZt?= =?utf-8?B?cThLcmRXYjF5bWNyMmVyQVRoUHY1UStVYU8xdWFoT0RLbjQ3N29FeXY5aEdI?= =?utf-8?B?bGYvR1ZsUUFSbUtCcm5ybFNTQVN3eHhoMUVzYXhwclF3dEFySisrN1Z3TWNt?= =?utf-8?B?ZHlyN0RESEV4RE9GMjM1RTBjOTZiaFgwc1hpekpzT2NZSW9mQkpUTHd1cUdZ?= =?utf-8?B?RENZeVlNYjdiQWJicWFURWlUL2hlL2VFTjZNVDdpN0NaOURwY1FkUGN2Nmpa?= =?utf-8?B?SDlhNFJsRkY2d0J0M3FLaThpeE45MmZFM09DSDBqTVg0UlpqekRIM0RaaklE?= =?utf-8?B?eTQzYkFCM1VmRjY3SHkyR1RoY1hvdk9GR2swV096WHFJcFJIU3k2Y0UyU3pR?= =?utf-8?B?dnFWYVJCZ0VCci9zNG9jdFF5TlI3cEN3RHkxWGh3WkRrRVlFRkpBQ3BWcmV6?= =?utf-8?Q?BU/YqiB+bFc=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 84d4a999-0916-4ee4-493b-08da3e632b75 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 May 2022 15:28:07.7981 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0P223MB0268 Subject: Re: [FFmpeg-devel] [PATCH v7 2/3] avformat/os_support: Support long file names on Windows 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: > -----Original Message----- > From: ffmpeg-devel On Behalf Of nil- > admirari@mailo.com > Sent: Wednesday, May 25, 2022 4:48 PM > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH v7 2/3] avformat/os_support: Support > long file names on Windows > > > + struct win32_stat > > + { > > + _dev_t st_dev; /* ID of device containing file */ > > + _ino_t st_ino; /* inode number */ > > + unsigned short st_mode; /* protection */ > > + short st_nlink; /* number of hard links */ > > + short st_uid; /* user ID of owner */ > > + short st_gid; /* group ID of owner */ > > + _dev_t st_rdev; /* device ID (if special file) */ > > + int64_t st_size; /* total size, in bytes */ > > + int64_t st_atime; /* time of last access */ > > + int64_t st_mtime; /* time of last modification */ > > + int64_t st_ctime; /* time of last status change */ > > + }; > > Wouldn't it make sense to add a > static_assert(sizeof(struct win32_stat) == sizeof(struct _stati64)) > somewhere? No, it is intended and expected that the structs are different. > > > +static inline int win32_access(const char *filename_utf8, int par) > > +static inline void copy_stat(struct _stati64 *winstat, struct > win32_stat *par) > > +static inline int win32_stat(const char *filename_utf8, struct > win32_stat *par) > > +static inline int win32_fstat(int fd, struct win32_stat *par) > > How about renaming par to something more appropriate? How? And why? These functions were always named like that (it just wasn't visible as these were constructed through macros). > > > +static inline void copy_stat(struct _stati64 *winstat, struct > win32_stat *par) > > +{ > > + par->st_dev = winstat->st_dev; > > + par->st_ino = winstat->st_ino; > > + par->st_mode = winstat->st_mode; > > + par->st_nlink = winstat->st_nlink; > > + par->st_uid = winstat->st_uid; > > + par->st_gid = winstat->st_gid; > > + par->st_rdev = winstat->st_rdev; > > + par->st_size = winstat->st_size; > > + par->st_atime = winstat->st_atime; > > + par->st_mtime = winstat->st_mtime; > > + par->st_ctime = winstat->st_ctime; > > } > > Would memcpy make more sense here? No, it is intended and expected that the structs are different. > > > +static inline int win32_stat(const char *filename_utf8, struct > win32_stat *par) > > +{ > > + struct _stati64 winstat = { 0 }; > > ... > > > > +static inline int win32_fstat(int fd, struct win32_stat *par) > > +{ > > + struct _stati64 winstat = { 0 }; > > ... > > Functions use _stati64 internally, which is affected by _USE_32BIT_TIME_T. > win32_stat does not take _USE_32BIT_TIME_T into account at all. > It was already pointed out that _USE_32BIT_TIME_T is actually used: > https://ffmpeg.org/pipermail/ffmpeg-devel/2022-May/296731.html. That's why the structs are different and the fields of win32_stat always large enough, no matter which struct is being used internally. The point of this solution is to provide independence between what the application "sees" and what is used to call the Windows API. Kind regards, softworkz _______________________________________________ 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".