diff --git a/Ring/Ring/Bridging/VideoAdapter.mm b/Ring/Ring/Bridging/VideoAdapter.mm
index 8e511b36fb79588d16fe716fba114f0f632e0ff1..528474bd3795f39bc627fc909276fe6342a71c65 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 {