From a2e34b652795113a03c779303df2dc23b9e1a0c2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 1 Oct 2023 13:43:41 -0600 Subject: [PATCH] Add min frame interval --- .../utils/ThumbnailSpriteGenerator.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/ThumbnailSpriteGenerator.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/ThumbnailSpriteGenerator.kt index bb4b6b09..f0e8260c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/ThumbnailSpriteGenerator.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/ThumbnailSpriteGenerator.kt @@ -17,13 +17,15 @@ internal class ThumbnailSpriteGenerator( private val callback: ThumbnailSpriteCallback ) { - private val maxLines = 10 - private val maxColumns = 10 + private val maxLines: Int = 10 + private val maxColumns: Int = 10 + + private val minFrameIntervalSeconds: Int = 10 // By setting this here we can use setDataSource once // This will improve performance, in particular for online videos // It means that we don't have to seek through the video multiple times, only once - private val retriever = MediaMetadataRetriever() + private val retriever: MediaMetadataRetriever = MediaMetadataRetriever() internal fun generateThumbnailSprite() { retriever.setDataSource(videoPath) @@ -42,7 +44,13 @@ internal class ThumbnailSpriteGenerator( return } - val frameIntervalMillis: Long = videoDuration / (maxLines * maxColumns) + val minFrameIntervalMillis: Long = (minFrameIntervalSeconds * 1000).toLong() + val maxFrameIntervalMillis: Long = videoDuration / (maxLines * maxColumns) + val frameIntervalMillis: Long = if (minFrameIntervalMillis > maxFrameIntervalMillis) { + minFrameIntervalMillis + } else { + maxFrameIntervalMillis + } val videoWidth = videoDimensions.first val videoHeight = videoDimensions.second