Skip to content

Commit 5d7afbd

Browse files
committed
CUETools.Flake: better use of new window functions
1 parent 0405231 commit 5d7afbd

File tree

14 files changed

+672
-700
lines changed

14 files changed

+672
-700
lines changed

CUETools.Codecs.ALAC/ALACWriter.cs

+6-3
Original file line numberDiff line numberDiff line change
@@ -1162,7 +1162,10 @@ unsafe int encode_frame(ref int size)
11621162
_windowcount = 0;
11631163
calculate_window(window, lpc.window_welch, WindowFunction.Welch);
11641164
calculate_window(window, lpc.window_bartlett, WindowFunction.Bartlett);
1165-
calculate_window(window, lpc.window_tukey, WindowFunction.Tukey);
1165+
calculate_window(window, (w, wsz) =>
1166+
{
1167+
lpc.window_tukey(w, wsz, 0.5);
1168+
}, WindowFunction.Tukey);
11661169
calculate_window(window, lpc.window_hann, WindowFunction.Hann);
11671170
calculate_window(window, lpc.window_flattop, WindowFunction.Flattop);
11681171
int tukey_parts = 2;
@@ -1171,7 +1174,7 @@ unsafe int encode_frame(ref int size)
11711174
for (int m = 0; m < tukey_parts; m++)
11721175
calculate_window(window, (w, wsz) =>
11731176
{
1174-
lpc.window_punchout_tukey(w, wsz, 0.1,
1177+
lpc.window_punchout_tukey(w, wsz, 0.1, 0.1,
11751178
m / (tukey_parts + overlap_units),
11761179
(m + 1 + overlap_units) / (tukey_parts + overlap_units));
11771180
}, WindowFunction.PartialTukey);
@@ -1183,7 +1186,7 @@ unsafe int encode_frame(ref int size)
11831186
for (int m = 0; m < tukey_parts; m++)
11841187
calculate_window(window, (w, wsz) =>
11851188
{
1186-
lpc.window_punchout_tukey(w, wsz, 0.1,
1189+
lpc.window_punchout_tukey(w, wsz, 0.1, 0.1,
11871190
m / (tukey_parts + overlap_units),
11881191
(m + 1 + overlap_units) / (tukey_parts + overlap_units));
11891192
}, WindowFunction.PunchoutTukey);

CUETools.Codecs.FLACCL/FLACCLWriter.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -1118,7 +1118,10 @@ unsafe void initializeSubframeTasks(int blocksize, int channelsCount, int nFrame
11181118
{
11191119
calculate_window(task, lpc.window_welch, WindowFunction.Welch);
11201120
calculate_window(task, lpc.window_flattop, WindowFunction.Flattop);
1121-
calculate_window(task, lpc.window_tukey, WindowFunction.Tukey);
1121+
calculate_window(task, (w, wsz) =>
1122+
{
1123+
lpc.window_tukey(w, wsz, 0.5);
1124+
}, WindowFunction.Tukey);
11221125
calculate_window(task, lpc.window_hann, WindowFunction.Hann);
11231126
calculate_window(task, lpc.window_bartlett, WindowFunction.Bartlett);
11241127
if (task.nWindowFunctions == 0)

CUETools.Codecs.FLAKE/FlacSubframeInfo.cs

+4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public FlacSubframeInfo()
88
{
99
best = new FlacSubframe();
1010
sf = new LpcSubframeInfo();
11+
best_fixed = new ulong[5];
1112
lpc_ctx = new LpcContext[lpc.MAX_LPC_WINDOWS];
1213
for (int i = 0; i < lpc.MAX_LPC_WINDOWS; i++)
1314
lpc_ctx[i] = new LpcContext();
@@ -20,6 +21,8 @@ public void Init(int* s, int* r, int bps, int w)
2021
samples = s;
2122
obits = bps - w;
2223
wbits = w;
24+
for (int o = 0; o <= 4; o++)
25+
best_fixed[o] = 0;
2326
best.residual = r;
2427
best.type = SubframeType.Verbatim;
2528
best.size = AudioSamples.UINT32_MAX;
@@ -35,6 +38,7 @@ public void Init(int* s, int* r, int bps, int w)
3538
public int wbits;
3639
public int* samples;
3740
public uint done_fixed;
41+
public ulong[] best_fixed;
3842
public LpcContext[] lpc_ctx;
3943
public LpcSubframeInfo sf;
4044
};

0 commit comments

Comments
 (0)