diff --git a/.cargo/config b/.cargo/config
new file mode 100644
index 00000000..4391721d
--- /dev/null
+++ b/.cargo/config
@@ -0,0 +1,7 @@
+[target.x86_64-apple-darwin]
+linker = "x86_64-apple-darwin20.4-clang"
+ar = "x86_64-apple-darwin20.4-ar"
+
+[target.aarch64-apple-darwin]
+linker = "aarch64-apple-darwin20.4-clang"
+ar = "aarch64-apple-darwin20.4-ar"
diff --git a/README.md b/README.md
index 19d74e78..4e4fe0cf 100644
--- a/README.md
+++ b/README.md
@@ -3,8 +3,6 @@
 
 [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
 
-Next generation 24/7 playout, based on [Rust](https://www.rust-lang.org/).
-
 The main purpose of ffplayout is to provide a 24/7 broadcasting solution that plays a *json* playlist for every day, while keeping the current playlist editable.
 
 **Check [ffplayout-frontend](https://github.com/ffplayout/ffplayout-frontend): web-based GUI for ffplayout**
@@ -19,7 +17,7 @@ The main purpose of ffplayout is to provide a 24/7 broadcasting solution that pl
 - send emails with error message
 - overlay a logo
 - overlay text, controllable through [messenger](https://github.com/ffplayout/messenger) or [ffplayout-frontend](https://github.com/ffplayout/ffplayout-frontend) (needs ffmpeg with libzmq)
-- **EBU R128 loudness** normalization (single pass) (experimental)
+- EBU R128 loudness normalization (single pass)
 - loop playlist infinitely
 - trim and fade the last clip, to get full 24 hours
 - when playlist is not 24 hours long, loop filler clip until time is full
@@ -36,7 +34,7 @@ The main purpose of ffplayout is to provide a 24/7 broadcasting solution that pl
   - **aevalsrc** (if video have no audio)
   - **apad** (add silence if audio duration is to short)
   - **tpad** (add black frames if video duration is to short)
-output):
+- output:
   - **stream**
   - **desktop**
 
@@ -130,6 +128,6 @@ ffplayout also allows the passing of parameters:
 
 You can run the command like:
 
-```SHELL
+```Bash
 ./ffplayout.py -l none -p ~/playlist.json -o desktop
 ```
diff --git a/docs/developer.md b/docs/developer.md
index 81960d5b..a6e6bded 100644
--- a/docs/developer.md
+++ b/docs/developer.md
@@ -28,3 +28,29 @@ Running `cargo build` ends up in a binary which depend on **libc.so**. But you c
 Compile with: `cargo build --release --target=x86_64-unknown-linux-musl`.
 
 This release should run on any Linux distro.
+
+### Compile from Linux for macOS
+
+Add toolchain:
+
+```Bash
+# for arm64
+rustup target add aarch64-apple-darwin
+
+# for x86_64
+rustup target add x86_64-apple-darwin
+```
+
+Follow this guide: [rust-cross-compile-linux-to-macos](https://wapl.es/rust/2019/02/17/rust-cross-compile-linux-to-macos.html)
+
+Or setup [osxcross](https://github.com/tpoechtrager/osxcross) correctly.
+
+Add **osxcross/target/bin** to your **PATH** and run cargo with:
+
+```Bash
+# for arm64
+CC="aarch64-apple-darwin20.4-clang -arch arm64e" cargo build --release --target=aarch64-apple-darwin
+
+# for x86_64
+CC="o64-clang" cargo build --release --target=x86_64-apple-darwin
+```
diff --git a/src/output/mod.rs b/src/output/mod.rs
index 7d09e372..6c9e8017 100644
--- a/src/output/mod.rs
+++ b/src/output/mod.rs
@@ -189,6 +189,7 @@ pub fn play(rt_handle: &Handle) {
                         error!("Encoder error: {e}")
                     }
 
+                    kill_dec = true;
                     live_on = false;
                 }