From 41d8fa7e22d8d1d4692eda17c946a0b2e0f15748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Mon, 20 Sep 2021 20:21:13 +0200 Subject: [PATCH] do not panic if capture pipeline already exists. --- internal/capture/manager.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/capture/manager.go b/internal/capture/manager.go index 690de43f..ef67774b 100644 --- a/internal/capture/manager.go +++ b/internal/capture/manager.go @@ -1,6 +1,7 @@ package capture import ( + "errors" "fmt" "strings" @@ -141,20 +142,23 @@ func (manager *CaptureManagerCtx) Start() { manager.desktop.OnAfterScreenSizeChange(func() { for _, video := range manager.videos { if video.Started() { - if err := video.createPipeline(); err != nil { + err := video.createPipeline() + if err != nil && !errors.Is(err, types.ErrCapturePipelineAlreadyExists) { manager.logger.Panic().Err(err).Msg("unable to recreate video pipeline") } } } if manager.broadcast.Started() { - if err := manager.broadcast.createPipeline(); err != nil { + err := manager.broadcast.createPipeline() + if err != nil && !errors.Is(err, types.ErrCapturePipelineAlreadyExists) { manager.logger.Panic().Err(err).Msg("unable to recreate broadcast pipeline") } } if manager.screencast.Started() { - if err := manager.screencast.createPipeline(); err != nil { + err := manager.screencast.createPipeline() + if err != nil && !errors.Is(err, types.ErrCapturePipelineAlreadyExists) { manager.logger.Panic().Err(err).Msg("unable to recreate screencast pipeline") } }