kodi
RendererMediaCodecSurface.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "cores/VideoPlayer/VideoRenderers/BaseRenderer.h"
12 
14 
16 {
17 public:
19  ~CRendererMediaCodecSurface() override;
20 
21  static CBaseRenderer* Create(CVideoBuffer *buffer);
22  static bool Register();
23 
24  bool RenderCapture(int index, CRenderCapture* capture) override;
25  void AddVideoPicture(const VideoPicture& picture, int index) override;
26  void ReleaseBuffer(int idx) override;
27  bool Configure(const VideoPicture& picture, float fps, unsigned int orientation) override;
28  bool IsConfigured() override { return m_bConfigured; }
29  bool ConfigChanged(const VideoPicture& picture) override { return false; }
30  CRenderInfo GetRenderInfo() override;
31  void UnInit() override{};
32  void Update() override{};
33  void RenderUpdate(int index, int index2, bool clear, unsigned int flags, unsigned int alpha) override;
34  bool SupportsMultiPassRendering() override { return false; }
35 
36  // Player functions
37  bool IsGuiLayer() override { return false; }
38 
39  // Feature support
40  bool Supports(ESCALINGMETHOD method) const override { return false; }
41  bool Supports(ERENDERFEATURE feature) const override;
42 
43 protected:
44  void ReorderDrawPoints() override;
45 
46 private:
47  void Reset();
48  void ReleaseVideoBuffer(int idx, bool render);
49 
50  bool m_bConfigured = false;
51  CRect m_surfDestRect;
52  int m_lastIndex = -1;
53 
54  struct BUFFER
55  {
56  CVideoBuffer *videoBuffer = nullptr;
57  } m_buffers[4];
58 };
Definition: VideoBuffer.h:85
Definition: RenderCapture.h:23
Definition: RenderInfo.h:19
Definition: DVDVideoCodecAndroidMediaCodec.h:54
Definition: DVDVideoCodec.h:36
Definition: BaseRenderer.h:48
Definition: RendererMediaCodecSurface.h:15