Add renderer-agnostic delegate protocol.

The MTL renderer should also have a way to notify it's delegate
that it's content size changed.

The plan is to introduce this new protocol, move existing clients over
to implementing it in favour of RTCEAGLVideoViewDelegate, and then finally
removing the old protocol.

Bug: b/73147161
Change-Id: I908d7b2667e44e02a58066d701a48efec0e98d14
Reviewed-on: https://webrtc-review.googlesource.com/70243
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22944}
diff --git a/sdk/objc/Framework/Classes/Metal/RTCMTLNSVideoView.m b/sdk/objc/Framework/Classes/Metal/RTCMTLNSVideoView.m
index ff23bc6..869858e 100644
--- a/sdk/objc/Framework/Classes/Metal/RTCMTLNSVideoView.m
+++ b/sdk/objc/Framework/Classes/Metal/RTCMTLNSVideoView.m
@@ -27,6 +27,7 @@
   id<RTCMTLRenderer> _renderer;
 }
 
+@synthesize delegate = _delegate;
 @synthesize renderer = _renderer;
 @synthesize metalView = _metalView;
 @synthesize videoFrame = _videoFrame;
@@ -105,6 +106,9 @@
 
 - (void)setSize:(CGSize)size {
   _metalView.drawableSize = size;
+  dispatch_async(dispatch_get_main_queue(), ^{
+    [self.delegate videoView:self didChangeVideoSize:size];
+  });
   [_metalView draw];
 }