L-Acoustics / avdecc

A set of open source libraries for controlling AVB entities using the AVDECC (IEEE 1722.1) protocol compliant to Avnu Milan Specifications
GNU Lesser General Public License v3.0
89 stars 22 forks source link
audio-streaming avb avdecc avnu cplusplus ethernet ieee1722-1 milan proaudio

LA AVDECC

Coverity Scan Build Status

Copyright (C) 2016-2023, L-Acoustics and its contributors

What is LA_avdecc

LA_avdecc is a set of open source libraries for controlling and monitoring AVB entities using the AVDECC protocol (IEEE 1722.1) compliant to Avnu Milan.

These libraries are written in pure C++17. They can be compiled on Windows, Linux and macOS, using standard development tools (procedure below). Unit tests and sample programs are also provided.

These libraries have already been used indirectly in many musical events throughout the world to control all kinds of AVB entities (list below). L-Acoustics' Network Manager 2.5 (and up) now relies on them for all its AVDECC functionalities in compliance to the Avnu Milan Specifications.

Another benefit is the support of Apple’s native API, which allows control of the input and output AVB streams of a Mac from itself (which is not possible with the libraries using PCAP). Bindings to other languages are also provided, and will continue in the future.

We use GitHub issues for tracking requests and bugs.

Optional dependencies:

Tested AVB entities:

la_avdecc library

Implementation of the IEEE Std 1722.1-2013 specification.
Also implementing most of IEEE Std 1722.1-Corrigendum1-2018. Also implementing AVnu Alliance Milan. Also implementing AVnu Alliance Network Redundancy.

The library exposes APIs needed to create AVDECC entities on the local computer, and to interact with other entities on the network.

la_avdecc_controller library

This is a simple library to create an AVDECC controller entity on the local computer. This controller automatically listens to and keeps track of the other entities on the network using the IEEE Std 1722.1 protocol.

The controller API has 2 interfaces:

la_avdecc_c library

C language bindings over la_avdecc library.

Minimum requirements for compilation

All platforms

Windows

macOS

Linux

Compilation

All platforms

Windows

macOS

Linux

Cross-compilation using Docker

Known limitations

Upcoming features

Contributing code

Please read this file

Trademark legal notice

All product names, logos, brands and trademarks are property of their respective owners. All company, product and service names used in this library are for identification purposes only. Use of these names, logos, and brands does not imply endorsement.