/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package webcamstudio.streams;
import java.awt.image.BufferedImage;
import static webcamstudio.WebcamStudio.outFMEbe;
import webcamstudio.externals.FME;
import webcamstudio.externals.ProcessRenderer;
import webcamstudio.mixers.MasterMixer;
/**
*
* @author patrick (modified by karl)
*/
public class SinkBroadcast extends Stream {
private ProcessRenderer capture = null;
private FME fme = null;
private boolean isPlaying = false;
private String standard = "STD";
public SinkBroadcast(FME fme) {
this.fme=fme;
name=fme.getName();
url = fme.getUrl()+"/"+fme.getStream();
if (outFMEbe == 0){
this.setComm("FF");
} else if (outFMEbe == 1) {
this.setComm("AV");
} else if (outFMEbe == 2) {
this.setComm("GS");
}
}
@Override
public String getName(){
return name;
}
@Override
public void read() {
isPlaying=true;
rate = MasterMixer.getInstance().getRate();
captureWidth = MasterMixer.getInstance().getWidth();
captureHeight = MasterMixer.getInstance().getHeight();
if (!"".equals(this.fme.getMount())) {
if (standard.equals("STD")) {
capture = new ProcessRenderer(this,fme,"iceCast");
} else {
capture = new ProcessRenderer(this,fme,"iceCastHQ");
}
} else {
if (standard.equals("STD")) {
capture = new ProcessRenderer(this,fme,"broadcast");
} else {
capture = new ProcessRenderer(this,fme,"broadcastHQ");
}
}
capture.writeCom();
}
@Override
public void pause() {
// nothing here.
}
@Override
public void stop() {
isPlaying=false;
if (capture!=null){
capture.stop();
capture=null;
}
if (this.getBackFF()){
this.setComm("FF");
}
}
@Override
public boolean needSeek() {
return needSeekCTRL=false;
}
@Override
public boolean isPlaying() {
return isPlaying;
}
@Override
public BufferedImage getPreview() {
return null;
}
public void setStandard(String gStandard) {
standard = gStandard;
}
public String getStandard() {
return standard;
}
@Override
public boolean hasAudio() {
return true;
}
@Override
public boolean hasVideo() {
return true;
}
@Override
public void readNext() {
// nothing here.
}
@Override
public void play() {
// nothing here.
}
}