From patchwork Sat Apr 23 20:06:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nil Admirari X-Patchwork-Id: 35379 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b9e:b0:7d:cfb5:dc7c with SMTP id b30csp1086059pzh; Sat, 23 Apr 2022 13:07:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx3THvjDK2frKuV0M+/VVovEU1tigcypF9A+jgMLE89L4ZyiFARYB+63+cE2L7adzUrS6bD X-Received: by 2002:a17:907:a05a:b0:6db:f118:8834 with SMTP id gz26-20020a170907a05a00b006dbf1188834mr9631639ejc.536.1650744441142; Sat, 23 Apr 2022 13:07:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1650744441; cv=none; d=google.com; s=arc-20160816; b=ICDfwh55fScWHYEDRa54I6JmrmsI+3gC4P8jFqGnJOjYbCzdxvzU8KJuDSOhdRvEft FqQGG2DOBdn5BVAGcWl32v//BUL5/Lnxgfi6CQRS984kATVCDnelXPJbn4mmWrwsTCvQ Ky3ubi0meLufzG4kS5pVImvK0QpEunnIFwET4hM32kmSaNwuYpfxGFOSvhWRBvoCEdU6 Jnk56wXIg87DAOF4hTCsBa0bxB3SH+ZhfapkPdMI+7ll2SIpU4WJzO+JWRN3BHMVtwB5 Uc7M5meI/t+A9XciP7QjxkodEJDCYhyE9+1wTxmUE6lYzbwjKW0QQBEnS6cE8LzLhAb7 ptVw== 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=JzwjXtkJrfRLl8QJh7qyoEatc6orVLB9LXJfHN6uTMWDkiXHpRGg/uAIpvKsxPJ6sA Af+gk92AjpmWYIX30dtfA+4jfwE/sys4s9Qzp4u3hTlE50gCwwXrvLXb75qDepwtYerh smSrQ4JYoIjZ3DSxRryvXXfic/m7M2TWShUm2Ct9XQG0Eh9U5xNyD1Tr/07iqNA3C4Ke uCdF6V3KkK+I7vedx5aKRtcKnC4WDzBaze7KvGGnVxIZTGOgt3DR77jUSD4hx4QJtUUW jLRaBnSMg/P/ci/ATOqDjJgz/oiZrZPm4OPPEK2ilSBg6nY3KNlfa5s1hp6CGG9OvQsl e7qg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@mailo.com header.s=mailo header.b=doTRUfRq; 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 i35-20020a0564020f2300b00418c2b5bf77si9130427eda.601.2022.04.23.13.07.19; Sat, 23 Apr 2022 13:07:21 -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=doTRUfRq; 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 15A4A68B383; Sat, 23 Apr 2022 23:07:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from msg-6.mailo.com (ip-16.mailobj.net [213.182.54.16]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 513D668B0E6 for ; Sat, 23 Apr 2022 23:07:11 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mailo.com; s=mailo; t=1650744429; 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=doTRUfRqfkO0EaUb9nmW7twcOyJJo7cSs2MKYIjpukTmxB1AY95eLkxYGn5pIslN/ CM5ep3HLo4yCzdeRxha31OFRBA4qLmRWURlKPnvJpM1AeB4md4zUhy2JVuGh2HbcNl 6MRQX+cDtpNEiqv42IuflqQ3ujD9bA0VYKqFVL1s= Received: by b-1.in.mailobj.net [192.168.90.11] with ESMTP via ip-206.mailobj.net [213.182.55.206] Sat, 23 Apr 2022 22:07:09 +0200 (CEST) X-EA-Auth: XL2V/Izs+Wbw0bZ4esEav/aBNRWeRtGbCXtjJokWu8073UBUlJbaM/NOZyl9BggZLQkgpL4AQVk7n2S2R5LbF+jm6JFW9d1PKlq+APepAmk= From: Nil Admirari To: ffmpeg-devel@ffmpeg.org Date: Sat, 23 Apr 2022 23:06:50 +0300 Message-Id: <20220423200651.36689-4-nil-admirari@mailo.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20220423200651.36689-1-nil-admirari@mailo.com> References: <20220423200335.36487-1-nil-admirari@mailo.com> <20220423200651.36689-1-nil-admirari@mailo.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v10 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: DV383ZGQkTAb 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"