Skip to content

Commit 3760401

Browse files
authored
Merge pull request #4353 from SpiritCroc/video-compression
Fix broken video compression due to NPE in library
2 parents d1294f9 + c568595 commit 3760401

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

changelog.d/4353.bugfix

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix video compression before upload

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/UploadContentWorker.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,11 @@ internal class UploadContentWorker(val context: Context, params: WorkerParameter
214214
.also { filesToDelete.add(it) }
215215
}
216216
VideoCompressionResult.CompressionNotNeeded,
217-
VideoCompressionResult.CompressionCancelled,
217+
VideoCompressionResult.CompressionCancelled -> {
218+
workingFile
219+
}
218220
is VideoCompressionResult.CompressionFailed -> {
221+
Timber.e(videoCompressionResult.failure, "Video compression failed")
219222
workingFile
220223
}
221224
}

matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/content/VideoCompressor.kt

+11-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.session.content
1818

1919
import com.otaliastudios.transcoder.Transcoder
2020
import com.otaliastudios.transcoder.TranscoderListener
21+
import com.otaliastudios.transcoder.source.FilePathDataSource
2122
import kotlinx.coroutines.Dispatchers
2223
import kotlinx.coroutines.Job
2324
import kotlinx.coroutines.withContext
@@ -43,7 +44,16 @@ internal class VideoCompressor @Inject constructor(
4344
var result: Int = -1
4445
var failure: Throwable? = null
4546
Transcoder.into(destinationFile.path)
46-
.addDataSource(videoFile.path)
47+
.addDataSource(object : FilePathDataSource(videoFile.path) {
48+
// https://github.com/natario1/Transcoder/issues/154
49+
@Suppress("SENSELESS_COMPARISON") // Source is annotated as @NonNull, but can actually be null...
50+
override fun isInitialized(): Boolean {
51+
if (source == null) {
52+
return false
53+
}
54+
return super.isInitialized()
55+
}
56+
})
4757
.setListener(object : TranscoderListener {
4858
override fun onTranscodeProgress(progress: Double) {
4959
Timber.d("Compressing: $progress%")

0 commit comments

Comments
 (0)