From 7a0391803c953dbd04ad18ddd4c9e8ce6e57da3d Mon Sep 17 00:00:00 2001 From: Akshar Bhatnagar Date: Thu, 19 May 2022 00:01:09 +0530 Subject: [PATCH 1/3] fixes duplicate data source addition to thumbnailer --- .../java/com/otaliastudios/transcoder/internal/DataSources.kt | 3 +++ 1 file changed, 3 insertions(+) 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 5dea66d0..7299b0be 100644 --- a/lib/src/main/java/com/otaliastudios/transcoder/internal/DataSources.kt +++ b/lib/src/main/java/com/otaliastudios/transcoder/internal/DataSources.kt @@ -69,6 +69,9 @@ class DataSources constructor( fun addVideoDataSource(dataSource: DataSource) { dataSource.init() + if (videoSources.find { it.mediaId() == dataSource.mediaId() } != null) { // source exists + return + } if (dataSource.getTrackFormat(TrackType.VIDEO) != null && dataSource !in videoSources) { videoSources = videoSources + dataSource } From 0d3f5c32b50d6851cde75236f3ddb49c9588ee22 Mon Sep 17 00:00:00 2001 From: Akshar Bhatnagar Date: Thu, 19 May 2022 00:09:33 +0530 Subject: [PATCH 2/3] init dataSource after checking if it already exists --- .../java/com/otaliastudios/transcoder/internal/DataSources.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7299b0be..f3b19f3d 100644 --- a/lib/src/main/java/com/otaliastudios/transcoder/internal/DataSources.kt +++ b/lib/src/main/java/com/otaliastudios/transcoder/internal/DataSources.kt @@ -68,10 +68,10 @@ class DataSources constructor( } fun addVideoDataSource(dataSource: DataSource) { - dataSource.init() if (videoSources.find { it.mediaId() == dataSource.mediaId() } != null) { // source exists return } + dataSource.init() if (dataSource.getTrackFormat(TrackType.VIDEO) != null && dataSource !in videoSources) { videoSources = videoSources + dataSource } From 69ba9a8acbf9387fe97f7129d2f3c3330ec2fbc0 Mon Sep 17 00:00:00 2001 From: Akshar Bhatnagar Date: Thu, 19 May 2022 00:22:10 +0530 Subject: [PATCH 3/3] adds check for audioSources --- .../com/otaliastudios/transcoder/internal/DataSources.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 f3b19f3d..3a4a36c4 100644 --- a/lib/src/main/java/com/otaliastudios/transcoder/internal/DataSources.kt +++ b/lib/src/main/java/com/otaliastudios/transcoder/internal/DataSources.kt @@ -62,21 +62,24 @@ 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 (videoSources.find { it.mediaId() == dataSource.mediaId() } != null) { // source exists - return - } + 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