Skip to content

Commit ee2df68

Browse files
committed
WIP
1 parent 398c02d commit ee2df68

File tree

1 file changed

+11
-7
lines changed
  • core/src/main/java/io/github/thibaultbee/streampack/core/elements/sources/video/camera

1 file changed

+11
-7
lines changed

core/src/main/java/io/github/thibaultbee/streampack/core/elements/sources/video/camera/CameraSource.kt

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -133,14 +133,23 @@ internal class CameraSource(
133133
override suspend fun hasPreview() = controller.hasOutput(PREVIEW_NAME)
134134

135135
@RequiresPermission(Manifest.permission.CAMERA)
136-
override suspend fun setPreview(surface: Surface) {
136+
private suspend fun setPreviewUnsafe(surface: Surface) {
137137
if (isPreviewingFlow.value) {
138138
Logger.w(TAG, "Trying to set preview while previewing")
139139
}
140140
Logger.e(TAG, ">>> Set preview $surface")
141141
controller.addOutput(CameraSurface(PREVIEW_NAME, surface))
142142
}
143143

144+
@RequiresPermission(Manifest.permission.CAMERA)
145+
override suspend fun setPreview(surface: Surface) {
146+
withContext(defaultDispatcher) {
147+
previewMutex.withLock {
148+
setPreviewUnsafe(surface)
149+
}
150+
}
151+
}
152+
144153
@SuppressLint("MissingPermission")
145154
override suspend fun resetPreviewImpl() {
146155
Logger.e(TAG, ">>> reset preview")
@@ -195,7 +204,6 @@ internal class CameraSource(
195204
private suspend fun startPreviewUnsafe() {
196205
if (isPreviewingFlow.value) {
197206
Logger.w(TAG, "Camera is already previewing")
198-
return
199207
}
200208
Logger.w(TAG, "Add preview to controller")
201209
controller.addTarget(PREVIEW_NAME)
@@ -219,11 +227,7 @@ internal class CameraSource(
219227
override suspend fun startPreview(previewSurface: Surface) {
220228
withContext(defaultDispatcher) {
221229
previewMutex.withLock {
222-
if (isPreviewingFlow.value) {
223-
Logger.w(TAG, "Camera is already previewing")
224-
// return@withContext
225-
}
226-
setPreview(previewSurface)
230+
setPreviewUnsafe(previewSurface)
227231
startPreviewUnsafe()
228232
}
229233
}

0 commit comments

Comments
 (0)