/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package webcamstudio.streams; import java.awt.image.BufferedImage; import java.io.File; import static webcamstudio.WebcamStudio.outFMEbe; import webcamstudio.externals.ProcessRenderer; import webcamstudio.mixers.Frame; import webcamstudio.mixers.MasterMixer; /** * * @author patrick (modified by karl) */ public class SinkFile extends Stream { private ProcessRenderer capture = null; // protected String abitrate = "128"; // protected String vbitrate = "1200"; public SinkFile(File f) { file = f; name = f.getName(); if (outFMEbe == 0){ this.setComm("FF"); } else if (outFMEbe == 1) { this.setComm("AV"); } else if (outFMEbe == 2) { this.setComm("GS"); } } @Override public void read() { rate = MasterMixer.getInstance().getRate(); captureWidth = MasterMixer.getInstance().getWidth(); captureHeight = MasterMixer.getInstance().getHeight(); capture = new ProcessRenderer(this, ProcessRenderer.ACTION.OUTPUT, "file", comm); capture.writeCom(); } @Override public void pause() { // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override public void stop() { if (capture != null) { capture.stop(); capture = null; } if (this.getBackFF()){ this.setComm("FF"); } } @Override public boolean needSeek() { return needSeekCTRL=false; } @Override public boolean isPlaying() { if (capture != null) { return !capture.isStopped(); } else { return false; } } @Override public BufferedImage getPreview() { return null; } @Override public Frame getFrame() { return null; } @Override public boolean hasAudio() { return true; } @Override public boolean hasVideo() { return true; } @Override public void readNext() { } @Override public void play() { // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } }