Replace JNA with the FFM API (Panama) for the Opus binding
Bind libopus through java.lang.foreign downcall handles instead of JNA: the ctl functions are linked with firstVariadicArg(2), and the encoder and decoder each own a shared Arena holding the handle plus reusable native PCM/packet buffers, so the hot path only allocates the returned packet. The library is resolved by system SONAME first, falling back to a bundled copy extracted from the JAR. Only the Windows x86-64 build is packaged by default now (-Dnatives.all restores all platforms), since every other platform ships libopus through its package manager. Requires Java 26. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -19,10 +19,9 @@
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.release>17</maven.compiler.release>
|
||||
<maven.compiler.release>26</maven.compiler.release>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<ts3j.version>1.0.3</ts3j.version>
|
||||
<jna.version>5.14.0</jna.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
@@ -32,11 +31,6 @@
|
||||
<artifactId>ts3j</artifactId>
|
||||
<version>${ts3j.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.java.dev.jna</groupId>
|
||||
<artifactId>jna</artifactId>
|
||||
<version>${jna.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ts3client</groupId>
|
||||
<artifactId>ts3-client-core</artifactId>
|
||||
|
||||
Reference in New Issue
Block a user