AVCoders.Matrix
2026.11.1
Prefix Reserved
dotnet add package AVCoders.Matrix --version 2026.11.1
NuGet\Install-Package AVCoders.Matrix -Version 2026.11.1
<PackageReference Include="AVCoders.Matrix" Version="2026.11.1" />
<PackageVersion Include="AVCoders.Matrix" Version="2026.11.1" />
<PackageReference Include="AVCoders.Matrix" />
paket add AVCoders.Matrix --version 2026.11.1
#r "nuget: AVCoders.Matrix, 2026.11.1"
#:package AVCoders.Matrix@2026.11.1
#addin nuget:?package=AVCoders.Matrix&version=2026.11.1
#tool nuget:?package=AVCoders.Matrix&version=2026.11.1
AVCoders.Matrix
Matrix switcher and AV-over-IP drivers for the AV Coders device library. Built on AVCoders.Core. Targets .NET 8.0 and .NET 10.0.
Install
dotnet add package AVCoders.Matrix
Published to nuget.org. See the repository README for details.
Drivers
ExtronIn16Xx,ExtronSw,ExtronDtpCpxx(DTP CrossPoint 82/84/86/108),ExtronDtp2Cp82(DTP2 CrossPoint 82)ExtronSw,ExtronIn18XxandExtronDtp2Cp82show the model, firmware, part number, unit name and MAC as details. The model comes from the model reply on connect, which then triggers the other queries, after its status queries. Any still unanswered are sent again at the end of each 20 s pollExtronDtpCpxxshows the model, and the firmware and part number from the connect banner ((c) Copyright 2025, Extron Electronics, DTPCP108, V2.04, 60-1381-01); a banner it can't read is logged as a warning with the raw text. After the model reply's port and tie queries it reads the firmware build (*Q), part number (N), unit name (Esc CN) and MAC (Esc CH). After the0TCkeepalive in every 20 s poll it reads the system status (S), shown as received afterSts00*: supply voltage, temperature and fan speeds (DTP CrossPoint 84 user guide 68-2349-01 Rev. D, p. 62), then any identity read still unansweredExtronIn18XxandExtronDtp2Cp82read the internal temperature after the status queries in every 20 s poll and show the value exactly as received. An empty value shows the raw reply- Every command is tracked in send order, and each reply and each
Ecode goes to the command it answers, since SIS answers in order on a connection. A tie command is answered only by a tie reply with its input, output and plane (In2 All,In2*1 All,Out1 In2 All, leading zeros ignored; output 0 means all outputs). A notice the switcher sends unasked in verbose mode 3, such as a tie made from the front panel or the room processor, updates the state and answers no command, unless it is exactly the reply a command is waiting for - A rejected control or status command (route, tie, name, HDCP, poll) raises a momentary
rejected-commandissue naming the command and the code, except thatExtronDtpCpxxlogs theE13s to its output HDCP probes at Debug (the whole-output query on a split output, and the A/B queries on an unsplit one). AnEcode with no command awaiting a reply logs a warning with the raw code. A command with no reply within 5 s is logged at Debug at the next poll - A metadata query the switcher rejects with
E10,E13orE14showsNot supported:and the code in its detail, with no issue, and isn't sent again until the switcher reconnects - Any other
Ecode (e.g.E22busy), or no reply within 5 s (checked at the next poll), is a miss and the query is sent again at the next poll. The third miss in a row raises a Minor issue for that query carrying the last raw reply or "no reply". The first good reply resolves it - A tagged model reply
ExtronSworExtronIn18Xxcan't read raises amodelissue
ExtronIn18Xx— IN1806 / IN1808 scaling switchers. Inputs are discovered from the model reply (EndpointsChangedHandlersfires when the count changes; existing ports are kept) and carry signal presence and HDCP status. Output 1A (HDMI) and 1B (DTP2/HDBT) exist from construction asGetOutputs()[0]and[1]and carry sink detection and HDCP status. The HDMI loop out is not exposed.NumberOfInputs, which the route checks use, is the constructor'snumberOfInputsuntil the model reply arrives, then the discovered count; a model reply whose count differs from the constructor's logs a warning naming both.ExtronAnnotator401VideoMatrix— the HDMI input and two HDMI outputs of an Extron Annotator 401 as a routing-freeVideoMatrix, sharing the annotator's communication client with theAVCoders.Annotatordriver. The endpoints exist from construction and carry sync state and HDCP status; both outputs always show the only input, so the routing methods only log.CiscoRoomOsVideoMatrix— the video inputs and outputs of a Cisco RoomOS / CE codec as a routing-freeVideoMatrix, sharing the codec's communication client with theAVCoders.Conferencedriver. Connectors are discovered from the codec's status (EndpointsChangedHandlersfires as they appear) and carry sync state, resolution, HDCP and history. Input names come from the codec's connector configuration; outputs stay "Output n" and expose the connected display's EDID name asConnectedDeviceName, logged on change. Each output shows the display's preferred format and each input its source's format status as details, removed when the session drops.SvsiEncoder,SvsiDecoder— show the serial number, name, MAC, IP, firmware, FPGA and web versions from the status dump as details. AUPDFAILEDother than 0 raises anupdate-failedissue. The decoder also shows its video, audio and frame drop counters, andNEEDVSTRMas Needs Video Stream (Warning when it isn't 0)AntricaEncoder— the HDMI input of an Antrica ANT-35000 series encoder, polled every 10 seconds over its HTTP API through aRestCommsclient (AvCodersRestClient). Reports signal presence (GIS_VIDEOLOSS1) and the detected input format (VID_INPUTFORMAT, read as decimal or0xhex) as the input resolution. HDCP is alwaysNotSupported. HTTP API authentication (NET_USEHTTPAPIAUTH) is not supported.BlustreamAmf41WNavigator,NavEncoder,NavDecoder— endpoints show their serial number, hostname and theAudI,StrmIandLnkfields of theIreply as details. The Navigator shows encoder and decoder online, offline and present but not connected counts from each inventory report, which it reads on connect and inSeedSystemState- Inventory states
0(unassigned),1(online),2(offline) and3(present but not connected) are valid (NAVigator guide 68-2740-01_D p.137). The offline and not-connected counts are Warning tone when non-zero. A registered endpoint in state2or3is Disconnected. State1sets it Connected only in the first report after the Navigator connects; after that only a relayed reply does, so an endpoint that's listed online but never answers still reaches its Critical issue. Any other state raises a Minorinventory-readissue - After the Navigator connects, each endpoint is sent
3CVand its reads (DNUM,CN,98I,I) wait for itsVrb3reply, or 3 s without one, so the replies come back tagged. The 90 s endpoint poll is unchanged - Every 30 s while connected, the Navigator sends
Inventory*I*RPRTandInventory*O*RPRTagain. That keeps the SSH session busy (the NAVigator closes an idle session after about 75 s) and refreshes which endpoints are online.Ties*A*RPRTis sent on connect only, and endpoint polls are unchanged - A bare
E13while the inventory lists offline or not-connected encoders or decoders is a missed reply for the oldest unanswered tunnel command to a registered endpoint of that type that isn't answering. It's logged at Debug on that endpoint with the command and the raw code. The endpoint's own three-poll offline handling is unchanged. Any other error code, or anE13no such command can take, is a Warning as before - A tunnel command to an endpoint that's answering (Connected) with no relayed reply and no
E13within 20 s is unanswered. More than 5 in a row, with no relayed reply to a later command, raise a Criticalendpoint-relayissue naming the latest command. The next relayed reply to one of the Navigator's own commands resolves it. Replies the Navigator relays for another controller don't count, and a reconnect starts the count again - Encoders and decoders on the Navigator that aren't registered to this module raise Minor issues. An online
(
1) inventory number that no registered endpoint has claimed byDNUMis asked its IP with{<n>i|o:Esc CI}(NAVigator guide 68-2740-01_D p.139 for numbered encapsulation, NAV E 501 guide p.74 and NAV SD 501 guide p.75 forCI). The bench reply is{1442i}Ipi 10.1.3.210. A reply whose payload is an IP answers the oldest awaitingCIquery whatever its key. A reply that isn't a registered IP raisesunregistered:<n>i|owith the number, type, reported IP and raw reply. A query with no reply within 20 s, or an unreadable reply, is asked again at the next inventory poll. Once the number has been unclaimed for a full endpoint poll (90 s), so endpoints that reportDNUMlate raise nothing, it raises the same issue withIP unknown: no reply to {<n>i|o}:CI. The issue resolves when a registered endpoint claims the number or the inventory shows it as0 - Offline (
2) and not-connected (3) devices can't report an IP. When a type has more such unclaimed numbers than registered endpoints still without a device number,unclaimed-offline:i|o(Minor) lists both. With equal counts it stays quiet, and the registered endpoints' own not-responding issues show instead - A NAV endpoint's
ConnectionReasonis the Navigator's own while the Navigator's SSH client is disconnected, andTimedOut("… is not responding via the Navigator tunnel") while the Navigator is connected but the endpoint isn't answering or the inventory lists it as offline
- Inventory states
AVoIPEndpoint
Usage
Drivers derive from VideoMatrix and talk to hardware through a transport from AVCoders.CommunicationClients. See the repository README for full wiring, logging and tracing setup.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- AVCoders.Core (>= 2026.11.1)
-
net8.0
- AVCoders.Core (>= 2026.11.1)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on AVCoders.Matrix:
| Package | Downloads |
|---|---|
|
AVCoders.Crestron.Matrix
Crestron NVX AV-over-IP endpoint wrappers for the AV Coders device library, with encoder and decoder support including the 36x and Exx series. |
|
|
AVCoders.Crestron.TouchPanel
Touch panel menu and UI helpers for Crestron panels: display, motor, AVoIP, sync, level, PDU and Q-SYS source menus, PIN entry, confirmation and status pages. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.11.1 | 0 | 11/12/2026 |
| 2026.10.5 | 114 | 10/21/2026 |
| 2026.10.4 | 94 | 10/21/2026 |
| 2026.10.3 | 180 | 10/14/2026 |
| 2026.10.2 | 99 | 10/13/2026 |
| 2026.10.1 | 116 | 10/6/2026 |
| 2026.9.8 | 116 | 9/29/2026 |
| 2026.9.7 | 116 | 9/24/2026 |
| 2026.9.6 | 112 | 9/18/2026 |
| 2026.9.5 | 103 | 9/17/2026 |
| 2026.9.4 | 181 | 9/14/2026 |
| 2026.9.2 | 124 | 9/2/2026 |
| 2026.9.1 | 118 | 9/2/2026 |
| 2026.8.5 | 125 | 8/27/2026 |
| 2026.8.4 | 129 | 8/26/2026 |
| 2026.8.3 | 128 | 8/26/2026 |
| 2026.8.2 | 131 | 8/24/2026 |
| 2026.8.1 | 180 | 8/11/2026 |
| 2026.7.3 | 143 | 7/22/2026 |
| 2026.7.2 | 175 | 7/21/2026 |