From patchwork Sat Apr 23 20:56:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nil Admirari X-Patchwork-Id: 35389 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b9e:b0:7d:cfb5:dc7c with SMTP id b30csp1101260pzh; Sat, 23 Apr 2022 13:57:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyBFjiXEip1xvzlJSpc6+Zqk+ghvD41eExGLiWSBAp5qGhuCJisr24CwBTUEMTlTFX1rmmr X-Received: by 2002:a17:907:628e:b0:6d9:c6fa:6168 with SMTP id nd14-20020a170907628e00b006d9c6fa6168mr9522510ejc.132.1650747450673; Sat, 23 Apr 2022 13:57:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650747450; cv=none; d=google.com; s=arc-20160816; b=u9UvbV3BU8Z1fX3EugGmX6uw1Hrn7pLCcdFZ69z0zkmJfvadXw+dFcoLjSRrgHPWZf CBTqTsYCRB8HjIScBUQaBsBnVF1iv6lTx+CYfkesjjjRTrGAraywNPu11W+vqU14kxik biCCXH612k+PQ+DyGYJBuCk5iST9+jJHiGqyd0shHVKABLwYloSPoC0GdJ17xPSjV59w YtRmEs3BMdNoFZm2CjPp20LJKifsBpt31rPZQKILpHRclEt22ZNulLjNBK4xtQ3grh4h n0b+4jjJwa+NHqw3p2cNYsxC6iM591tFLKaMeAem8K+9Yi84Dg+A6jtRXg1Lag0ftbjH q0mA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=yJ++MKXYIxrHDHeuwvXOriTfXAOmbMp3sZdxVZGxMTU=; b=IVZdKasIxJp2AFzxTFJaeDUoxBA5n1Q8wXTmDd2dndd8ccrlvp/NlZuQRqCxkPqsAg mdGu40exK7FUEoVjNXn6KQkW9oQEXo+5Wdi/LFB2rqXhgud+f+qM7ZxxHWIOBGLZyuQA g7xOvppTyJgiQAqe0j1um1nIf5e5qmocQsFRP/XL2iCSVacQxJ/5T6L2UsiSCjLvKPlz 4r61EMThKXNPYXjHlcb/Y66Nv/43hZHHHUgPdUTSadmgLuFItXN+3ZF9HcC9E+S5RuGw sz0LudhDmtHmTh0Um3FspbcISabkyeYC9TlgfcRHmcXnYFmVPtRQRGQnTFhsOxiVbE/j 5LeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@mailo.com header.s=mailo header.b=IWZ4gbjm; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mailo.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id i26-20020a056402055a00b00425b355cc6esi5005951edx.435.2022.04.23.13.57.30; Sat, 23 Apr 2022 13:57:30 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@mailo.com header.s=mailo header.b=IWZ4gbjm; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mailo.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E207168B410; Sat, 23 Apr 2022 23:56:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from msg-4.mailo.com (ip-15.mailobj.net [213.182.54.15]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C3D6B68B375 for ; Sat, 23 Apr 2022 23:56:43 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mailo.com; s=mailo; t=1650747400; bh=hgZlviNGbxJy64Ovqik4Y+rNDcrjoXqjdemKcxkdE6g=; h=X-EA-Auth:From:To:Subject:Date:Message-Id:X-Mailer:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding; b=IWZ4gbjmNbx+WX/t0hQYLLWei91RfEzXXoym+RQndCX0f0XoQIcDYPduDdsqD+K9K hcPdtHI8rJ+wlIC2FaeCeeXcPdsSlAzeTUbVp2JSdkReP2xq6xbRtKIjhUtQcfe01Y 8Dd9GcKmITgzVFaHysnnNx3rASCl07OBNwcvng0I= Received: by b-2.in.mailobj.net [192.168.90.12] with ESMTP via ip-206.mailobj.net [213.182.55.206] Sat, 23 Apr 2022 22:56:40 +0200 (CEST) X-EA-Auth: htmp0dnIRGX7g0wDeXWQLW6AjseLZQxue/BgIKzFCKBbDEMTUU0l1Fu9z8ah9E+1ED034jg3flBWnMUFN2Yn0TmekyswbEPh8eNuBQAv4mc= From: Nil Admirari To: ffmpeg-devel@ffmpeg.org Date: Sat, 23 Apr 2022 23:56:25 +0300 Message-Id: <20220423205626.39039-5-nil-admirari@mailo.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220423205626.39039-1-nil-admirari@mailo.com> References: <20220423205626.39039-1-nil-admirari@mailo.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v11 5/6] fftools: Enable long path support on Windows (fixes #8885) 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: JvT7mqHJzeoO Newer versions of Windows (Windows 10 1607 and newer) can support path names longer than MAX_PATH (260 characters). To take advantage of that, an application needs to opt in, by including a small manifest as a resource. Application must be prepared to handle filenames greater than MAX_PATH. Additionally, the path length limitation is only lifted for file APIs that pass paths as wchar_t. Therefore, the preceding patches have refactored a few remaining cases where: 1. filename length was restricted to MAX_PATH 2. files were opened using ANSI functions. On older versions of Windows, the newly added manifest has no effect. --- fftools/Makefile | 5 +++++ fftools/fftools.manifest | 10 ++++++++++ fftools/manifest.rc | 3 +++ 3 files changed, 18 insertions(+) create mode 100644 fftools/fftools.manifest create mode 100644 fftools/manifest.rc diff --git a/fftools/Makefile b/fftools/Makefile index 81ad6c4f..105ae5cc 100644 --- a/fftools/Makefile +++ b/fftools/Makefile @@ -15,6 +15,11 @@ OBJS-ffmpeg += \ fftools/ffmpeg_mux.o \ fftools/ffmpeg_opt.o \ +# Windows resource files +OBJS-ffmpeg-$(HAVE_GNU_WINDRES) += fftools/manifest.o +OBJS-ffplay-$(HAVE_GNU_WINDRES) += fftools/manifest.o +OBJS-ffprobe-$(HAVE_GNU_WINDRES) += fftools/manifest.o + define DOFFTOOL OBJS-$(1) += fftools/cmdutils.o fftools/opt_common.o fftools/$(1).o $(OBJS-$(1)-yes) $(1)$(PROGSSUF)_g$(EXESUF): $$(OBJS-$(1)) diff --git a/fftools/fftools.manifest b/fftools/fftools.manifest new file mode 100644 index 00000000..30b7d8fe --- /dev/null +++ b/fftools/fftools.manifest @@ -0,0 +1,10 @@ + + + + + + + true + + + diff --git a/fftools/manifest.rc b/fftools/manifest.rc new file mode 100644 index 00000000..e436fa73 --- /dev/null +++ b/fftools/manifest.rc @@ -0,0 +1,3 @@ +#include + +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "fftools.manifest"