diff options
Diffstat (limited to 'chromium/media/base/android/media_task_runner.cc')
-rw-r--r-- | chromium/media/base/android/media_task_runner.cc | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/chromium/media/base/android/media_task_runner.cc b/chromium/media/base/android/media_task_runner.cc new file mode 100644 index 00000000000..a52919cde30 --- /dev/null +++ b/chromium/media/base/android/media_task_runner.cc @@ -0,0 +1,43 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "media/base/android/media_task_runner.h" + +#include "base/command_line.h" +#include "base/lazy_instance.h" +#include "base/metrics/field_trial.h" +#include "base/strings/string_util.h" +#include "base/threading/thread.h" +#include "media/base/media_switches.h" + +namespace media { + +class MediaThread : public base::Thread { + public: + MediaThread() : base::Thread("BrowserMediaThread") { + Start(); + } +}; + +// Create media thread +base::LazyInstance<MediaThread>::Leaky g_media_thread = + LAZY_INSTANCE_INITIALIZER; + +scoped_refptr<base::SingleThreadTaskRunner> GetMediaTaskRunner() { + return g_media_thread.Pointer()->task_runner(); +} + +bool UseMediaThreadForMediaPlayback() { + const std::string group_name = + base::FieldTrialList::FindFullName("EnableMediaThreadForMediaPlayback"); + + if (base::CommandLine::ForCurrentProcess()-> + HasSwitch(switches::kEnableMediaThreadForMediaPlayback)) { + return true; + } + + return base::StartsWith(group_name, "Enabled", base::CompareCase::SENSITIVE); +} + +} // namespace media |