1 // Copyright 2019 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_CLIENTS_MOJO_RENDERER_WRAPPER_H_
6 #define MEDIA_MOJO_CLIENTS_MOJO_RENDERER_WRAPPER_H_
10 #include "media/base/renderer.h"
11 #include "media/mojo/clients/mojo_renderer.h"
15 // Simple wrapper around a MojoRenderer.
16 // Provides a default behavior for forwarding all Renderer calls to a
17 // Renderer instance in a different process, through |mojo_renderer_|.
18 // Used as a base class to reduce boiler plate code for derived types, which can
19 // override only the methods they need to specialize.
20 class MojoRendererWrapper : public Renderer {
22 explicit MojoRendererWrapper(std::unique_ptr<MojoRenderer> mojo_renderer);
24 MojoRendererWrapper(const MojoRendererWrapper&) = delete;
25 MojoRendererWrapper& operator=(const MojoRendererWrapper&) = delete;
27 ~MojoRendererWrapper() override;
29 // Renderer implementation.
30 void Initialize(MediaResource* media_resource,
31 RendererClient* client,
32 PipelineStatusCallback init_cb) override;
33 void SetCdm(CdmContext* cdm_context, CdmAttachedCB cdm_attached_cb) override;
34 void SetLatencyHint(absl::optional<base::TimeDelta> latency_hint) override;
35 void Flush(base::OnceClosure flush_cb) override;
36 #if defined(TIZEN_MULTIMEDIA)
37 void Seek(base::TimeDelta time, base::OnceClosure seek_cb) override;
38 void Suspend() override;
39 void ToggleFullscreenMode(bool is_fullscreen,
40 ToggledFullscreenCB cb) override;
42 void StartPlayingFrom(base::TimeDelta time) override;
43 void SetPlaybackRate(double playback_rate) override;
44 void SetVolume(float volume) override;
46 #if defined(TIZEN_VIDEO_HOLE)
47 void SetVideoHole(bool is_video_hole) override;
48 void SetMediaGeometry(const gfx::RectF& rect) override;
51 #if BUILDFLAG(IS_TIZEN_TV)
52 void SetContentMimeType(const std::string& mime_type) override;
53 void SetParentalRatingResult(bool is_pass) override;
56 base::TimeDelta GetMediaTime() override;
59 std::unique_ptr<MojoRenderer> mojo_renderer_;
64 #endif // MEDIA_MOJO_CLIENTS_MOJO_RENDERER_WRAPPER_H_