diff --git a/.github/release-notes.md b/.github/release-notes.md
index 6e25b71..808debc 100644
--- a/.github/release-notes.md
+++ b/.github/release-notes.md
@@ -3,19 +3,40 @@ matching, timecode, and recording metadata.
## What's new in @VERSION@
-- **Media loads again on Windows.** Adding media on Windows could fail with
- repeated "libwinpthread-1.dll was not found" errors, and reinstalling did not
- help. The bundled FFmpeg tools needed a library the installer did not
- include. They are now self-contained, and every Windows build is checked in a
- clean folder before release.
-- **Report a Problem.** Help → Report a Problem… (in the Menu button on Windows
- and Linux), About, and error dialogs open a GitHub bug form with the Align
- version, operating system, and architecture already filled in. You review
- and submit the issue yourself; recordings, file paths, and logs are not sent.
- A small reminder appears once after each installation or update.
-- **Stricter CLI arguments.** `align-cli` no longer ignores extra paths after a
- command: `export-json result.json out extra.wav` and `clear-cache extra.wav`
- now stop with a usage error before doing anything.
+- **Damaged audio no longer stops synchronization.** On Windows and Linux, one
+ file with a damaged audio packet could stop the whole run with "Decode error:
+ symphonia: unexpected end of bitstream." The damaged part now becomes silence
+ of the same length, and the rest of the file synchronizes at its correct
+ offset. When Align's built-in decoder cannot read a file, FFmpeg reads it
+ again. A file neither can read is left out with a warning that names it, and
+ the other files still synchronize.
+- **MXF on macOS.** macOS could not read MXF: Canon XF-AVC, Sony XAVC and
+ other MXF clips were left out with "Decode error: invalid PCM." The macOS app
+ now includes a minimal FFmpeg (about 7 MB) and uses it only for MXF.
+- **Camera metadata XML is skipped.** Selecting camera clips together with the
+ XML files cameras write beside them stopped the run with "Add one timeline
+ at a time." Only FCP 7 XML and FCPXML documents are now imported as
+ timelines.
+- **Faster loading.** Each file is inspected with one ffprobe call instead of
+ up to three, four files at a time. With eight Canon C70 MXF clips and five
+ other files, reading metadata took 1.2 seconds instead of 24, and the
+ timecode of the MXF clips, which was missing before, is now read.
+- **FCPXML bundles.** `.fcpxmld` bundles from Final Cut Pro 10.6 and later
+ import as timelines, and Path Fixer saves a repaired bundle as a bundle.
+ Media paths relative to an FCPXML document now resolve from its folder.
+- **More accurate offsets on Windows and Linux.** MP3 files were placed 23 to
+ 25 ms early, and AVCHD clips with AC-3 audio 5.3 ms early; both are now on
+ time. MXF is no longer mistaken for MP3 audio. MP4 files with HE-AAC audio,
+ which did not match at all, now match, though their offset can still be
+ about 60 ms off.
+
+On Windows and Linux, the first synchronization after the update analyses
+every file again, because fingerprints from the previous decoder are not
+reused.
+
+Thanks to @Opragopa for reporting the decode error with Canon footage (#16),
+which also led to the MXF and camera XML fixes, and for proposing parallel
+inspection (#17).
## Downloads
diff --git a/Cargo.lock b/Cargo.lock
index 5975a0f..80415c6 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -44,7 +44,7 @@ dependencies = [
[[package]]
name = "align-cli"
-version = "0.3.2"
+version = "0.3.3"
dependencies = [
"align-core",
"align-decode",
@@ -56,7 +56,7 @@ dependencies = [
[[package]]
name = "align-core"
-version = "0.3.2"
+version = "0.3.3"
dependencies = [
"bincode",
"blake3",
@@ -73,7 +73,7 @@ dependencies = [
[[package]]
name = "align-decode"
-version = "0.3.2"
+version = "0.3.3"
dependencies = [
"align-core",
"blake3",
@@ -99,7 +99,7 @@ dependencies = [
[[package]]
name = "align-gpui"
-version = "0.3.2"
+version = "0.3.3"
dependencies = [
"align-core",
"align-decode",
@@ -121,7 +121,7 @@ dependencies = [
[[package]]
name = "align-mcp"
-version = "0.3.2"
+version = "0.3.3"
dependencies = [
"serde_json",
]
diff --git a/Cargo.toml b/Cargo.toml
index 65e8e61..e7727d7 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -6,7 +6,7 @@ resolver = "2"
edition = "2024"
rust-version = "1.85"
license = "GPL-3.0-only"
-version = "0.3.2"
+version = "0.3.3"
[workspace.dependencies]
align-core = { path = "crates/align-core" }
diff --git a/README.md b/README.md
index 27d51f8..5b17543 100644
--- a/README.md
+++ b/README.md
@@ -11,10 +11,10 @@
Synchronize camera footage and separately recorded audio using waveforms,
timecode, and recording metadata.
-
-
+
+
-Version 0.3.2 · [Linux (Fedora, Arch) and all downloads](https://github.com/FedyaLight/align/releases/latest)
+Version 0.3.3 · [Linux (Fedora, Arch) and all downloads](https://github.com/FedyaLight/align/releases/latest)
diff --git a/Support/Linux/com.align.app.metainfo.xml b/Support/Linux/com.align.app.metainfo.xml
index ec53fa8..cbf3a30 100644
--- a/Support/Linux/com.align.app.metainfo.xml
+++ b/Support/Linux/com.align.app.metainfo.xml
@@ -18,6 +18,7 @@
align
+