package mp4.util;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
public class MP4StreamFactory {
public static class VirtMemBackedBArray
// extends StreamableMP4.BaseBArray
// implements StreamableMP4.BArray
{
// MemChunk memChunk;
public VirtMemBackedBArray(int size) {
// super(size);
//memChunk = MappedFileMemoryManager.manager.alloc(size);
// memChunk = MappedFileMemoryManager.manager.alloc(size);
}
// public void free() {
// if (memChunk != null)
// memChunk.free();
// memChunk = null;
// }
//
// public int get(long index) {
// int ret = memChunk.get((int)index) & 0xff;
// //System.err.println("get: " + index + ", " + ret);
// return ret;
// }
//
// public void set(long index, int v) {
// v = v & 0xff;
// memChunk.set((int)index, v);
// }
public void readFromFile(RandomAccessFile fp, long offset, long len)
throws IOException {
// final int BSIZE = 4096;
// byte[] bytes = new byte[BSIZE];
// while(len > 0) {
// int rl = Math.min((int)len, BSIZE);
// fp.read(bytes, 0, rl);//
// memChunk.write((int)offset, bytes, 0, rl);
// offset += rl;
// len -= rl;
// }
}
}
// public static class VirtMemBArrayFactory implements BArrayFactory {
// public static int MAX_BYTE_BACKED_SIZE = 100 * 1024; // 100k
// public BArray getBArray(int size) {
// if (size <= MAX_BYTE_BACKED_SIZE)
// return new StreamableMP4.ByteArrayBackedBArray(size);
// else
// return new VirtMemBackedBArray(size);
// }
//
// }
// public static boolean initialize() {
// StreamableMP4.logger = new StreamableMP4.Logger() {
// public void log(String s) {
// Log.debug(s);
// }
// };
//
// StreamableMP4.bfact = new VirtMemBArrayFactory();
// MP4Log.logger = new MP4Log.MP4Logger() {
//
// public void log(String str) {
// Log.debug(str);
// }
//
// };
//
// return true;
// }
public static MP4Streamer getInstance(File file, long startPos, boolean reinterleave) throws IOException {
return new JavaMP4Splitter(file, startPos, reinterleave);
}
}