Reland of Add metal view, shaders and renderer. (patchset #1 id:1 of https://codereview.webrtc.org/2711003004/ )

Reason for revert:
Re-land

Original issue's description:
> Revert of Add metal view, shaders and renderer. (patchset #18 id:340001 of https://codereview.webrtc.org/2651743007/ )
>
> Reason for revert:
> Reverting due to breakage in the Google3 import
>
> Original issue's description:
> > Add metal view, shaders and renderer.
> >
> > This CL submits standalone Metal view, renderer and shader.
> >
> > BUG=webrtc:7079
> >
> > Review-Url: https://codereview.webrtc.org/2651743007
> > Cr-Commit-Position: refs/heads/master@{#16787}
> > Committed: https://chromium.googlesource.com/external/webrtc/+/fc8c97f950a4fead4a5debe3c838942db1834010
>
> TBR=magjed@webrtc.org,kthelgason@webrtc.org,tkchin@webrtc.org,haysc@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7079
>
> Review-Url: https://codereview.webrtc.org/2711003004
> Cr-Commit-Position: refs/heads/master@{#16788}
> Committed: https://chromium.googlesource.com/external/webrtc/+/b681aabdfcdcb22de049df3916f2dd8c40dcbf57

TBR=magjed@webrtc.org,kthelgason@webrtc.org,tkchin@webrtc.org,haysc@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7079

Review-Url: https://codereview.webrtc.org/2716703004
Cr-Commit-Position: refs/heads/master@{#16846}
diff --git a/webrtc/sdk/BUILD.gn b/webrtc/sdk/BUILD.gn
index 68d7f5f..4acf378 100644
--- a/webrtc/sdk/BUILD.gn
+++ b/webrtc/sdk/BUILD.gn
@@ -67,7 +67,22 @@
         "objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
         "objc/Framework/Headers/WebRTC/UIDevice+RTCDevice.h",
       ]
+      if (current_cpu == "arm64") {
+        sources += [
+          "objc/Framework/Classes/Metal/RTCMTLNV12Renderer.h",
+          "objc/Framework/Classes/Metal/RTCMTLNV12Renderer.mm",
+          "objc/Framework/Classes/Metal/RTCMTLVideoView.m",
+        ]
+      }
+
       libs = [ "AVFoundation.framework" ]
+      if (current_cpu == "arm64") {
+        libs += [
+          "CoreVideo.framework",
+          "Metal.framework",
+          "MetalKit.framework",
+        ]
+      }
     }
     if (!build_with_chromium) {
       sources += [
@@ -291,6 +306,7 @@
         "objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
         "objc/Framework/Headers/WebRTC/RTCMetrics.h",
         "objc/Framework/Headers/WebRTC/RTCMetricsSampleInfo.h",
+        "objc/Framework/Headers/WebRTC/RTCMTLVideoView.h",
         "objc/Framework/Headers/WebRTC/RTCPeerConnection.h",
         "objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h",
         "objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h",