You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.2 KiB
Java
86 lines
2.2 KiB
Java
package com.github.faucamp.simplertmp;
|
|
|
|
import java.io.IOException;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
import com.github.faucamp.simplertmp.io.RtmpConnection;
|
|
|
|
/**
|
|
* Srs implementation of an RTMP publisher
|
|
*
|
|
* @author francois, leoma
|
|
*/
|
|
public class DefaultRtmpPublisher implements RtmpPublisher {
|
|
|
|
private RtmpConnection rtmpConnection;
|
|
|
|
public DefaultRtmpPublisher(RtmpHandler handler) {
|
|
rtmpConnection = new RtmpConnection(handler);
|
|
}
|
|
|
|
@Override
|
|
public boolean connect(String url) throws IOException {
|
|
return rtmpConnection.connect(url);
|
|
}
|
|
|
|
@Override
|
|
public void shutdown() {
|
|
rtmpConnection.shutdown();
|
|
}
|
|
|
|
@Override
|
|
public boolean publish(String publishType) throws IllegalStateException, IOException {
|
|
if (publishType == null) {
|
|
throw new IllegalStateException("No publish type specified");
|
|
}
|
|
return rtmpConnection.publish(publishType);
|
|
}
|
|
|
|
@Override
|
|
public void closeStream() throws IllegalStateException {
|
|
rtmpConnection.closeStream();
|
|
}
|
|
|
|
@Override
|
|
public void publishVideoData(byte[] data, int dts) throws IllegalStateException {
|
|
if (data == null || data.length == 0 || dts < 0) {
|
|
throw new IllegalStateException("Invalid Video Data");
|
|
}
|
|
rtmpConnection.publishVideoData(data, dts);
|
|
}
|
|
|
|
@Override
|
|
public void publishAudioData(byte[] data, int dts) throws IllegalStateException {
|
|
if (data == null || data.length == 0 || dts < 0) {
|
|
throw new IllegalStateException("Invalid Audio Data");
|
|
}
|
|
rtmpConnection.publishAudioData(data, dts);
|
|
}
|
|
|
|
@Override
|
|
public AtomicInteger getVideoFrameCacheNumber() {
|
|
return rtmpConnection.getVideoFrameCacheNumber();
|
|
}
|
|
|
|
@Override
|
|
public final String getServerIpAddr() {
|
|
return rtmpConnection.getServerIpAddr();
|
|
}
|
|
|
|
@Override
|
|
public final int getServerPid() {
|
|
return rtmpConnection.getServerPid();
|
|
}
|
|
|
|
@Override
|
|
public final int getServerId() {
|
|
return rtmpConnection.getServerId();
|
|
}
|
|
|
|
@Override
|
|
public void setVideoResolution(int width, int height) {
|
|
rtmpConnection.setVideoResolution(width, height);
|
|
}
|
|
|
|
}
|