Always use at least 2 frame threads with dav1d.

Shows significant performance regression on even low core CrOS devices
otherwise on the following test case:
http://crosvideo2.appspot.com/?codec=av1&resolution=720

ARM 4 cores: 3%->17% dropped frame increase.
Intel Skylake 2 cores: 0.5% -> 3% dropped frame increase.

BUG=954659,957511
TEST=none
TBR=hiroh

Change-Id: I3073ca88548e9183dda5ce4d451c5c802a592213
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1602852
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#658233}
diff --git a/media/filters/dav1d_video_decoder.cc b/media/filters/dav1d_video_decoder.cc
index b64d9d0..b533e99 100644
--- a/media/filters/dav1d_video_decoder.cc
+++ b/media/filters/dav1d_video_decoder.cc
@@ -194,10 +194,13 @@
   //
   // We only want 1 frame thread in low delay mode, since otherwise we'll
   // require at least two buffers before the first frame can be output.
+  //
+  // 2 frame threads seems desirable even on low core machines:
+  // https://crbug.com/957511
   if (low_delay)
     s.n_frame_threads = 1;
   else if (s.n_frame_threads > max_threads - s.n_tile_threads)
-    s.n_frame_threads = std::max(1, max_threads - s.n_tile_threads);
+    s.n_frame_threads = std::max(2, max_threads - s.n_tile_threads);
 
   // Route dav1d internal logs through Chrome's DLOG system.
   s.logger = {nullptr, &LogDav1dMessage};