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 @@ [](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; }