Cleanup ``MediaCCCLiveStreamExtractor``
This commit is contained in:
parent
3f1f2b291c
commit
53909820f8
|
@ -27,6 +27,7 @@ import org.schabi.newpipe.extractor.streamdata.stream.simpleimpl.SimpleVideoAudi
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
@ -162,22 +163,16 @@ public class MediaCCCLiveStreamExtractor extends StreamExtractor {
|
||||||
public List<AudioStream> getAudioStreams() throws IOException, ExtractionException {
|
public List<AudioStream> getAudioStreams() throws IOException, ExtractionException {
|
||||||
return getStreamDTOs("audio")
|
return getStreamDTOs("audio")
|
||||||
.map(dto -> {
|
.map(dto -> {
|
||||||
final String url = dto.getUrlValue().getString(URL);
|
try {
|
||||||
final DeliveryData deliveryData;
|
|
||||||
if ("hls".equals(dto.getUrlKey())) {
|
|
||||||
deliveryData = new SimpleHLSDeliveryDataImpl(url);
|
|
||||||
} else if ("dash".equals(dto.getUrlKey())) {
|
|
||||||
deliveryData = new SimpleDASHUrlDeliveryDataImpl(url);
|
|
||||||
} else {
|
|
||||||
deliveryData = new SimpleProgressiveHTTPDeliveryDataImpl(url);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new SimpleAudioStreamImpl(
|
return new SimpleAudioStreamImpl(
|
||||||
// TODO: This looks wrong
|
|
||||||
new AudioFormatRegistry().getFromSuffixOrThrow(dto.getUrlKey()),
|
new AudioFormatRegistry().getFromSuffixOrThrow(dto.getUrlKey()),
|
||||||
deliveryData
|
buildDeliveryData(dto)
|
||||||
);
|
);
|
||||||
|
} catch (final Exception ignored) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
.filter(Objects::nonNull)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -185,30 +180,37 @@ public class MediaCCCLiveStreamExtractor extends StreamExtractor {
|
||||||
public List<VideoAudioStream> getVideoStreams() throws IOException, ExtractionException {
|
public List<VideoAudioStream> getVideoStreams() throws IOException, ExtractionException {
|
||||||
return getStreamDTOs("video")
|
return getStreamDTOs("video")
|
||||||
.map(dto -> {
|
.map(dto -> {
|
||||||
final String url = dto.getUrlValue().getString(URL);
|
try {
|
||||||
final DeliveryData deliveryData;
|
final JsonArray videoSize =
|
||||||
if ("hls".equals(dto.getUrlKey())) {
|
dto.getStreamJsonObj().getArray("videoSize");
|
||||||
deliveryData = new SimpleHLSDeliveryDataImpl(url);
|
|
||||||
} else if ("dash".equals(dto.getUrlKey())) {
|
|
||||||
deliveryData = new SimpleDASHUrlDeliveryDataImpl(url);
|
|
||||||
} else {
|
|
||||||
deliveryData = new SimpleProgressiveHTTPDeliveryDataImpl(url);
|
|
||||||
}
|
|
||||||
|
|
||||||
final JsonArray videoSize = dto.getStreamJsonObj().getArray("videoSize");
|
|
||||||
|
|
||||||
return new SimpleVideoAudioStreamImpl(
|
return new SimpleVideoAudioStreamImpl(
|
||||||
// TODO: This looks wrong
|
// TODO: This looks wrong
|
||||||
new VideoAudioFormatRegistry().getFromSuffixOrThrow(dto.getUrlKey()),
|
new VideoAudioFormatRegistry()
|
||||||
deliveryData,
|
.getFromSuffixOrThrow(dto.getUrlKey()),
|
||||||
|
buildDeliveryData(dto),
|
||||||
VideoQualityData.fromHeightWidth(
|
VideoQualityData.fromHeightWidth(
|
||||||
/*height=*/videoSize.getInt(1, VideoQualityData.UNKNOWN),
|
videoSize.getInt(1, VideoQualityData.UNKNOWN),
|
||||||
/*width=*/videoSize.getInt(0, VideoQualityData.UNKNOWN))
|
videoSize.getInt(0, VideoQualityData.UNKNOWN))
|
||||||
);
|
);
|
||||||
|
} catch (final Exception ignored) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
.filter(Objects::nonNull)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private DeliveryData buildDeliveryData(final MediaCCCLiveStreamMapperDTO dto) {
|
||||||
|
final String url = dto.getUrlValue().getString(URL);
|
||||||
|
if ("hls".equals(dto.getUrlKey())) {
|
||||||
|
return new SimpleHLSDeliveryDataImpl(url);
|
||||||
|
} else if ("dash".equals(dto.getUrlKey())) {
|
||||||
|
return new SimpleDASHUrlDeliveryDataImpl(url);
|
||||||
|
}
|
||||||
|
return new SimpleProgressiveHTTPDeliveryDataImpl(url);
|
||||||
|
}
|
||||||
|
|
||||||
private Stream<MediaCCCLiveStreamMapperDTO> getStreamDTOs(@Nonnull final String streamType) {
|
private Stream<MediaCCCLiveStreamMapperDTO> getStreamDTOs(@Nonnull final String streamType) {
|
||||||
return room.getArray(STREAMS).stream()
|
return room.getArray(STREAMS).stream()
|
||||||
// Ensure that we use only process JsonObjects
|
// Ensure that we use only process JsonObjects
|
||||||
|
|
Loading…
Reference in New Issue