master hovercats/oakiss / pkg / transmission / patch / 0002-Choose-larger-pieces-for-larger-sizes.patch
 1From ed525431bbe23d61c4c8dd4664c13bc19b4db889 Mon Sep 17 00:00:00 2001
 2From: Michael Forney <mforney@mforney.org>
 3Date: Mon, 24 Apr 2023 21:09:06 -0700
 4Subject: [PATCH] Choose larger pieces for larger sizes
 5
 6---
 7 libtransmission/makemeta.c | 21 ++++++++++++++++++---
 8 1 file changed, 18 insertions(+), 3 deletions(-)
 9
10diff --git a/libtransmission/makemeta.c b/libtransmission/makemeta.c
11index 713f3e5cb..ae422395d 100644
12--- a/libtransmission/makemeta.c
13+++ b/libtransmission/makemeta.c
14@@ -88,9 +88,24 @@ static struct FileList* getFiles(char const* dir, char const* base, struct FileL
15 
16 static uint32_t bestPieceSize(uint64_t totalSize)
17 {
18-    uint32_t const KiB = 1024;
19-    uint32_t const MiB = 1048576;
20-    uint32_t const GiB = 1073741824;
21+    uint64_t const KiB = 1024;
22+    uint64_t const MiB = 1048576;
23+    uint64_t const GiB = 1073741824;
24+
25+    if (totalSize >= 16 * GiB)
26+    {
27+        return 16 * MiB;
28+    }
29+
30+    if (totalSize >= 8 * GiB)
31+    {
32+        return 8 * MiB;
33+    }
34+
35+    if (totalSize >= 4 * GiB)
36+    {
37+        return 4 * MiB;
38+    }
39 
40     if (totalSize >= 2 * GiB)
41     {
42-- 
432.37.3
44