/* * myLib - https://github.com/taktod/myLib * Copyright (c) 2014 ttProject. All rights reserved. * * Licensed under The MIT license. */ package com.ttProject.media.mp4; import org.apache.log4j.Logger; import com.ttProject.media.mp4.atom.Stsd; import com.ttProject.media.mp4.atom.stsd.RecordAnalyzer; import com.ttProject.nio.channels.IReadChannel; public class AtomAnalyzer implements IAtomAnalyzer { private Logger logger = Logger.getLogger(AtomAnalyzer.class); private final Mp4Manager manager = new Mp4Manager(); @Override public Atom analyze(IReadChannel ch) throws Exception { Atom atom = manager.getUnit(ch); if(atom == null) { return null; } if(atom instanceof Stsd) { try { atom.analyze(ch, new RecordAnalyzer()); } catch (Exception e) { logger.error("flvに適合しないデータを発見しました。", e); } } else { atom.analyze(ch, this); } ch.position(atom.getPosition() + atom.getSize()); return atom; } }