// Copyright 2017 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_CLIENTS_MOJO_VIDEO_ENCODE_ACCELERATOR_H_ #define MEDIA_MOJO_CLIENTS_MOJO_VIDEO_ENCODE_ACCELERATOR_H_ #include <stdint.h> #include <vector> #include "base/sequence_checker.h" #include "gpu/config/gpu_info.h" #include "media/mojo/mojom/video_encode_accelerator.mojom.h" #include "media/video/video_encode_accelerator.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/remote.h" namespace media { class MediaLog; class VideoFrame; } // namespace media namespace media { // This class is a renderer-side host bridge from VideoEncodeAccelerator to a // remote media::mojom::VideoEncodeAccelerator passed on ctor and held as // |vea_|. An internal mojo::VEA::Client acts as the remote's mojo VEA client, // trampolining methods to the media::VEA::Client passed on Initialize(). For // proper operation this class should be managed in a std::unique_ptr that calls // Destroy() upon destruction. class MojoVideoEncodeAccelerator : public VideoEncodeAccelerator { … }; } // namespace media #endif // MEDIA_MOJO_CLIENTS_MOJO_VIDEO_ENCODE_ACCELERATOR_H_