/*
* myLib - https://github.com/taktod/myLib
* Copyright (c) 2014 ttProject. All rights reserved.
*
* Licensed under The MIT license.
*/
package com.ttProject.convertprocess.frame;
import com.ttProject.frame.CodecType;
import com.ttProject.frame.IAnalyzer;
import com.ttProject.frame.aac.AacFrameAnalyzer;
import com.ttProject.frame.adpcmimawav.AdpcmImaWavFrameAnalyzer;
import com.ttProject.frame.adpcmswf.AdpcmswfFrameAnalyzer;
import com.ttProject.frame.flv1.Flv1FrameAnalyzer;
import com.ttProject.frame.h264.NalAnalyzer;
import com.ttProject.frame.mjpeg.MjpegFrameAnalyzer;
import com.ttProject.frame.mp3.Mp3FrameAnalyzer;
import com.ttProject.frame.nellymoser.NellymoserFrameAnalyzer;
import com.ttProject.frame.opus.OpusFrameAnalyzer;
import com.ttProject.frame.speex.SpeexFrameAnalyzer;
import com.ttProject.frame.theora.TheoraFrameAnalyzer;
import com.ttProject.frame.vorbis.VorbisFrameAnalyzer;
import com.ttProject.frame.vp6.Vp6FrameAnalyzer;
import com.ttProject.frame.vp8.Vp8FrameAnalyzer;
import com.ttProject.frame.vp9.Vp9FrameAnalyzer;
/**
* frameを復元するときのanalyzerを確認する
* @author taktod
*/
public class AnalyzerChecker {
/**
* 解析用のanalyzerがどれであるか、調べる
*/
public IAnalyzer checkAnalyzer(CodecType codecType) {
switch(codecType) {
case AAC:
return new AacFrameAnalyzer();
case ADPCM_IMA_WAV:
return new AdpcmImaWavFrameAnalyzer();
case ADPCM_SWF:
return new AdpcmswfFrameAnalyzer();
case FLV1:
return new Flv1FrameAnalyzer();
case H264:
return new NalAnalyzer();
case H265:
throw new RuntimeException("あとで考えます。こっちもH265NalAnalyzerを使うと思う。");
case MJPEG:
return new MjpegFrameAnalyzer();
case MP3:
return new Mp3FrameAnalyzer();
case NELLYMOSER:
return new NellymoserFrameAnalyzer();
case OPUS:
return new OpusFrameAnalyzer();
case SPEEX:
return new SpeexFrameAnalyzer();
case THEORA:
return new TheoraFrameAnalyzer();
case VORBIS:
return new VorbisFrameAnalyzer();
case VP6:
return new Vp6FrameAnalyzer();
case VP8:
return new Vp8FrameAnalyzer();
case VP9:
return new Vp9FrameAnalyzer();
default:
throw new RuntimeException("未定義のcodecTypeです");
}
}
}