File tree Expand file tree Collapse file tree 1 file changed +9
-1
lines changed
core/src/main/java/io/github/thibaultbee/streampack/core/elements/endpoints Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ import io.github.thibaultbee.streampack.core.elements.endpoints.composites.muxer
2727import io.github.thibaultbee.streampack.core.elements.endpoints.composites.muxers.ts.data.TSServiceInfo
2828import io.github.thibaultbee.streampack.core.elements.endpoints.composites.sinks.ContentSink
2929import io.github.thibaultbee.streampack.core.elements.endpoints.composites.sinks.FileSink
30+ import io.github.thibaultbee.streampack.core.elements.utils.ConflatedJob
3031import io.github.thibaultbee.streampack.core.logger.Logger
3132import io.github.thibaultbee.streampack.core.pipelines.IDispatcherProvider
3233import kotlinx.coroutines.CoroutineDispatcher
@@ -68,6 +69,7 @@ open class DynamicEndpoint(
6869 private var srtEndpoint: IEndpointInternal ? = null
6970 private var rtmpEndpoint: IEndpointInternal ? = null
7071
72+ private val isOpenJob = ConflatedJob ()
7173 private val isOpenFlows = endpointFlow.map { it?.isOpenFlow }
7274 private val _isOpenFlow = MutableStateFlow (false )
7375 override val isOpenFlow: StateFlow <Boolean > = _isOpenFlow .asStateFlow()
@@ -86,7 +88,13 @@ open class DynamicEndpoint(
8688 init {
8789 coroutineScope.launch {
8890 isOpenFlows.collect { isOpenFlow ->
89- _isOpenFlow .emit(isOpenFlow?.value == true )
91+ if (isOpenFlow == null ) {
92+ isOpenJob.cancel()
93+ } else {
94+ isOpenJob + = isOpenFlow.collect { isOpen ->
95+ _isOpenFlow .emit(isOpen)
96+ }
97+ }
9098 }
9199 }
92100 }
You can’t perform that action at this time.
0 commit comments