From e188f44733cfbb4f6ab47526378f64bb7b670b38 Mon Sep 17 00:00:00 2001 From: ThibaultBee <37510686+ThibaultBee@users.noreply.github.com> Date: Mon, 27 Nov 2023 10:47:06 +0100 Subject: [PATCH] feat(core): streamer: make startStream suspendable as it can call network --- .../streampack/streamers/bases/BaseScreenRecorderStreamer.kt | 2 +- .../thibaultbee/streampack/streamers/bases/BaseStreamer.kt | 2 +- .../streampack/streamers/file/BaseAudioOnlyFileStreamer.kt | 2 +- .../streampack/streamers/file/BaseCameraFileStreamer.kt | 2 +- .../thibaultbee/streampack/streamers/interfaces/IStreamer.kt | 2 +- .../streampack/ext/srt/streamers/CameraSrtLiveStreamer.kt | 2 +- .../ext/srt/streamers/ScreenRecorderSrtLiveStreamer.kt | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/io/github/thibaultbee/streampack/streamers/bases/BaseScreenRecorderStreamer.kt b/core/src/main/java/io/github/thibaultbee/streampack/streamers/bases/BaseScreenRecorderStreamer.kt index d742b64f4..595e67687 100644 --- a/core/src/main/java/io/github/thibaultbee/streampack/streamers/bases/BaseScreenRecorderStreamer.kt +++ b/core/src/main/java/io/github/thibaultbee/streampack/streamers/bases/BaseScreenRecorderStreamer.kt @@ -91,7 +91,7 @@ open class BaseScreenRecorderStreamer( * Same as [BaseStreamer] but it prepares [ScreenSource.encoderSurface]. * You must have set [activityResult] before. */ - override fun startStream() { + override suspend fun startStream() { screenSource.encoderSurface = videoEncoder?.inputSurface super.startStream() } diff --git a/core/src/main/java/io/github/thibaultbee/streampack/streamers/bases/BaseStreamer.kt b/core/src/main/java/io/github/thibaultbee/streampack/streamers/bases/BaseStreamer.kt index 582ec4f64..8fec040ec 100644 --- a/core/src/main/java/io/github/thibaultbee/streampack/streamers/bases/BaseStreamer.kt +++ b/core/src/main/java/io/github/thibaultbee/streampack/streamers/bases/BaseStreamer.kt @@ -272,7 +272,7 @@ abstract class BaseStreamer( * * @see [stopStream] */ - override fun startStream() { + override suspend fun startStream() { try { endpoint.startStream() diff --git a/core/src/main/java/io/github/thibaultbee/streampack/streamers/file/BaseAudioOnlyFileStreamer.kt b/core/src/main/java/io/github/thibaultbee/streampack/streamers/file/BaseAudioOnlyFileStreamer.kt index 6fbc0f2c0..c41b47b43 100644 --- a/core/src/main/java/io/github/thibaultbee/streampack/streamers/file/BaseAudioOnlyFileStreamer.kt +++ b/core/src/main/java/io/github/thibaultbee/streampack/streamers/file/BaseAudioOnlyFileStreamer.kt @@ -96,5 +96,5 @@ open class BaseAudioOnlyFileStreamer( * Manifest.permission.WRITE_EXTERNAL_STORAGE. */ @RequiresPermission(allOf = [Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO]) - override fun startStream() = super.startStream() + override suspend fun startStream() = super.startStream() } \ No newline at end of file diff --git a/core/src/main/java/io/github/thibaultbee/streampack/streamers/file/BaseCameraFileStreamer.kt b/core/src/main/java/io/github/thibaultbee/streampack/streamers/file/BaseCameraFileStreamer.kt index f2651a9b0..fba0fa2d8 100644 --- a/core/src/main/java/io/github/thibaultbee/streampack/streamers/file/BaseCameraFileStreamer.kt +++ b/core/src/main/java/io/github/thibaultbee/streampack/streamers/file/BaseCameraFileStreamer.kt @@ -98,5 +98,5 @@ open class BaseCameraFileStreamer( * Manifest.permission.WRITE_EXTERNAL_STORAGE. */ @RequiresPermission(allOf = [Manifest.permission.WRITE_EXTERNAL_STORAGE]) - override fun startStream() = super.startStream() + override suspend fun startStream() = super.startStream() } \ No newline at end of file diff --git a/core/src/main/java/io/github/thibaultbee/streampack/streamers/interfaces/IStreamer.kt b/core/src/main/java/io/github/thibaultbee/streampack/streamers/interfaces/IStreamer.kt index b32bac50b..1478246be 100644 --- a/core/src/main/java/io/github/thibaultbee/streampack/streamers/interfaces/IStreamer.kt +++ b/core/src/main/java/io/github/thibaultbee/streampack/streamers/interfaces/IStreamer.kt @@ -81,7 +81,7 @@ interface IStreamer { * * @see [stopStream] */ - fun startStream() + suspend fun startStream() /** * Stops audio/video stream. diff --git a/extensions/srt/src/main/java/io/github/thibaultbee/streampack/ext/srt/streamers/CameraSrtLiveStreamer.kt b/extensions/srt/src/main/java/io/github/thibaultbee/streampack/ext/srt/streamers/CameraSrtLiveStreamer.kt index 4484deea2..8daaa2c1b 100644 --- a/extensions/srt/src/main/java/io/github/thibaultbee/streampack/ext/srt/streamers/CameraSrtLiveStreamer.kt +++ b/extensions/srt/src/main/java/io/github/thibaultbee/streampack/ext/srt/streamers/CameraSrtLiveStreamer.kt @@ -147,7 +147,7 @@ class CameraSrtLiveStreamer( /** * Same as [BaseCameraLiveStreamer.startStream] but also starts bitrate regulator. */ - override fun startStream() { + override suspend fun startStream() { if (bitrateRegulator != null) { scheduler.start() } diff --git a/extensions/srt/src/main/java/io/github/thibaultbee/streampack/ext/srt/streamers/ScreenRecorderSrtLiveStreamer.kt b/extensions/srt/src/main/java/io/github/thibaultbee/streampack/ext/srt/streamers/ScreenRecorderSrtLiveStreamer.kt index 63d919eda..3f1bad61f 100644 --- a/extensions/srt/src/main/java/io/github/thibaultbee/streampack/ext/srt/streamers/ScreenRecorderSrtLiveStreamer.kt +++ b/extensions/srt/src/main/java/io/github/thibaultbee/streampack/ext/srt/streamers/ScreenRecorderSrtLiveStreamer.kt @@ -153,7 +153,7 @@ class ScreenRecorderSrtLiveStreamer( /** * Same as [BaseScreenRecorderLiveStreamer.startStream] but also starts bitrate regulator. */ - override fun startStream() { + override suspend fun startStream() { if (bitrateRegulator != null) { scheduler.start() }