11 #include "cores/VideoPlayer/Buffers/VideoBuffer.h" 12 #include "cores/VideoPlayer/DVDCodecs/Video/DVDVideoCodec.h" 13 #include "utils/DisplayInfo.h" 17 #include <libavutil/frame.h> 18 #include <libavutil/hwcontext_drm.h> 19 #include <libavutil/mastering_display_metadata.h> 26 enum hdmi_metadata_type
28 HDMI_STATIC_METADATA_TYPE1 = 0,
32 HDMI_EOTF_TRADITIONAL_GAMMA_SDR,
33 HDMI_EOTF_TRADITIONAL_GAMMA_HDR,
34 HDMI_EOTF_SMPTE_ST2084,
35 HDMI_EOTF_BT_2100_HLG,
38 KODI::UTILS::Colorimetry GetColorimetry(
const VideoPicture& picture);
39 std::string GetColorEncoding(
const VideoPicture& picture);
42 const AVMasteringDisplayMetadata* GetMasteringDisplayMetadata(
const VideoPicture& picture);
43 const AVContentLightMetadata* GetContentLightMetadata(
const VideoPicture& picture);
53 virtual void SetPictureParams(
const VideoPicture& picture) { m_picture.SetParams(picture); }
54 virtual const VideoPicture& GetPicture()
const {
return m_picture; }
55 virtual uint32_t GetWidth()
const {
return GetPicture().iWidth; }
56 virtual uint32_t GetHeight()
const {
return GetPicture().iHeight; }
58 virtual AVDRMFrameDescriptor* GetDescriptor()
const = 0;
59 virtual bool IsValid()
const {
return true; }
60 virtual bool AcquireDescriptor() {
return true; }
61 virtual void ReleaseDescriptor() {}
64 uint32_t m_handles[AV_DRM_MAX_PLANES] = {};
77 void SetRef(AVFrame* frame);
80 AVDRMFrameDescriptor* GetDescriptor()
const override 82 return reinterpret_cast<AVDRMFrameDescriptor*
>(m_pFrame->data[0]);
84 bool IsValid()
const override;
87 AVFrame* m_pFrame =
nullptr;
94 void Return(
int id)
override;
98 CCriticalSection m_critSection;
99 std::vector<CVideoBufferDRMPRIMEFFmpeg*> m_all;
100 std::deque<int> m_used;
101 std::deque<int> m_free;
Definition: VideoBuffer.h:85
Definition: VideoBuffer.h:51
Definition: VideoBufferDRMPRIME.h:90
Definition: VideoBufferDRMPRIME.h:72
Definition: DVDVideoCodec.h:36
Definition: VideoBufferDRMPRIME.h:47
Definition: VideoBufferDRMPRIME.cpp:20