Support for UDP data source

This commit is contained in:
arodriguez 2019-06-14 08:24:31 +02:00
parent 624bb6b8d1
commit 28ee05f657

View File

@ -55,6 +55,7 @@ public final class DefaultDataSource implements DataSource {
private static final String SCHEME_ASSET = "asset"; private static final String SCHEME_ASSET = "asset";
private static final String SCHEME_CONTENT = "content"; private static final String SCHEME_CONTENT = "content";
private static final String SCHEME_RTMP = "rtmp"; private static final String SCHEME_RTMP = "rtmp";
private static final String SCHEME_UDP = "udp";
private static final String SCHEME_RAW = RawResourceDataSource.RAW_RESOURCE_SCHEME; private static final String SCHEME_RAW = RawResourceDataSource.RAW_RESOURCE_SCHEME;
private final Context context; private final Context context;
@ -66,6 +67,7 @@ public final class DefaultDataSource implements DataSource {
@Nullable private DataSource assetDataSource; @Nullable private DataSource assetDataSource;
@Nullable private DataSource contentDataSource; @Nullable private DataSource contentDataSource;
@Nullable private DataSource rtmpDataSource; @Nullable private DataSource rtmpDataSource;
@Nullable private DataSource udpDataSource;
@Nullable private DataSource dataSchemeDataSource; @Nullable private DataSource dataSchemeDataSource;
@Nullable private DataSource rawResourceDataSource; @Nullable private DataSource rawResourceDataSource;
@ -139,6 +141,7 @@ public final class DefaultDataSource implements DataSource {
maybeAddListenerToDataSource(assetDataSource, transferListener); maybeAddListenerToDataSource(assetDataSource, transferListener);
maybeAddListenerToDataSource(contentDataSource, transferListener); maybeAddListenerToDataSource(contentDataSource, transferListener);
maybeAddListenerToDataSource(rtmpDataSource, transferListener); maybeAddListenerToDataSource(rtmpDataSource, transferListener);
maybeAddListenerToDataSource(udpDataSource, transferListener);
maybeAddListenerToDataSource(dataSchemeDataSource, transferListener); maybeAddListenerToDataSource(dataSchemeDataSource, transferListener);
maybeAddListenerToDataSource(rawResourceDataSource, transferListener); maybeAddListenerToDataSource(rawResourceDataSource, transferListener);
} }
@ -161,6 +164,8 @@ public final class DefaultDataSource implements DataSource {
dataSource = getContentDataSource(); dataSource = getContentDataSource();
} else if (SCHEME_RTMP.equals(scheme)) { } else if (SCHEME_RTMP.equals(scheme)) {
dataSource = getRtmpDataSource(); dataSource = getRtmpDataSource();
} else if(SCHEME_UDP.equals(scheme)){
dataSource = getUdpDataSource();
} else if (DataSchemeDataSource.SCHEME_DATA.equals(scheme)) { } else if (DataSchemeDataSource.SCHEME_DATA.equals(scheme)) {
dataSource = getDataSchemeDataSource(); dataSource = getDataSchemeDataSource();
} else if (SCHEME_RAW.equals(scheme)) { } else if (SCHEME_RAW.equals(scheme)) {
@ -199,6 +204,14 @@ public final class DefaultDataSource implements DataSource {
} }
} }
private DataSource getUdpDataSource(){
if (udpDataSource == null) {
udpDataSource = new UdpDataSource();
addListenersToDataSource(udpDataSource);
}
return udpDataSource;
}
private DataSource getFileDataSource() { private DataSource getFileDataSource() {
if (fileDataSource == null) { if (fileDataSource == null) {
fileDataSource = new FileDataSource(); fileDataSource = new FileDataSource();