public static TYPE getType(IsoFile isoFile) { List<HandlerBox> handlerBoxes = isoFile.getBoxes(HandlerBox.class, true); for (HandlerBox handlerBox : handlerBoxes) { if ("vide".equals(handlerBox.getHandlerType())) { return TYPE.VIDEO; } else if ("soun".equals(handlerBox.getHandlerType())) { return TYPE.AUDIO; } else { System.err.println("unknown"); } } return TYPE.AUDIO; }
protected ParsableBox createMdiaHdlr(Track track, Movie movie) { HandlerBox hdlr = new HandlerBox(); hdlr.setHandlerType(track.getHandler()); return hdlr; }
public String toString() { return "HandlerBox[handlerType=" + getHandlerType() + ";name=" + getName() + "]"; } }
public static void main(String[] args) throws IOException { long start = System.currentTimeMillis(); FileChannel rChannel = new RandomAccessFile("/media/scratch/CSI.S12E21.HDTV.x264-LOL.mp4", "r").getChannel(); FileChannel wChannel = new RandomAccessFile("/media/scratch/ThreeHundredFourtyThreeMB_2.mp4", "rw").getChannel(); IsoFile isoFile = new IsoFile(rChannel); HandlerBox hdlr = Path.getPath(isoFile, "/moov[0]/trak[0]/mdia[0]/hdlr[0]"); assert hdlr != null; hdlr.setName(RandomStringUtils.random(hdlr.getName().length())); isoFile.getBox(wChannel); rChannel.close(); wChannel.close(); System.err.println((System.currentTimeMillis() - start) + "ms"); new File("/media/scratch/ThreeHundredFourtyThreeMB_2.mp4").delete(); } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); shouldBeZeroButAppleWritesHereSomeValue = IsoTypeReader.readUInt32(content); handlerType = IsoTypeReader.read4cc(content); a = IsoTypeReader.readUInt32(content); b = IsoTypeReader.readUInt32(content); c = IsoTypeReader.readUInt32(content); if (content.remaining() > 0) { name = IsoTypeReader.readString(content, content.remaining()); if (name.endsWith("\0")) { name = name.substring(0, name.length() - 1); zeroTerm = true; } else { zeroTerm = false; } } else { zeroTerm = false; //No string at all, not even zero term char } }
@Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); shouldBeZeroButAppleWritesHereSomeValue = IsoTypeReader.readUInt32(content); handlerType = IsoTypeReader.read4cc(content); a = IsoTypeReader.readUInt32(content); b = IsoTypeReader.readUInt32(content); c = IsoTypeReader.readUInt32(content); if (content.remaining() > 0) { name = IsoTypeReader.readString(content, content.remaining()); if (name.endsWith("\0")) { name = name.substring(0, name.length() - 1); zeroTerm = true; } else { zeroTerm = false; } } else { zeroTerm = false; //No string at all, not even zero term char } }
protected Box createMdiaHdlr(StreamingTrack streamingTrack) { HandlerBox hdlr = new HandlerBox(); hdlr.setHandlerType(streamingTrack.getHandler()); return hdlr; }
public String getHandler() { return trackBox.getMediaBox().getHandlerBox().getHandlerType(); }
public String toString() { return "HandlerBox[handlerType=" + getHandlerType() + ";name=" + getName() + "]"; } }
if ((metaBox = Path.getPath(userDataBox, "meta")) == null) { metaBox = new MetaBox(); HandlerBox hdlr = new HandlerBox(); hdlr.setHandlerType("mdir"); metaBox.addBox(hdlr); userDataBox.addBox(metaBox);
SampleTableBox stbl = trackBox.getMediaBox().getMediaInformationBox().getSampleTableBox(); handler = trackBox.getMediaBox().getHandlerBox().getHandlerType();
mdhd.setLanguage(track.getTrackMetaData().getLanguage()); mdia.addBox(mdhd); HandlerBox hdlr = new HandlerBox(); mdia.addBox(hdlr); hdlr.setHandlerType(track.getHandler());
String handler = trackBox.getMediaBox().getHandlerBox().getHandlerType(); if (language != null && !trackBox.getMediaBox().getMediaHeaderBox().getLanguage().equals(language)) { LOG.info(f.getName() + ": Excluding track " + trackBox.getTrackHeaderBox().getTrackId() + " from processing as language is " + trackBox.getMediaBox().getMediaHeaderBox().getLanguage() + " but not " + language + ".");
protected Box createMdiaHdlr(Track track) { HandlerBox hdlr = new HandlerBox(); hdlr.setHandlerType(track.getHandler()); return hdlr; }
String hdlrType = hdlr.getHandlerType(); if ("soun".equals(hdlrType)) { if (scale > 0) {
protected ParsableBox createMdiaHdlr(Track track, Movie movie) { HandlerBox hdlr = new HandlerBox(); hdlr.setHandlerType(track.getHandler()); return hdlr; }
String hdlrType = hdlr.getHandlerType(); if ("soun".equals(hdlrType)) { if (scale > 0) {
metaBox = new MetaBox(); HandlerBox hdlr; hdlr = new HandlerBox(); hdlr.setHandlerType("mdir"); metaBox.addBox(hdlr); userDataBox.addBox(metaBox);
String hdlrType = hdlr.getHandlerType(); if ("vide".equals(hdlrType)) { hasVideo = true;
metaBox = new MetaBox(); HandlerBox hdlr; hdlr = new HandlerBox(); hdlr.setHandlerType("mdir"); metaBox.addBox(hdlr); userDataBox.addBox(metaBox);