Add runtime tunables based on finch.
This CL introduces media::Tuneable, which creates a tuneable parameter
based on a finch field trial parameter. It caches the value to avoid
redundant string conversions, and also has handy helpers for types
that aren't supported by field trial params (base::TimeDelta).
Change-Id: I8b1a6ec3ab0d7f5e36f8ebd496ae2c44e8cd414b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2164227
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#792391}
diff --git a/media/renderers/renderer_impl.h b/media/renderers/renderer_impl.h
index f6603d3..ae226a7d 100644
--- a/media/renderers/renderer_impl.h
+++ b/media/renderers/renderer_impl.h
@@ -24,6 +24,7 @@
#include "media/base/media_export.h"
#include "media/base/pipeline_status.h"
#include "media/base/renderer.h"
+#include "media/base/tuneable.h"
#include "media/base/video_decoder_config.h"
#include "media/base/waiting.h"
#include "ui/gfx/geometry/size.h"
@@ -78,7 +79,7 @@
time_source_ = time_source;
}
void set_video_underflow_threshold_for_testing(base::TimeDelta threshold) {
- video_underflow_threshold_ = threshold;
+ video_underflow_threshold_.set_for_testing(threshold);
}
private:
@@ -252,7 +253,10 @@
// The amount of time to wait before declaring underflow if the video renderer
// runs out of data but the audio renderer still has enough.
- base::TimeDelta video_underflow_threshold_;
+ Tuneable<base::TimeDelta> video_underflow_threshold_ = {
+ "MediaVideoUnderflowThreshold", base::TimeDelta::FromMilliseconds(1000),
+ base::TimeDelta::FromMilliseconds(3000),
+ base::TimeDelta::FromMilliseconds(8000)};
// Lock used to protect access to the |restarting_audio_| flag and
// |restarting_audio_time_|.