All Projects → L-Acoustics → avdecc

L-Acoustics / avdecc

Licence: LGPL-3.0 and 2 other licenses found Licenses found LGPL-3.0 LICENSE GPL-3.0 COPYING LGPL-3.0 COPYING.LESSER
A set of open source libraries for controlling AVB entities using the AVDECC (IEEE 1722.1) protocol compliant to Avnu Milan Specifications

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
Objective-C++
1391 projects

Projects that are alternatives of or similar to avdecc

CoRE4INET
CoRE4INET is an extension to the INET-Framework for the event-based simulation of real-time Ethernet in the OMNEST/OMNeT++ simulation system.
Stars: ✭ 39 (-41.79%)
Mutual labels:  ethernet, avb
packetnet
Official repository - High performance .Net assembly for dissecting and constructing network packets such as ethernet, ip, tcp, udp etc.
Stars: ✭ 343 (+411.94%)
Mutual labels:  ethernet
Arduino-STM32-Ethernet-LAN8720
Ethernet on STM32 using external PHY
Stars: ✭ 19 (-71.64%)
Mutual labels:  ethernet
uos
United Open-libraries of Sound. United procedures for open-source audio libraries. For FPC/Lazarus/fpGUI/MSEgui.
Stars: ✭ 112 (+67.16%)
Mutual labels:  audio-streaming
subplayer
A music player frontend compatible with Subsonic backends
Stars: ✭ 66 (-1.49%)
Mutual labels:  audio-streaming
goicy
AAC and MPEG (MP1, MP2, MP3) Icecast/Shoutcast source client written in Go
Stars: ✭ 58 (-13.43%)
Mutual labels:  audio-streaming
anyfesto
Low cost Raspberry Pi /Linux based access point with audio, education and communications local content server. Inspired by the ideas of sharing with others. Anyfesto - a platform from which to speak.
Stars: ✭ 66 (-1.49%)
Mutual labels:  audio-streaming
WIZ750SR
WIZnet Serial to Ethernet(S2E) module based on W7500 chip, WIZ107/108SR S2E compatible device
Stars: ✭ 13 (-80.6%)
Mutual labels:  ethernet
FNET
The FNET is a free, open source, dual TCP/IPv4 and IPv6 Stack (under Apache Version 2.0 license) for building embedded communication software on 32bit MCUs.
Stars: ✭ 97 (+44.78%)
Mutual labels:  ethernet
2nfm
Share your screen and computer's audio via WebRTC!
Stars: ✭ 29 (-56.72%)
Mutual labels:  audio-streaming
EtherSia
Minimal IPv6 library for Ethernet controllers on Arduino
Stars: ✭ 54 (-19.4%)
Mutual labels:  ethernet
yakut
Simple CLI tool for diagnostics and debugging of Cyphal networks
Stars: ✭ 29 (-56.72%)
Mutual labels:  ethernet
nixos-router
NixOS expression for creating a simple router
Stars: ✭ 32 (-52.24%)
Mutual labels:  ethernet
opendata-milano
Open Data distributed by the city of Milan in an easy to use format (GeoJSON) and some experiments
Stars: ✭ 17 (-74.63%)
Mutual labels:  milan
throwing-star-lan-tap
A passive tap for monitoring 10/100 Ethernet.
Stars: ✭ 88 (+31.34%)
Mutual labels:  ethernet
KTAudioSoundWave
🍐KTSoundWave-根据语音绘制波浪动画,录音波形图及分贝检测
Stars: ✭ 22 (-67.16%)
Mutual labels:  audio-streaming
UPnP Generic
A simple library that implements port mappings to router using UPnP SSDP for Arduino boards, running on nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, Teensy, RP2040-based boards, WT32_ETH01, Portenta_H7, etc. besides ESP8266/ESP32, using ESP WiFi, WiFiNINA, Ethernet W5x00, ESP8266/ESP32 AT-command WiFi, Portenta_H7 Murata WiFi or Vision-shield Ethe…
Stars: ✭ 14 (-79.1%)
Mutual labels:  ethernet
v-switch
Virtual Encrypted Switch across the network, using UDP + AES + TAP
Stars: ✭ 27 (-59.7%)
Mutual labels:  ethernet
ethtool
Package ethtool allows control of the Linux ethtool generic netlink interface. MIT Licensed.
Stars: ✭ 47 (-29.85%)
Mutual labels:  ethernet
libopusenc
Library for encoding .opus audio files and live streams.
Stars: ✭ 92 (+37.31%)
Mutual labels:  audio-streaming

