zarzet
21aeaafced
fix(metadata): write FLAC, M4A, and AC-4 tags atomically with fsync
...
go-flac's Save(samePath) rewrites the file in place by shifting the audio
body within the same inode, so a process kill or power loss mid-save
destroyed the file with no recovery copy. All tag writers now stream to a
sibling temp, fsync, and rename over the target, so an interruption leaves
either the old intact file or the new complete one. The M4A freeform and
AC-4 whole-file rewrites get the same treatment, and the WAV/AIFF writer
gains the missing fsync before its rename.
2026-07-11 12:44:01 +07:00
..
2026-07-02 01:24:21 +07:00
2026-07-11 12:44:01 +07:00
2026-07-11 12:44:01 +07:00
2026-05-04 02:21:17 +07:00
2026-07-10 10:18:00 +07:00
2026-04-13 23:32:12 +07:00
2026-03-26 01:11:29 +07:00
2026-05-10 23:18:32 +07:00
2026-06-12 21:10:37 +07:00
2026-07-10 10:18:03 +07:00
2026-04-18 23:32:16 +07:00
2026-05-06 00:04:49 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 13:08:55 +07:00
2026-06-12 21:10:37 +07:00
2026-05-04 02:21:17 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:03 +07:00
2026-07-10 13:08:55 +07:00
2026-03-15 21:12:47 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:03 +07:00
2026-05-04 02:21:17 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:12:17 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 12:07:11 +07:00
2026-07-10 10:12:17 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:12:17 +07:00
2026-07-01 03:19:02 +07:00
2026-06-02 00:58:40 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-05-03 14:12:53 +07:00
2026-07-10 10:12:17 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-06-02 00:58:42 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-06-11 01:08:20 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:03 +07:00
2026-07-10 10:18:00 +07:00
2026-04-13 23:32:17 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:03 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:25:12 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:12:13 +07:00
2026-05-08 01:06:48 +07:00
2026-05-03 14:12:53 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 10:18:00 +07:00
2026-07-11 12:44:01 +07:00
2026-07-10 10:18:02 +07:00
2026-07-10 10:18:02 +07:00
2026-04-13 23:35:03 +07:00
2026-06-27 06:35:32 +07:00
2026-06-27 06:35:32 +07:00
2026-06-27 06:35:32 +07:00
2026-04-13 23:32:14 +07:00
2026-05-08 20:35:41 +07:00
2026-04-13 23:32:12 +07:00
2026-06-26 22:39:22 +07:00
2026-05-04 02:21:17 +07:00
2026-07-10 10:18:00 +07:00
2026-07-10 15:11:34 +07:00
2026-07-10 15:11:34 +07:00
2026-07-10 15:11:34 +07:00
2026-07-10 15:11:34 +07:00
2026-07-10 15:11:34 +07:00
2026-07-10 15:11:34 +07:00
2026-07-10 15:11:34 +07:00
2026-07-10 15:11:34 +07:00
2026-07-10 15:11:34 +07:00
2026-06-14 15:00:34 +07:00
2026-04-13 23:32:12 +07:00
2026-05-10 22:14:47 +07:00
2026-07-10 10:18:00 +07:00
2026-07-11 12:44:01 +07:00
2026-07-10 10:18:00 +07:00
2026-03-08 04:15:28 +07:00
2026-02-19 18:27:14 +07:00
2026-07-10 10:25:12 +07:00
2026-06-27 06:35:32 +07:00
2026-04-18 23:32:16 +07:00
2026-05-06 12:08:53 +07:00
2026-07-10 10:18:00 +07:00
2026-03-08 04:15:28 +07:00
2026-04-13 23:32:14 +07:00
2026-04-13 23:32:15 +07:00
2026-04-13 23:35:03 +07:00
2026-04-18 23:32:16 +07:00
2026-05-06 00:04:49 +07:00
2026-06-02 00:58:40 +07:00
2026-07-11 12:44:01 +07:00