Reland "Add file capturer to AppRTCMobile on simulator."

This is a reland of 5adcd198752b651f7b7e9199a91f9b873b7d7237
Original change's description:
> Add file capturer to AppRTCMobile on simulator.
> 
> To achieve this, the CL does the following
> - Adds sample mp4 video
> - Refactors the existing RTCFileVideoCapturer to achieve continious
> capture and adds tests.
> 
> Bug: webrtc:8406
> Change-Id: Ibc0891176c58ec9053b42e340d2113036e7199ec
> Reviewed-on: https://webrtc-review.googlesource.com/12180
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20598}

Bug: webrtc:8406
Change-Id: I93be89b86e342a9a8195e19ebaf4aef1410d2c20
Reviewed-on: https://webrtc-review.googlesource.com/23200
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20870}
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index 3d68dd9..0d03dc2 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -282,8 +282,8 @@
       ]
       if (is_ios) {
         sources += [
-          "objc/Framework/Classes/PeerConnection/RTCFileVideoCapturer.h",
           "objc/Framework/Classes/PeerConnection/RTCFileVideoCapturer.m",
+          "objc/Framework/Headers/WebRTC/RTCFileVideoCapturer.h",
         ]
       }
       libs = [ "AVFoundation.framework" ]
@@ -529,20 +529,22 @@
     }
 
     if (rtc_include_tests) {
-      # TODO(denicija):remove second part of this check.
-      if (is_ios && (current_cpu == "arm64" || use_ios_simulator)) {
+      if (is_ios) {
         rtc_source_set("sdk_unittests_sources") {
           testonly = true
           include_dirs = [
             "objc/Framework/Headers",
             "objc/Framework/Classes",
           ]
+
           sources = [
-            # TODO(denicija): Once more sources are included,
-            # move the second part of the check on line 516 here
-            # when adding this file to the sources
-            "objc/Framework/UnitTests/RTCMTLVideoView_xctest.mm",
+            "objc/Framework/UnitTests/RTCFileVideoCapturer_xctest.mm",
           ]
+
+          if (current_cpu == "arm64" || use_ios_simulator) {
+            sources += [ "objc/Framework/UnitTests/RTCMTLVideoView_xctest.mm" ]
+          }
+
           if (use_ios_simulator) {
             # Only include this file on simulator, as it's already
             # included in device builds.
@@ -568,14 +570,26 @@
           ]
         }
 
+        bundle_data("sdk_unittests_bundle_data") {
+          # Sample video taken from https://media.xiph.org/video/derf/
+          sources = [
+            "objc/Framework/UnitTests/foreman.mp4",
+          ]
+          outputs = [
+            "{{bundle_resources_dir}}/{{source_file_part}}",
+          ]
+        }
+
         rtc_ios_xctest_test("sdk_unittests") {
           info_plist = "//test/ios/Info.plist"
           sources = [
             "objc/Framework/UnitTests/main.m",
           ]
+
           _bundle_id_suffix = ios_generic_test_bundle_id_suffix
           extra_substitutions = [ "GTEST_BUNDLE_ID_SUFFIX=$_bundle_id_suffix" ]
           deps = [
+            ":sdk_unittests_bundle_data",
             ":sdk_unittests_sources",
           ]
           ldflags = [ "-all_load" ]
@@ -666,6 +680,7 @@
           "objc/Framework/Headers/WebRTC/RTCDispatcher.h",
           "objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h",
           "objc/Framework/Headers/WebRTC/RTCFieldTrials.h",
+          "objc/Framework/Headers/WebRTC/RTCFileVideoCapturer.h",
           "objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
           "objc/Framework/Headers/WebRTC/RTCIceServer.h",
           "objc/Framework/Headers/WebRTC/RTCIntervalRange.h",