Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import kotlin.io.path.Path

@Serializable
data class PipedStream(
val url: String? = null,
var url: String? = null,
val format: String? = null,
val quality: String? = null,
val mimeType: String? = null,
Expand Down
22 changes: 17 additions & 5 deletions app/src/main/java/com/github/libretube/helpers/DashHelper.kt
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,25 @@ object DashHelper {

val adapSetInfos = ArrayList<AdapSetInfo>()

for (
stream in streams.videoStreams
for (stream in streams.videoStreams) {
// used to avoid including LBRY HLS inside the streams in the manifest
.filter { !it.format.orEmpty().contains("HLS") }
.filter { supportsHdr || !it.quality.orEmpty().uppercase().contains("HDR") }
) {
if (stream.format.orEmpty().contains("HLS")) {
continue
}

// HDR is only supported by some new devices
if (!supportsHdr && stream.quality.orEmpty().uppercase().contains("HDR")) {
continue
}

// ignore dual format and OTF streams
if (!stream.videoOnly!! || stream.indexEnd!! <= 0) {
continue
}

// only unwraps the url if the preference is set in the settings
stream.url = ProxyHelper.unwrapStreamUrl(stream.url.orEmpty())

val adapSetInfo = adapSetInfos.find { it.mimeType == stream.mimeType }
if (adapSetInfo != null) {
adapSetInfo.formats.add(stream)
Expand All @@ -73,6 +81,10 @@ object DashHelper {
adapSetInfo.formats.add(stream)
continue
}

// only unwraps the url if the preference is set in the settings
stream.url = ProxyHelper.unwrapStreamUrl(stream.url.orEmpty())

adapSetInfos.add(
AdapSetInfo(
stream.mimeType!!,
Expand Down