LA AVDECC

Coverity Scan Build Status

Copyright (C) 2016-2022, 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:

  • L-Acoustics: LA4X, LA12X, LA2Xi, P1
  • Biamp: Tesira Forte
  • Avid: S6L
  • MOTU: 112D, 828, Traveller, StageBox16
  • MeyerSound: Galileo GALAXY, CAL
  • QSC: Q-SYS Cores
  • Apple: macOS Talker, Listener and Controller (El Capitan and later)
  • AudioScience: Hono AVB Mini
  • d&b audiotechnik: DS20

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:

  • An observer interface to monitor all changes on discovered entities
  • An interaction interface to send enumeration and control (AECP) or connection management (ACMP) requests to an entity

la_avdecc_c library

C language bindings over la_avdecc library.

Minimum requirements for compilation

All platforms

  • CMake 3.22

Windows

  • Windows 10
  • Visual Studio 2019 v16.3 or greater (using platform toolset v142)
  • WinPcap 4.1.2 Developer's Pack (see this file for more details)
  • GitBash or cygwin

macOS

  • macOS 10.13
  • Xcode 12

Linux

  • C++17 compliant compiler (minimum recommended g++ 11.2.0)
  • Make
  • pcap developer package
  • ncurses developer package (optional, for examples)

Compilation

All platforms

  • Clone this repository
  • Update submodules: git submodule update --init --recursive

Windows

  • Install WinPcap Developer's Pack
  • Using the provided bash script (gen_cmake.sh):
    • Run the script with whatever optional parameters required (run gen_cmake.sh -h to display the help)
    • Go into the generated output folder
    • Open the generated Visual Studio solution LA_avdecc.sln
    • Compile everything from Visual Studio
  • Manually issuing a CMake command:
    • Run a proper CMake command to generate a Visual Studio solution (or any other CMake generator matching your build toolchain)
    • Open the generated Visual Studio solution (or your other CMake generated files)
    • Compile everything from Visual Studio (or compile using your toolchain)

macOS

  • Using the provided bash script (gen_cmake.sh):
    • Run the script with whatever optional parameters required (run gen_cmake.sh -h to display the help)
    • Go into the generated output folder
    • Open the generated Xcode solution LA_avdecc.xcodeproj
    • Compile everything from Xcode
  • Manually issuing a CMake command:
    • Run a proper CMake command to generate a Xcode solution (or any other CMake generator matching your build toolchain)
    • Open the generated Xcode solution (or your other CMake generated files)
    • Compile everything from Xcode (or compile using your toolchain)

Linux

  • Using the provided bash script (gen_cmake.sh):
    • Run the script with either -debug or -release and whatever optional parameters required (run gen_cmake.sh -h to display the help)
    • Go into the generated output folder
    • Run make to compile everything
  • Manually issuing a CMake command:
    • Run a proper CMake command to generate Unix Makefiles (or any other CMake generator matching your build toolchain)
    • Go into the folder where the Unix Makefiles have been generated
    • Run make to compile everything (or compile using your toolchain)

Known limitations

  • [Windows] When plugging in a USB ethernet card for the first time, you either have to reboot the computer or restart the WinPCap driver (net stop npf then net start npf, from an elevated command prompt)
  • [Linux] Administrative privileges are required to run PCap applications. You can either directly run samples as root with sudo or setup capabilities using sudo setcap cap_net_raw+ep <application path> then directly run the application

Upcoming features

  • Better unit testing using a virtual protocol interface and virtual entities
  • Ability to preload AEMXML files, and not enumerate AEM for devices with identical vendorEntityModelId
  • Talker and Listener state machines (low level library)
  • Creation of a DiscoveryStateMachine so it can be used by Talker/Listener entities (moving code out of ControllerStateMachine)
  • Bindings libraries:
    • Lua (public and private APIs)

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].