[M120 Migration][MM][CAPI] Fix the logic for media using capi player.
[platform/framework/web/chromium-efl.git] / media / mojo / services / test_mojo_media_client.h
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.
4
5 #ifndef MEDIA_MOJO_SERVICES_TEST_MOJO_MEDIA_CLIENT_H_
6 #define MEDIA_MOJO_SERVICES_TEST_MOJO_MEDIA_CLIENT_H_
7
8 #include <memory>
9 #include <vector>
10
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"
15
16 namespace media {
17
18 class AudioManager;
19 class AudioRendererSink;
20 class DecoderFactory;
21 class RendererFactory;
22 class VideoRendererSink;
23
24 // Test MojoMediaClient for MediaService.
25 class TestMojoMediaClient final : public MojoMediaClient {
26  public:
27   TestMojoMediaClient();
28
29   TestMojoMediaClient(const TestMojoMediaClient&) = delete;
30   TestMojoMediaClient& operator=(const TestMojoMediaClient&) = delete;
31
32   ~TestMojoMediaClient() final;
33
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,
39       MediaLog* media_log,
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,
45       MediaLog* media_log,
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;
50
51  private:
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_;
57 };
58
59 }  // namespace media
60
61 #endif  // MEDIA_MOJO_SERVICES_TEST_MOJO_MEDIA_CLIENT_H_