Releases: L-Acoustics/avdecc
Releases · L-Acoustics/avdecc
v4.0.0
AVDECC LIBRARY
Added
- Support for JACK_INPUT/JACK_OUTPUT descriptors
- Support for CONTROL descriptors at AUDIO_UNIT, JACK, STREAM_PORT levels
- Support for CONTROL_SELECTOR type for CONTROL descriptors
- numberOfValues field in the CONTROL descriptor
- Support for float special values in json dumps (ie. NaN, -inf, +inf)
- Support for UTF8 file paths
- Support for TIMING descriptors
- Support for PTP_INSTANCE/PTP_PORT descriptors
- Support for GET_DYNAMIC_INFO command
- Support for SET/GET_MAX_TRANSIT_TIME command
- Json schema AEM_Schema.json added to newly created resources/schemas directory
Changed
- la::avdecc::entity::controller::Delegate is now virtual pure, but a new derivated visitor (with all default implementation) has been added: la::avdecc::entity::controller::DefaultedDelegate
- Executor name can be provided when creating an EndStation
- entity::model::validateControlValues now returns an enum value as well as an error message
- Mechanism to refresh an entity (same for Configuration change) totally revamped to be more consistent
- Moved some fields from AVB_INTERFACE.staticModel to AVB_INTERFACE.dynamicModel (fields that should not be part of the static model because they are not considered for entity_model_id)
Fixed
- Crash when unpacking vendor specific control values
- Incorrect linkage for some C bindings methods
- ProcotolInterface pcap getDynamicEID incorrect
AVDECC CONTROLLER LIBRARY
Added
- Support for JACK_INPUT/JACK_OUTPUT descriptors
- Support for CONTROL descriptors at AUDIO_UNIT, JACK, STREAM_PORT levels
- numberOfValues field in the ControlNode
- Detection of out-of-bounds MemoryObject length value
- isValid() method to ControlledEntityGuard
- Possibility to define a Proxy Interface to handle virtual entities
- Boolean value in ControlledEntity to know if unsolicited notifications are supported by the entity
- API to force refresh a entity (reloadEntity(UniqueIdentifier))
- Support for UTF8 file paths
- New type of diagnostics: controlCurrentValueOutOfBounds
- Detection of invalid descriptor_counts field in CONFIGURATION descriptor
- Support for TIMING descriptors
- Support for PTP_INSTANCE/PTP_PORT descriptors
- Support for GET_DYNAMIC_INFO command (Fast enumeration)
- Support for setMaxTransitTime command (as a replacement for setStreamInfo to change the presentation time)
- Support for read-only properties change for virtual entities
- la::avdecc::controller::Controller::createVirtualEntityFromEntityModelFile method
- la::avdecc::entity::model::VirtualEntityBuilder class to help creating virtual entities from EntityModel files
Changed
- Complete controller entity model refactoring to support descriptors at non-configuration level
- EntityModelVisitor is now virtual pure, but a new derivated visitor (with all default implementation) has been added: DefaultedEntityModelVisitor
- la::avdecc::controller::Controller::Observer is now virtual pure, but a new derivated visitor (with all default implementation) has been added: la::avdecc::controller::Controller::DefaultedObserver
- Executor name can be provided when creating a Controller
- Renamed la::avdecc::controller::Controller::loadEntityModelFile to la::avdecc::controller::Controller::cacheEntityModelFile
Removed
- Direct access to ClockSource descriptors from the ClockDomain. Will still be enumerated correctly when using the model visitor
Fixed
- Controller entity model no longer uses pointers to prevent dangling issues when making copies
- Not flagging a device as non IEEE/Milan compatible, if the library cannot handle a CONTROL type if doesn't support
- CONTROL values updated by the device itself didn't trigger an update notification
- DynamicMappings were not being retrieved from the entities
- Not flagging some devices as non-1722.1 compatible due to a control value out of bounds
- Detecting Identify Controls at JACK level
- CONTROL descriptors not properly enumerated at JACK level
- CONTROL descriptors not properly attached to the parent descriptor when loaded from file
- Dynamic mappings incorrect when replaced without first being removed
- Updating StreamInfo data partially, in case endpoint doesn't send full update
- isOverLatency diagnostics not properly set if msrpAccumulatedLatency is not set
- Media Clock Chain not recomputed when a connection changes without disconnecting first
- Crash when trying to access unknown localized string
- Locales from all configurations are loaded (if defined) for virtual entities
- Incorrect cached AEM
- Checksum of the AEM of a ControlledEntity was incorrectly using some fields that are not part of the AEM (in AVB_INTERFACE descriptor). Introduced checksum v3