!7 lib 1400511 // VorbisJava (to unpack ogg file) lib 1400502 // Concentus 1.0 (to decode OPUS audio in ogg file) import org.concentus.*; cm TestConcentus > DynSingleFunctionWithPrintLog { S oggSnippetID = #1400517; @Override void doIt() ctex { OpusDecoder decoder = new(48000, 1); // decode mono File f = loadLibrary(#1400517); temp OpusFile opusFile = new(f); short[] pcm = new[5760]; // max opus frame size (mono) while ((data = f.getNextAudioPacket()) != null) { byte[] bytes = data.getData(); if (empty(bytes)) continue; print("Got compressed audio data: " + l(bytes)); int samples = decoder.decode(bytes, 0, l(bytes), pcm, 0, l(pcm), false); print("Got " + nSamples(samples)); } } } lib 1400513 // opus-jni-1.0.0.jar import org.gagravarr.opus.*; import net.labymod.opus.*; fixContextClassLoader(); //OpusCodec.setupWithTemporaryFolder(); OpusCodec.loadNativesFromJar(); OpusCodec codec = OpusCodec.createDefault(); OpusAudioData data; while ((data = f.getNextAudioPacket()) != null) pcall { byte[] bytes = data.getData(); if (empty(bytes)) continue; print("Got audio data: " + l(bytes)); //print("frames: " + data.getNumberOfFrames() + " frames"); byte[] decoded = codec.decodeFrame(bytes); print("Decoded: " + l(decoded)); }