kodi
DRMEncoder.h
1 /*
2  * Copyright (C) 2005-2020 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 "DRMObject.h"
12 
13 namespace KODI
14 {
15 namespace WINDOWING
16 {
17 namespace GBM
18 {
19 
20 class CDRMEncoder : public CDRMObject
21 {
22 public:
23  explicit CDRMEncoder(int fd, uint32_t encoder);
24  CDRMEncoder(const CDRMEncoder&) = delete;
25  CDRMEncoder& operator=(const CDRMEncoder&) = delete;
26  ~CDRMEncoder() = default;
27 
28  uint32_t GetEncoderId() const { return m_encoder->encoder_id; }
29  uint32_t GetCrtcId() const { return m_encoder->crtc_id; }
30  uint32_t GetPossibleCrtcs() const { return m_encoder->possible_crtcs; }
31 
32 private:
33  struct DrmModeEncoderDeleter
34  {
35  void operator()(drmModeEncoder* p) { drmModeFreeEncoder(p); }
36  };
37 
38  std::unique_ptr<drmModeEncoder, DrmModeEncoderDeleter> m_encoder;
39 };
40 
41 } // namespace GBM
42 } // namespace WINDOWING
43 } // namespace KODI
Definition: DRMObject.h:27
Definition: AudioDecoder.h:18
Definition: DRMEncoder.h:20