diff --git a/app/src/main/assets/scripts/source.js b/app/src/main/assets/scripts/source.js index 5a530361..4e14fd27 100644 --- a/app/src/main/assets/scripts/source.js +++ b/app/src/main/assets/scripts/source.js @@ -372,7 +372,7 @@ class VideoUrlWidevineSource extends VideoUrlSource { super(obj); this.plugin_type = "VideoUrlWidevineSource"; - this.widevineLicenseUri = obj.licenseUri; + this.drmLicenseUri = obj.licenseUri; if(obj.getLicenseRequestExecutor) this.getLicenseRequestExecutor = obj.getLicenseRequestExecutor; } @@ -409,7 +409,7 @@ class AudioUrlWidevineSource extends AudioUrlSource { super(obj); this.plugin_type = "AudioUrlWidevineSource"; - this.widevineLicenseUri = obj.licenseUri; + this.drmLicenseUri = obj.licenseUri; if(obj.getLicenseRequestExecutor) this.getLicenseRequestExecutor = obj.getLicenseRequestExecutor; @@ -478,7 +478,7 @@ class DashWidevineSource extends DashSource { super(obj); this.plugin_type = "DashWidevineSource"; - this.widevineLicenseUri = obj.licenseUri; + this.drmLicenseUri = obj.licenseUri; if(obj.getLicenseRequestExecutor) this.getLicenseRequestExecutor = obj.getLicenseRequestExecutor; } @@ -513,7 +513,7 @@ class DashManifestRawAudioSource { this.manifest = obj.manifest ?? null; if(obj.requestModifier) this.requestModifier = obj.requestModifier; - this.widevineLicenseUri = obj.widevineLicenseUri; + this.drmLicenseUri = obj.drmLicenseUri; if(obj.getLicenseRequestExecutor) this.getLicenseRequestExecutor = obj.getLicenseRequestExecutor; } diff --git a/app/src/main/java/com/futo/platformplayer/api/media/models/streams/sources/IWidevineSource.kt b/app/src/main/java/com/futo/platformplayer/api/media/models/streams/sources/IWidevineSource.kt index d48eeb28..05927e27 100644 --- a/app/src/main/java/com/futo/platformplayer/api/media/models/streams/sources/IWidevineSource.kt +++ b/app/src/main/java/com/futo/platformplayer/api/media/models/streams/sources/IWidevineSource.kt @@ -3,7 +3,7 @@ package com.futo.platformplayer.api.media.models.streams.sources import com.futo.platformplayer.api.media.platforms.js.models.JSRequestExecutor interface IWidevineSource { - val widevineLicenseUri: String? + val drmLicenseUri: String? val hasLicenseRequestExecutor: Boolean fun getLicenseRequestExecutor(): JSRequestExecutor? } \ No newline at end of file diff --git a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSAudioUrlWidevineSource.kt b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSAudioUrlWidevineSource.kt index a83f8381..c83ec563 100644 --- a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSAudioUrlWidevineSource.kt +++ b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSAudioUrlWidevineSource.kt @@ -8,7 +8,7 @@ import com.futo.platformplayer.engine.V8Plugin import com.futo.platformplayer.getOrThrow class JSAudioUrlWidevineSource : JSAudioUrlSource, IAudioUrlWidevineSource { - override val widevineLicenseUri: String + override val drmLicenseUri: String override val hasLicenseRequestExecutor: Boolean @Suppress("ConvertSecondaryConstructorToPrimary") @@ -16,7 +16,7 @@ class JSAudioUrlWidevineSource : JSAudioUrlSource, IAudioUrlWidevineSource { val contextName = "JSAudioUrlWidevineSource" val config = plugin.config - widevineLicenseUri = _obj.getOrThrow(config, "widevineLicenseUri", contextName) + drmLicenseUri = _obj.getOrThrow(config, "drmLicenseUri", contextName) hasLicenseRequestExecutor = obj.has("getLicenseRequestExecutor") } @@ -36,6 +36,6 @@ class JSAudioUrlWidevineSource : JSAudioUrlSource, IAudioUrlWidevineSource { override fun toString(): String { val url = getAudioUrl() - return "(name=$name, container=$container, bitrate=$bitrate, codec=$codec, url=$url, language=$language, duration=$duration, hasLicenseRequestExecutor=${hasLicenseRequestExecutor}, widevineLicenseUri=$widevineLicenseUri)" + return "(name=$name, container=$container, bitrate=$bitrate, codec=$codec, url=$url, language=$language, duration=$duration, hasLicenseRequestExecutor=${hasLicenseRequestExecutor}, drmLicenseUri=$drmLicenseUri)" } } diff --git a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSDashManifestRawAudioSource.kt b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSDashManifestRawAudioSource.kt index 10833f16..e678b0b5 100644 --- a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSDashManifestRawAudioSource.kt +++ b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSDashManifestRawAudioSource.kt @@ -27,7 +27,7 @@ class JSDashManifestRawAudioSource : JSSource, IAudioSource, IJSDashManifestRawS override val hasGenerate: Boolean; - override val widevineLicenseUri: String? + override val drmLicenseUri: String? override val hasLicenseRequestExecutor: Boolean constructor(plugin: JSClient, obj: V8ValueObject) : super(TYPE_DASH_RAW, plugin, obj) { @@ -43,7 +43,7 @@ class JSDashManifestRawAudioSource : JSSource, IAudioSource, IJSDashManifestRawS language = _obj.getOrDefault(config, "language", contextName, Language.UNKNOWN) ?: Language.UNKNOWN; hasGenerate = _obj.has("generate"); - widevineLicenseUri = _obj.getOrThrow(config, "widevineLicenseUri", contextName) + drmLicenseUri = _obj.getOrThrow(config, "drmLicenseUri", contextName) hasLicenseRequestExecutor = obj.has("getLicenseRequestExecutor") } diff --git a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSDashManifestWidevineSource.kt b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSDashManifestWidevineSource.kt index e3996691..e7b0dc21 100644 --- a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSDashManifestWidevineSource.kt +++ b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSDashManifestWidevineSource.kt @@ -23,7 +23,7 @@ class JSDashManifestWidevineSource : IVideoUrlSource, IDashManifestSource, override var priority: Boolean = false - override val widevineLicenseUri: String + override val drmLicenseUri: String override val hasLicenseRequestExecutor: Boolean @Suppress("ConvertSecondaryConstructorToPrimary") @@ -36,7 +36,7 @@ class JSDashManifestWidevineSource : IVideoUrlSource, IDashManifestSource, priority = obj.getOrNull(config, "priority", contextName) ?: false - widevineLicenseUri = _obj.getOrThrow(config, "widevineLicenseUri", contextName) + drmLicenseUri = _obj.getOrThrow(config, "drmLicenseUri", contextName) hasLicenseRequestExecutor = obj.has("getLicenseRequestExecutor") } diff --git a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSVideoUrlWidevineSource.kt b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSVideoUrlWidevineSource.kt index c87b1c85..6f78c14d 100644 --- a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSVideoUrlWidevineSource.kt +++ b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/models/sources/JSVideoUrlWidevineSource.kt @@ -8,7 +8,7 @@ import com.futo.platformplayer.engine.V8Plugin import com.futo.platformplayer.getOrThrow class JSVideoUrlWidevineSource : JSVideoUrlSource, IVideoUrlWidevineSource { - override val widevineLicenseUri: String + override val drmLicenseUri: String override val hasLicenseRequestExecutor: Boolean @Suppress("ConvertSecondaryConstructorToPrimary") @@ -16,7 +16,7 @@ class JSVideoUrlWidevineSource : JSVideoUrlSource, IVideoUrlWidevineSource { val contextName = "JSAudioUrlWidevineSource" val config = plugin.config - widevineLicenseUri = _obj.getOrThrow(config, "widevineLicenseUri", contextName) + drmLicenseUri = _obj.getOrThrow(config, "drmLicenseUri", contextName) hasLicenseRequestExecutor = obj.has("getLicenseRequestExecutor") } @@ -36,6 +36,6 @@ class JSVideoUrlWidevineSource : JSVideoUrlSource, IVideoUrlWidevineSource { override fun toString(): String { val url = getVideoUrl() - return "(width=$width, height=$height, container=$container, codec=$codec, name=$name, bitrate=$bitrate, duration=$duration, url=$url, hasLicenseRequestExecutor=$hasLicenseRequestExecutor, widevineLicenseUri=$widevineLicenseUri)" + return "(width=$width, height=$height, container=$container, codec=$codec, name=$name, bitrate=$bitrate, duration=$duration, url=$url, hasLicenseRequestExecutor=$hasLicenseRequestExecutor, drmLicenseUri=$drmLicenseUri)" } } \ No newline at end of file diff --git a/app/src/main/java/com/futo/platformplayer/helpers/VideoHelper.kt b/app/src/main/java/com/futo/platformplayer/helpers/VideoHelper.kt index eedf25fb..58cb73c8 100644 --- a/app/src/main/java/com/futo/platformplayer/helpers/VideoHelper.kt +++ b/app/src/main/java/com/futo/platformplayer/helpers/VideoHelper.kt @@ -46,7 +46,7 @@ class VideoHelper { return false } fun isDownloadable(source: IVideoSource) = (source is IVideoUrlSource || source is IHLSManifestSource || source is JSDashManifestRawSource) && source !is IWidevineSource - fun isDownloadable(source: IAudioSource) = (source is IAudioUrlSource || source is IHLSManifestAudioSource || source is JSDashManifestRawAudioSource) && source !is IWidevineSource && !(source is JSDashManifestRawAudioSource && source.widevineLicenseUri != null) + fun isDownloadable(source: IAudioSource) = (source is IAudioUrlSource || source is IHLSManifestAudioSource || source is JSDashManifestRawAudioSource) && source !is IWidevineSource && !(source is JSDashManifestRawAudioSource && source.drmLicenseUri != null) fun selectBestVideoSource(desc: IVideoSourceDescriptor, desiredPixelCount : Int, prefContainers : Array) : IVideoSource? = selectBestVideoSource(desc.videoSources.toList(), desiredPixelCount, prefContainers); fun selectBestVideoSource(sources: Iterable, desiredPixelCount : Int, prefContainers : Array) : IVideoSource? { val targetVideo = if(desiredPixelCount > 0) { diff --git a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt index 2e6eff64..9c9cd328 100644 --- a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt +++ b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayerBase.kt @@ -494,10 +494,10 @@ abstract class FutoVideoPlayerBase : RelativeLayout { else DefaultHttpDataSource.Factory().setUserAgent(DEFAULT_USER_AGENT) - val baseCallback = HttpMediaDrmCallback(videoSource.widevineLicenseUri, dataSource) + val baseCallback = HttpMediaDrmCallback(videoSource.drmLicenseUri, dataSource) val callback = if (videoSource.hasLicenseRequestExecutor) { - PluginMediaDrmCallback(baseCallback, videoSource.getLicenseRequestExecutor()!!, videoSource.widevineLicenseUri!!) + PluginMediaDrmCallback(baseCallback, videoSource.getLicenseRequestExecutor()!!, videoSource.drmLicenseUri!!) } else { baseCallback } @@ -534,10 +534,10 @@ abstract class FutoVideoPlayerBase : RelativeLayout { if (videoSource is JSSource && (videoSource.requiresCustomDatasource)) videoSource.getHttpDataSourceFactory() else DefaultHttpDataSource.Factory().setUserAgent(DEFAULT_USER_AGENT) - val baseCallback = HttpMediaDrmCallback(videoSource.widevineLicenseUri, dataSource) + val baseCallback = HttpMediaDrmCallback(videoSource.drmLicenseUri, dataSource) val callback = if (videoSource.hasLicenseRequestExecutor) { - PluginMediaDrmCallback(baseCallback, videoSource.getLicenseRequestExecutor()!!, videoSource.widevineLicenseUri!!) + PluginMediaDrmCallback(baseCallback, videoSource.getLicenseRequestExecutor()!!, videoSource.drmLicenseUri!!) } else { baseCallback } @@ -668,11 +668,11 @@ abstract class FutoVideoPlayerBase : RelativeLayout { else DefaultHttpDataSource.Factory().setUserAgent(DEFAULT_USER_AGENT) - val baseCallback = HttpMediaDrmCallback(audioSource.widevineLicenseUri, dataSource) + val baseCallback = HttpMediaDrmCallback(audioSource.drmLicenseUri, dataSource) val callback = - if (audioSource.hasLicenseRequestExecutor && audioSource.widevineLicenseUri != null) { - PluginMediaDrmCallback(baseCallback, audioSource.getLicenseRequestExecutor()!!, audioSource.widevineLicenseUri) + if (audioSource.hasLicenseRequestExecutor && audioSource.drmLicenseUri != null) { + PluginMediaDrmCallback(baseCallback, audioSource.getLicenseRequestExecutor()!!, audioSource.drmLicenseUri) } else { baseCallback } @@ -687,7 +687,7 @@ abstract class FutoVideoPlayerBase : RelativeLayout { if (generated != null) { withContext(Dispatchers.Main) { val factory = DashMediaSource.Factory(dataSource) - if (audioSource.widevineLicenseUri != null) { + if (audioSource.drmLicenseUri != null) { if (!MediaDrm.isCryptoSchemeSupported(C.WIDEVINE_UUID)) { throw IllegalArgumentException("Device does not support Widevine") } @@ -709,7 +709,7 @@ abstract class FutoVideoPlayerBase : RelativeLayout { return false } else { val factory = DashMediaSource.Factory(dataSource) - if (audioSource.widevineLicenseUri != null) { + if (audioSource.drmLicenseUri != null) { if (!MediaDrm.isCryptoSchemeSupported(C.WIDEVINE_UUID)) { throw IllegalArgumentException("Device does not support Widevine") } @@ -741,10 +741,10 @@ abstract class FutoVideoPlayerBase : RelativeLayout { else DefaultHttpDataSource.Factory().setUserAgent(DEFAULT_USER_AGENT) - val baseCallback = HttpMediaDrmCallback(audioSource.widevineLicenseUri, dataSource) + val baseCallback = HttpMediaDrmCallback(audioSource.drmLicenseUri, dataSource) val callback = if (audioSource.hasLicenseRequestExecutor) { - PluginMediaDrmCallback(baseCallback, audioSource.getLicenseRequestExecutor()!!, audioSource.widevineLicenseUri!!) + PluginMediaDrmCallback(baseCallback, audioSource.getLicenseRequestExecutor()!!, audioSource.drmLicenseUri!!) } else { baseCallback }