1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "media/mojo/services/media_foundation_gpu_info_monitor.h"
10 MediaFoundationGpuInfoMonitor* MediaFoundationGpuInfoMonitor::GetInstance() {
11 static auto* instance = new MediaFoundationGpuInfoMonitor();
15 MediaFoundationGpuInfoMonitor::MediaFoundationGpuInfoMonitor() = default;
16 MediaFoundationGpuInfoMonitor::~MediaFoundationGpuInfoMonitor() = default;
18 void MediaFoundationGpuInfoMonitor::UpdateGpuInfo(
19 const gpu::GPUInfo& gpu_info) {
20 auto new_gpu_luid = gpu_info.active_gpu().luid;
21 if (new_gpu_luid != gpu_luid_) {
22 gpu_luid_ = new_gpu_luid;
23 luid_observers_.Notify(new_gpu_luid);
27 base::CallbackListSubscription MediaFoundationGpuInfoMonitor::AddLuidObserver(
28 MediaFoundationGpuInfoMonitor::LuidObservers::CallbackType cb) {
29 return luid_observers_.Add(std::move(cb));