srecord DecodeOpusStream(S url) implements AutoCloseable { !include #1033023 // Resources InputStream in; OpusMachine machine; OpusMachineIterator sampleIterator; int minBytesPreloaded; run { in = ownResource(httpInputStream(url)); machine = ownResource(new OpusMachine(in)); machine.minBytesPreloaded = max(machine.minBytesPreloaded, minBytesPreloaded); sampleIterator = new OpusMachineIterator(machine); } CloseableShortIterator get() { if (sampleIterator == null) run(); ret sampleIterator; } long samplesSeen() { ret machine == null ? 0 : machine.samplesSeen(); } }