kodi
VideoLayerBridgeDRMPRIME.h
1 /*
2  * Copyright (C) 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/Interface/StreamInfo.h"
12 #include "windowing/gbm/VideoLayerBridge.h"
13 
14 #include <memory>
15 
16 #include <drm_mode.h>
17 
18 namespace KODI
19 {
20 namespace WINDOWING
21 {
22 namespace GBM
23 {
24 class CDRMAtomic;
25 }
26 } // namespace WINDOWING
27 } // namespace KODI
28 
30 
32 {
33 public:
34  CVideoLayerBridgeDRMPRIME(std::shared_ptr<KODI::WINDOWING::GBM::CDRMAtomic> drm);
35  ~CVideoLayerBridgeDRMPRIME() override;
36  void Disable() override;
37 
38  virtual void Configure(CVideoBufferDRMPRIME* buffer);
39  virtual void SetVideoPlane(CVideoBufferDRMPRIME* buffer, const CRect& destRect);
40  virtual void UpdateVideoPlane();
41 
42 protected:
43  std::shared_ptr<KODI::WINDOWING::GBM::CDRMAtomic> m_DRM;
44 
45 private:
46  void Acquire(CVideoBufferDRMPRIME* buffer);
47  void Release(CVideoBufferDRMPRIME* buffer);
48  bool Map(CVideoBufferDRMPRIME* buffer);
49  void Unmap(CVideoBufferDRMPRIME* buffer);
50 
51  CVideoBufferDRMPRIME* m_buffer = nullptr;
52  CVideoBufferDRMPRIME* m_prev_buffer = nullptr;
53 };
Definition: AudioDecoder.h:18
Definition: VideoLayerBridgeDRMPRIME.h:31
Definition: VideoLayerBridge.h:18
Definition: VideoBufferDRMPRIME.h:47