/*
* myLib - https://github.com/taktod/myLib
* Copyright (c) 2014 ttProject. All rights reserved.
*
* Licensed under The MIT license.
*/
package com.ttProject.container.adts;
import com.ttProject.frame.aac.AacFrame;
import com.ttProject.frame.aac.AacFrameSelector;
import com.ttProject.nio.channels.IReadChannel;
import com.ttProject.unit.ISelector;
import com.ttProject.unit.IUnit;
/**
* selector for adts.
* @author taktod
*/
public class AdtsUnitSelector implements ISelector {
/** passed samplenum */
private long passedTic = 0;
/** selector for aac frame. */
private ISelector aacFrameSelector = new AacFrameSelector();
/**
* {@inheritDoc}
*/
@Override
public IUnit select(IReadChannel channel) throws Exception {
int position = channel.position();
AacFrame frame = (AacFrame)aacFrameSelector.select(channel);
if(frame == null) {
return null;
}
AdtsUnit unit = new AdtsUnit(frame, position, passedTic);
passedTic += frame.getSampleNum();
return unit;
}
}