1 // Copyright 2014 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 #ifndef MEDIA_MOJO_SERVICES_TEST_MOJO_MEDIA_CLIENT_H_
6 #define MEDIA_MOJO_SERVICES_TEST_MOJO_MEDIA_CLIENT_H_
11 #include "base/memory/scoped_refptr.h"
12 #include "base/task/single_thread_task_runner.h"
13 #include "media/media_buildflags.h"
14 #include "media/mojo/services/mojo_media_client.h"
19 class AudioRendererSink;
21 class RendererFactory;
22 class VideoRendererSink;
24 // Test MojoMediaClient for MediaService.
25 class TestMojoMediaClient final : public MojoMediaClient {
27 TestMojoMediaClient();
29 TestMojoMediaClient(const TestMojoMediaClient&) = delete;
30 TestMojoMediaClient& operator=(const TestMojoMediaClient&) = delete;
32 ~TestMojoMediaClient() final;
34 // MojoMediaClient implementation.
35 void Initialize() final;
36 std::unique_ptr<Renderer> CreateRenderer(
37 mojom::FrameInterfaceFactory* frame_interfaces,
38 scoped_refptr<base::SingleThreadTaskRunner> task_runner,
40 const std::string& audio_device_id) final;
41 #if BUILDFLAG(ENABLE_CAST_RENDERER)
42 std::unique_ptr<Renderer> CreateCastRenderer(
43 mojom::FrameInterfaceFactory* frame_interfaces,
44 scoped_refptr<base::SingleThreadTaskRunner> task_runner,
46 const base::UnguessableToken& overlay_plane_id) final;
47 #endif // BUILDFLAG(ENABLE_CAST_RENDERER)
48 std::unique_ptr<CdmFactory> CreateCdmFactory(
49 mojom::FrameInterfaceFactory* /* frame_interfaces */) final;
52 std::unique_ptr<AudioManager> audio_manager_;
53 std::unique_ptr<DecoderFactory> decoder_factory_;
54 std::unique_ptr<RendererFactory> renderer_factory_;
55 std::vector<scoped_refptr<AudioRendererSink>> audio_sinks_;
56 std::vector<std::unique_ptr<VideoRendererSink>> video_sinks_;
61 #endif // MEDIA_MOJO_SERVICES_TEST_MOJO_MEDIA_CLIENT_H_