diff --git a/docs/Building.md b/docs/Building.md index 2e6c66e6..40234843 100644 --- a/docs/Building.md +++ b/docs/Building.md @@ -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=```. + +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`: diff --git a/examples/docker-compose.yaml b/examples/docker-compose.yaml index faecd476..fa205d06 100644 --- a/examples/docker-compose.yaml +++ b/examples/docker-compose.yaml @@ -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