From 21fc70debd06c061f0d2b0f592618236680d29b0 Mon Sep 17 00:00:00 2001 From: James Ding Date: Mon, 29 Jun 2026 16:15:11 -0700 Subject: [PATCH] refactor(backend): drop TranscodeRunner pass-through, call MediaTranscoder directly --- .../kotlin/dev/twango/jetplay/rpc/MediaAccessorImpl.kt | 4 ++-- .../dev/twango/jetplay/transcode/MediaTranscoder.kt | 1 + .../dev/twango/jetplay/transcode/TranscodeRunner.kt | 10 ---------- 3 files changed, 3 insertions(+), 12 deletions(-) delete mode 100644 backend/src/main/kotlin/dev/twango/jetplay/transcode/TranscodeRunner.kt diff --git a/backend/src/main/kotlin/dev/twango/jetplay/rpc/MediaAccessorImpl.kt b/backend/src/main/kotlin/dev/twango/jetplay/rpc/MediaAccessorImpl.kt index e749c37a..dadc5406 100644 --- a/backend/src/main/kotlin/dev/twango/jetplay/rpc/MediaAccessorImpl.kt +++ b/backend/src/main/kotlin/dev/twango/jetplay/rpc/MediaAccessorImpl.kt @@ -10,8 +10,8 @@ import dev.twango.jetplay.media.MediaInfo import dev.twango.jetplay.media.Spectrogram import dev.twango.jetplay.transcode.FfmpegAvailability import dev.twango.jetplay.transcode.MediaInfoExtractor +import dev.twango.jetplay.transcode.MediaTranscoder import dev.twango.jetplay.transcode.SpectrogramExtractor -import dev.twango.jetplay.transcode.TranscodeRunner import dev.twango.jetplay.transcode.WaveformExtractor import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.Flow @@ -84,7 +84,7 @@ class MediaAccessorImpl : MediaAccessor { val output = try { withContext(Dispatchers.IO) { // onProgress fires synchronously inside ffmpeg, so trySend (non-suspending) bridges it. - TranscodeRunner.transcode(input) { pct -> trySend(TranscodeEvent.Progress(pct)) } + MediaTranscoder.transcode(input) { pct -> trySend(TranscodeEvent.Progress(pct)) } } } catch (e: Exception) { send(TranscodeEvent.Failed(e.message ?: "unknown")) diff --git a/backend/src/main/kotlin/dev/twango/jetplay/transcode/MediaTranscoder.kt b/backend/src/main/kotlin/dev/twango/jetplay/transcode/MediaTranscoder.kt index 44cfec3b..8821c6a1 100644 --- a/backend/src/main/kotlin/dev/twango/jetplay/transcode/MediaTranscoder.kt +++ b/backend/src/main/kotlin/dev/twango/jetplay/transcode/MediaTranscoder.kt @@ -39,6 +39,7 @@ object MediaTranscoder { /** Must stay in sync with the shared classifier. */ internal val rawAudioExtensions: Set get() = RAW_AUDIO_HINTS.keys + /** Runs ffmpeg, invoking onProgress(percent). Returns the transcoded File; throws on failure. */ fun transcode(inputFile: File, onProgress: (Double) -> Unit = {}): File { val outputFile = Files.createTempFile("jetplay-", ".webm").toFile().apply { deleteOnExit() } diff --git a/backend/src/main/kotlin/dev/twango/jetplay/transcode/TranscodeRunner.kt b/backend/src/main/kotlin/dev/twango/jetplay/transcode/TranscodeRunner.kt deleted file mode 100644 index 03ecacb6..00000000 --- a/backend/src/main/kotlin/dev/twango/jetplay/transcode/TranscodeRunner.kt +++ /dev/null @@ -1,10 +0,0 @@ -package dev.twango.jetplay.transcode - -import java.io.File - -object TranscodeRunner { - - /** Runs ffmpeg, invoking onProgress(percent). Returns the transcoded File; throws on failure. */ - fun transcode(inputFile: File, onProgress: (Double) -> Unit): File = - MediaTranscoder.transcode(inputFile, onProgress) -}