Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions docs/Building.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,19 @@ PIC is enabled by default and can be disabled with
2. Install doxygen and ccache through brew: `brew install doxygen ccache`
3. Install the GStreamer runtime and developement packages according to [these instructions](https://gstreamer.freedesktop.org/documentation/installing/on-mac-osx.html?gi-language=c#download-and-install-the-sdk)


## ARM notes

The MXL project is configured to require the ```armv8.5-a``` architecture on ARM CPUs. Most modern ARM CPUs meet this requirement. Notable exceptions are the Raspberry PIs. For example, the Pi5 CPU has an architecture level ```armv8.2-a``` whereas the Pi4B is at level ```armv8.0-a```. To properly target these CPUs, pass the architecture type as an additional argument to cmake : ```-DMXL_TARGET_ARCH=<archname>```.

For example, for the Raspberry Pi 5:
```
mkdir build
cd build
cmake .. --preset Linux-GCC-Debug -DMXL_TARGET_ARCH=armv8.2a
cmake --build build/Linux-GCC-Debug --target all
```

# Using with CMake

The MXL provides a CMake package configuration file that allows for easy integration into your project. If it is installed in a non-default location, you may need to specify its root path using `CMAKE_PREFIX_PATH`:
Expand Down
43 changes: 13 additions & 30 deletions examples/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,69 +1,52 @@
# SPDX-FileCopyrightText: 2025 Contributors to the Media eXchange Layer project.
# SPDX-FileCopyrightText: 2026 Contributors to the Media eXchange Layer project.
# SPDX-License-Identifier: Apache-2.0

services:
init:
image: alpine
command: ["sh", "-c", "mkdir -p /dev/shm/mxl"]
volumes:
- type: bind
source: /dev/shm
target: /dev/shm
restart: no
volumes:
mxl-domain:
driver: local
driver_opts:
type: tmpfs
device: tmpfs
o: strictatime

services:
writer-media-function:
image: mxl-writer
profiles: [test-source]
depends_on:
- init
build:
context: ..
dockerfile: examples/Dockerfile.writer.txt
restart: unless-stopped
volumes:
- type: bind
source: /dev/shm/mxl
target: /domain
- mxl-domain:/domain

writer-looper-video-media-function:
image: mxl-writer-video-looper
profiles: [looping-file-source]
depends_on:
- init
build:
context: ..
dockerfile: examples/Dockerfile.writer.video.loop.txt
restart: unless-stopped
volumes:
- type: bind
source: /dev/shm/mxl
target: /domain
- mxl-domain:/domain

writer-looper-audio-media-function:
image: mxl-writer-audio-looper
profiles: [looping-file-source]
depends_on:
- init
build:
context: ..
dockerfile: examples/Dockerfile.writer.audio.loop.txt
restart: unless-stopped
volumes:
- type: bind
source: /dev/shm/mxl
target: /domain
- mxl-domain:/domain

reader-media-function:
image: mxl-reader
depends_on:
- init
build:
context: ..
dockerfile: examples/Dockerfile.reader.txt
restart: unless-stopped
volumes:
- type: bind
source: /dev/shm/mxl
target: /domain
- mxl-domain:/domain
stdin_open: true
tty: true
Loading