blob: a3e1e9e820e530cdf9eff9fb7acc0d4659a157c7 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_MEDIA_EFFECTS_MEDIA_EFFECTS_MANAGER_BINDER_H_
#define CHROME_BROWSER_MEDIA_EFFECTS_MEDIA_EFFECTS_MANAGER_BINDER_H_
#include "components/media_effects/video_effects_manager_impl.h"
#include "content/public/browser/browser_context.h"
#include "media/capture/mojom/video_effects_manager.mojom-forward.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "services/video_effects/public/cpp/buildflags.h"
#include "services/video_effects/public/mojom/video_effects_processor.mojom-forward.h"
static_assert(BUILDFLAG(ENABLE_VIDEO_EFFECTS),
"Requires enable_video_effects to be true");
namespace media_effects {
void BindReadonlyVideoEffectsManager(
const std::string& device_id,
content::BrowserContext* browser_context,
mojo::PendingReceiver<media::mojom::ReadonlyVideoEffectsManager>
readonly_video_effects_manager);
// Must be called on UI thread.
base::WeakPtr<VideoEffectsManagerImpl> GetOrCreateVideoEffectsManager(
const std::string& device_id,
content::BrowserContext* browser_context);
void BindVideoEffectsProcessor(
const std::string& device_id,
content::BrowserContext* browser_context,
mojo::PendingReceiver<video_effects::mojom::VideoEffectsProcessor>
video_effects_processor);
} // namespace media_effects
#endif // CHROME_BROWSER_MEDIA_EFFECTS_MEDIA_EFFECTS_MANAGER_BINDER_H_