package com.ttProject.container.avi.test;
import org.apache.log4j.Logger;
import org.junit.Test;
import com.ttProject.container.IContainer;
import com.ttProject.container.IReader;
import com.ttProject.container.riff.RiffFrameUnit;
import com.ttProject.container.riff.RiffUnitReader;
import com.ttProject.frame.IFrame;
import com.ttProject.nio.channels.FileReadChannel;
import com.ttProject.nio.channels.IFileReadChannel;
/**
* avi load test
* @author taktod
*/
public class AviTest {
/** logger */
private Logger logger = Logger.getLogger(AviTest.class);
/**
* test
*/
@Test
public void test() {
IFileReadChannel source = null;
try {
source = FileReadChannel.openFileReadChannel(
Thread.currentThread().getContextClassLoader().getResource("test.vp8vorbis.avi")
// Thread.currentThread().getContextClassLoader().getResource("test.h264pcm_mulaw.avi")
// Thread.currentThread().getContextClassLoader().getResource("test.mjpegadpcm_ima_wav.avi")
// Thread.currentThread().getContextClassLoader().getResource("test.mjpeg.avi")
// "http://49.212.39.17/mario_3video_1audio.avi"
);
IReader reader = new RiffUnitReader();
IContainer container = null;
while((container = reader.read(source)) != null) {
if(container instanceof RiffFrameUnit) {
RiffFrameUnit frameUnit = (RiffFrameUnit)container;
IFrame frame = frameUnit.getFrame();
if(frame != null) {
logger.info("trackId:" + frameUnit.getTrackId());
logger.info(frame);
logger.info(1f * frame.getPts() / frame.getTimebase());
}
}
}
}
catch(Exception e) {
logger.warn("", e);
}
finally {
if(source != null) {
try {
source.close();
}
catch(Exception e) {
}
source = null;
}
}
}
}