From a8f8d1881b06b8bc35e7d7dc7a638ca1a55c1ac6 Mon Sep 17 00:00:00 2001 From: kkostiuk <kateryna.kostiuk@savoirfairelinux.com> Date: Tue, 12 Oct 2021 12:54:39 -0400 Subject: [PATCH] fix: video resolution changed This patch updates renderer info for an existing render instead of registering a new renderer. Change-Id: If087dff0b58072ef00f0dc1e704139aee7f08ed6 --- Ring/Ring/Bridging/VideoAdapter.mm | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Ring/Ring/Bridging/VideoAdapter.mm b/Ring/Ring/Bridging/VideoAdapter.mm index 8e511b36f..528474bd3 100644 --- a/Ring/Ring/Bridging/VideoAdapter.mm +++ b/Ring/Ring/Bridging/VideoAdapter.mm @@ -184,13 +184,19 @@ static id <VideoAdapterDelegate> _delegate; withWidth:(NSInteger)w withHeight:(NSInteger)h{ auto _sinkId = std::string([sinkId UTF8String]); - auto renderer = std::make_shared<Renderer>(); - renderer->width = static_cast<int>(w); - renderer->height = static_cast<int>(h); - renderer->rendererId = sinkId; - renderer->bindAVSinkFunctions(); - DRing::registerAVSinkTarget(_sinkId, renderer->avtarget); - renderers.insert(std::make_pair(_sinkId, renderer)); + auto renderer = renderers.find(_sinkId); + if (renderer != renderers.end()) { + renderer->second->width = static_cast<int>(w); + renderer->second->height = static_cast<int>(h); + return; + } + auto newRenderer = std::make_shared<Renderer>(); + newRenderer->width = static_cast<int>(w); + newRenderer->height = static_cast<int>(h); + newRenderer->rendererId = sinkId; + newRenderer->bindAVSinkFunctions(); + DRing::registerAVSinkTarget(_sinkId, newRenderer->avtarget); + renderers.insert(std::make_pair(_sinkId, newRenderer)); } - (void)removeSinkTargetWithSinkId:(NSString*)sinkId { -- GitLab