Add ability to enable frame dumping decoder via field trial.

--force_fieldtrial=/WebRTC-DecoderDataDumpDirectory/./ will create a
file ./webrtc_receive_stream_[ssrc].ivf containing the exact data that
is fed to the decoder.

Bug: None
Change-Id: I4042298c9b851fc4b61c417652315fa2610de1ed
Reviewed-on: https://webrtc-review.googlesource.com/c/107644
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25467}
diff --git a/video/BUILD.gn b/video/BUILD.gn
index 33dcbe6..e6a39e7 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -52,6 +52,7 @@
   }
 
   deps = [
+    ":frame_dumping_decoder",
     "..:webrtc_common",
     "../api:fec_controller_api",
     "../api:libjingle_peerconnection_api",
@@ -133,6 +134,25 @@
   ]
 }
 
+rtc_source_set("frame_dumping_decoder") {
+  visibility = [ "*" ]
+
+  sources = [
+    "frame_dumping_decoder.cc",
+    "frame_dumping_decoder.h",
+  ]
+
+  deps = [
+    "../api/video:encoded_frame",
+    "../api/video_codecs:video_codecs_api",
+    "../modules/video_coding:video_codec_interface",
+    "../modules/video_coding:video_coding",
+    "../modules/video_coding:video_coding_utility",
+    "../rtc_base:rtc_base_approved",
+    "//third_party/abseil-cpp/absl/memory",
+  ]
+}
+
 rtc_source_set("video_stream_encoder_impl") {
   visibility = [ "*" ]
 
@@ -204,6 +224,7 @@
       "video_quality_test.h",
     ]
     deps = [
+      ":frame_dumping_decoder",
       "../api:fec_controller_api",
       "../api:test_dependency_factory",
       "../api:video_quality_test_fixture_api",