Reland "Tidy up and increase exception handling in compare_videos"

This is a reland of 1c60ff521eda26c80fa53097d9c614f10200f651

Original change's description:
> Tidy up and increase exception handling in compare_videos
> 
> Bug: webrtc:9642
> Change-Id: I5c8b252de3b285f81a5437af99d789b5a28ce646
> Reviewed-on: https://webrtc-review.googlesource.com/102880
> Commit-Queue: Paulina Hensman <phensman@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24909}

Bug: webrtc:9642
Change-Id: I11078a358297ae5046991ac3b0680df468bb413b
Reviewed-on: https://webrtc-review.googlesource.com/c/102941
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25024}
diff --git a/rtc_tools/frame_analyzer/frame_analyzer.cc b/rtc_tools/frame_analyzer/frame_analyzer.cc
index 56dc1f4..89440ea 100644
--- a/rtc_tools/frame_analyzer/frame_analyzer.cc
+++ b/rtc_tools/frame_analyzer/frame_analyzer.cc
@@ -23,6 +23,20 @@
 #include "rtc_tools/video_file_writer.h"
 #include "test/testsupport/perf_test.h"
 
+namespace {
+
+#ifdef WIN32
+const char* const kPathDelimiter = "\\";
+#else
+const char* const kPathDelimiter = "/";
+#endif
+
+std::string JoinFilename(std::string directory, std::string filename) {
+  return directory + kPathDelimiter + filename;
+}
+
+}  // namespace
+
 /*
  * A command line tool running PSNR and SSIM on a reference video and a test
  * video. The test video is a record of the reference video which can start at
@@ -147,9 +161,11 @@
   }
   std::string yuv_directory = parser.GetFlag("yuv_directory");
   if (!yuv_directory.empty()) {
-    webrtc::test::WriteVideoToFile(reordered_video, yuv_directory + "ref.yuv",
+    webrtc::test::WriteVideoToFile(reordered_video,
+                                   JoinFilename(yuv_directory, "ref.yuv"),
                                    /*fps=*/30);
-    webrtc::test::WriteVideoToFile(test_video, yuv_directory + "test.yuv",
+    webrtc::test::WriteVideoToFile(test_video,
+                                   JoinFilename(yuv_directory, "test.yuv"),
                                    /*fps=*/30);
   }