diff --git a/lib/src/main/java/com/otaliastudios/transcoder/internal/DataSources.kt b/lib/src/main/java/com/otaliastudios/transcoder/internal/DataSources.kt index 3a4a36c4..1c54868d 100644 --- a/lib/src/main/java/com/otaliastudios/transcoder/internal/DataSources.kt +++ b/lib/src/main/java/com/otaliastudios/transcoder/internal/DataSources.kt @@ -62,30 +62,27 @@ class DataSources constructor( } } - private fun existsInSources(dataSource: DataSource, sources: List): Boolean { - return (sources.find { it.mediaId() == dataSource.mediaId() }) != null - } - fun addDataSource(dataSource: DataSource) { addVideoDataSource(dataSource) addAudioDataSource(dataSource) } fun addVideoDataSource(dataSource: DataSource) { - if (existsInSources(dataSource, videoSources)) return dataSource.init() if (dataSource.getTrackFormat(TrackType.VIDEO) != null && dataSource !in videoSources) { videoSources = videoSources + dataSource } } + fun addAudioDataSource(dataSource: DataSource) { - if (existsInSources(dataSource, audioSources)) return dataSource.init() if (dataSource.getTrackFormat(TrackType.AUDIO) != null) { audioSources = audioSources + dataSource } } + fun getVideoSources() = videoSources + fun removeDataSource(dataSourceId: String) { removeAudioDataSource(dataSourceId) removeVideoDataSource(dataSourceId) 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 32b2be69..93544cad 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 @@ -221,7 +221,10 @@ class DefaultThumbnailsEngine( return nextKeyFrameIndex } - override fun addDataSource(dataSource: DataSource) { + override fun addDataSource(dataSource: DataSource) { + if (dataSources.getVideoSources().find { it.mediaId() == dataSource.mediaId() } != null) { + return // dataSource already exists + } dataSources.addVideoDataSource(dataSource) tracks.updateTracksInfo() if (tracks.active.has(TrackType.VIDEO)) {