diff --git a/lib/src/main/java/com/otaliastudios/transcoder/internal/thumbnails/DefaultThumbnailsEngine.kt b/lib/src/main/java/com/otaliastudios/transcoder/internal/thumbnails/DefaultThumbnailsEngine.kt index 91e3fc66..90f90189 100644 --- a/lib/src/main/java/com/otaliastudios/transcoder/internal/thumbnails/DefaultThumbnailsEngine.kt +++ b/lib/src/main/java/com/otaliastudios/transcoder/internal/thumbnails/DefaultThumbnailsEngine.kt @@ -240,6 +240,20 @@ class DefaultThumbnailsEngine( tracks.updateTracksInfo() } + override fun updateDataSources(dataSourcesNew: List) { + val currentVideoIds = dataSources.videoOrNull()?.map { it.mediaId() } + val newSourceIds = dataSourcesNew.map { it.mediaId() }.distinct() + val toAdd = newSourceIds - currentVideoIds + val toRemove = currentVideoIds?.minus(newSourceIds) + toAdd.forEach { id -> + val source = dataSourcesNew.first { it.mediaId() == id } + addDataSource(source) + } + toRemove?.forEach { id -> + removeDataSource(id) + } + } + override suspend fun queueThumbnails(list: List) { val map = list.groupBy { it.sourceId() } diff --git a/lib/src/main/java/com/otaliastudios/transcoder/internal/thumbnails/ThumbnailsEngine.kt b/lib/src/main/java/com/otaliastudios/transcoder/internal/thumbnails/ThumbnailsEngine.kt index dea669df..326d8012 100644 --- a/lib/src/main/java/com/otaliastudios/transcoder/internal/thumbnails/ThumbnailsEngine.kt +++ b/lib/src/main/java/com/otaliastudios/transcoder/internal/thumbnails/ThumbnailsEngine.kt @@ -18,6 +18,8 @@ abstract class ThumbnailsEngine { abstract fun removeDataSource(dataSourceId: String) + abstract fun updateDataSources(dataSources: List) + abstract suspend fun queueThumbnails(list: List) abstract suspend fun removePosition(source: String, positionUs: Long)