// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_MOJO_SERVICES_STABLE_VIDEO_DECODER_FACTORY_SERVICE_H_ #define MEDIA_MOJO_SERVICES_STABLE_VIDEO_DECODER_FACTORY_SERVICE_H_ #include "base/functional/callback.h" #include "base/sequence_checker.h" #include "media/mojo/mojom/stable/stable_video_decoder.mojom.h" #include "media/mojo/services/media_mojo_export.h" #include "media/mojo/services/mojo_cdm_service_context.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/unique_receiver_set.h" namespace media { namespace mojom { class VideoDecoder; } // namespace mojom class MojoMediaClient; class MailboxFrameRegistry; // A StableVideoDecoderFactoryService allows a browser process to create // StableVideoDecoders. It's intended to live inside a video decoder process (a // utility process) and there should only be one such instance per process // because one video decoder process corresponds to a client that handles one // origin. For example, all the StableVideoDecoders for a video conference call // can live in the same process (and thus be created by the same // StableVideoDecoderFactoryService). However, the StableVideoDecoder for a // YouTube video should live in a process separate than a StableVideoDecoder for // a Vimeo video. class MEDIA_MOJO_EXPORT StableVideoDecoderFactoryService : public stable::mojom::StableVideoDecoderFactory { … }; } // namespace media #endif // MEDIA_MOJO_SERVICES_STABLE_VIDEO_DECODER_FACTORY_SERVICE_H_