Reland "Add unit tests for RTCCVPixelBuffer and ObjCVideoTrackSource."

This is a reland of 4ea50c2b421ae3e40d1d02b8eb8c5802288b181e

Original change's description:
> Add unit tests for RTCCVPixelBuffer and ObjCVideoTrackSource.
> 
> This CL also fixes a couple of bugs found in the toI420 method for
> RTCCVPixelBuffers backed by RGB CVPixelBuffers.
> 
> Bug: webrtc:9007
> Change-Id: I19ab8177f4b124a503cfda9f0166bd960f668982
> Reviewed-on: https://webrtc-review.googlesource.com/64940
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22656}

Bug: webrtc:9007
Change-Id: I2a787c64f8d23ffc4ef2419fc258d965f8a9480b
Reviewed-on: https://webrtc-review.googlesource.com/66341
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22706}
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index bd22f42..732d1e3 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -669,22 +669,33 @@
           ]
 
           sources = [
+            "objc/Framework/UnitTests/ObjCVideoTrackSource_xctest.mm",
+            "objc/Framework/UnitTests/RTCCVPixelBuffer_xctest.mm",
             "objc/Framework/UnitTests/RTCCallbackLogger_xctest.m",
             "objc/Framework/UnitTests/RTCDoNotPutCPlusPlusInFrameworkHeaders_xctest.m",
             "objc/Framework/UnitTests/RTCFileVideoCapturer_xctest.mm",
+            "objc/Framework/UnitTests/frame_buffer_helpers.h",
+            "objc/Framework/UnitTests/frame_buffer_helpers.mm",
           ]
 
           deps = [
             ":common_objc",
             ":framework_objc",
+            ":native_api",
+            ":native_video",
             ":videocapture_objc",
+            ":videoframebuffer_objc",
             ":videosource_objc",
             ":videotoolbox_objc",
             "../../system_wrappers:system_wrappers_default",
+            "../api:video_frame_api_i420",
+            "../common_video:common_video",
             "../media:rtc_media_base",
+            "../media:rtc_media_tests_utils",
             "../modules:module_api",
             "../rtc_base:rtc_base",
             "../rtc_base:rtc_base_tests_utils",
+            "//third_party/libyuv",
           ]
 
           if (rtc_use_metal_rendering) {
@@ -698,6 +709,12 @@
           ]
 
           include_dirs += [ "$root_out_dir/WebRTC.framework/Headers/" ]
+
+          if (!build_with_chromium && is_clang) {
+            # Suppress warnings from the Chromium Clang plugin
+            # (bugs.webrtc.org/163).
+            suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+          }
         }
 
         bundle_data("sdk_unittests_bundle_data") {