/*
* myLib - https://github.com/taktod/myLib
* Copyright (c) 2014 ttProject. All rights reserved.
*
* Licensed under The MIT license.
*/
package com.ttProject.transcode.ffmpeg.unit;
import java.nio.ByteBuffer;
import java.util.List;
import com.ttProject.media.flv.FlvHeader;
import com.ttProject.media.flv.FlvManager;
import com.ttProject.nio.channels.ByteReadChannel;
/**
* flvのbufferStreamをunitに変換するプログラム
* @author taktod
*/
public class FlvUnitizer implements IUnitizer {
private FlvHeader flvHeader = null;
private final FlvManager flvManager = new FlvManager();
/**
* 入力データをflvTagに書き換えます。
*/
@Override
public List<?> getUnits(ByteBuffer buffer) throws Exception {
if(flvHeader == null) {
// 初アクセスの場合はflvHeaderであることを期待します。
flvHeader = new FlvHeader();
ByteReadChannel channel = new ByteReadChannel(buffer);
flvHeader.analyze(channel);
buffer.position(13);
}
return flvManager.getUnits(buffer);
}
@Override
public void close() {
}
}