forked from j62/ctbrec
1
0
Fork 0
ctbrec/src/main/java/org/taktik/mpegts/sources/AbstractMTSSource.java

41 lines
767 B
Java

package org.taktik.mpegts.sources;
import org.taktik.mpegts.MTSPacket;
public abstract class AbstractMTSSource implements MTSSource {
private boolean closed;
@Override
public final MTSPacket nextPacket() throws Exception {
if (isClosed()) {
throw new IllegalStateException("Source is closed");
}
return nextPacketInternal();
}
@Override
public final void close() throws Exception {
try {
closeInternal();
} finally {
closed = true;
}
}
protected boolean isClosed() {
return closed;
}
protected abstract MTSPacket nextPacketInternal() throws Exception;
protected abstract void closeInternal() throws Exception;
@Override
protected void finalize() throws Throwable {
if (!closed) {
close();
}
super.finalize();
}
}