102 void ClearMetadata();
103 void ClearBufferToBlank();
108 static void CopyPlane(uint8_t* To,
int ToPitch,
const uint8_t* From,
int FromPitch,
109 int PlaneWidth,
int PlaneHeight);
111 static uint8_t* GetAlignedBuffer(
size_t Size);
112 static uint8_t* CreateBuffer(
VideoFrameType Type,
int Width,
int Height);
116 static MythDeintType ParseDeinterlacer(
const QString& Deinterlacer);
119 uint8_t* m_buffer {
nullptr };
122 int m_bitsPerPixel { 0 };
123 size_t m_bufferSize { 0 };
126 float m_aspect { -1.0F };
127 double m_frameRate { -1.0 };
128 long long m_frameNumber { 0 };
129 uint64_t m_frameCounter { 0 };
130 std::chrono::milliseconds m_timecode { 0ms };
131 std::chrono::milliseconds m_displayTimecode { 0ms };
132 std::array<uint8_t*,4> m_priv {
nullptr };
133 bool m_interlaced {
false };
134 bool m_topFieldFirst {
true };
135 bool m_interlacedReverse {
false };
136 bool m_newGOP {
false };
137 bool m_repeatPic {
false };
138 bool m_forceKey {
false };
139 bool m_dummy {
false };
140 bool m_pauseFrame {
false };
144 int m_swPixFmt { 0 };
145 bool m_directRendering {
true };
147 int m_colorspace { 1 };
148 int m_colorrange { 1 };
149 int m_colorprimaries { 1 };
150 int m_colortransfer { 1 };
151 int m_chromalocation { 1 };
152 bool m_colorshifted {
false };
153 bool m_alreadyDeinterlaced {
false };
154 int m_rotation { 0 };
161 bool m_deinterlaceInuse2x {
false };
165 bool m_displayed {
false };
267 if (Plane == 0)
return Height;
268 if (Plane < 3)
return Height >> 1;
282 if (Plane < 3)
return Height;
287 if (Plane == 0)
return Height;
288 if (Plane < 2)
return Height >> 1;
296 if (Plane == 0)
return Height;
309 if (Plane == 0)
return Width;
310 if (Plane < 3)
return (Width + 1) >> 1;
322 if (Plane == 0)
return Width << 1;
323 if (Plane < 3)
return Width;
331 if (Plane < 3)
return Width;
334 if (Plane < 2)
return Width;
338 if (Plane < 2)
return Width << 1;
369 if (Plane == 0)
return Width;
370 if (Plane < 3)
return (Width + 1) >> 1;
378 if (Plane < 3)
return Width;
383 if (Plane < 2)
return Width;
391 if (Plane == 0)
return Width;
467 return FormatIs420(Type) || FormatIs422(Type) || FormatIs444(Type) ||
468 FormatIsNV12(Type) || PackedFormat(Type);
static bool PackedFormat(VideoFrameType Type)
static bool FormatIs422(VideoFrameType Type)
static uint GetNumPlanes(VideoFrameType Type)
static int GetPitchForPlane(VideoFrameType Type, int Width, uint Plane)
static bool FormatIsNV12(VideoFrameType Type)
static bool FormatIs444(VideoFrameType Type)
static bool FormatIs420(VideoFrameType Type)
static int GetHeightForPlane(VideoFrameType Type, int Height, uint Plane)
static bool FormatIsRGB(VideoFrameType Type)
static bool HardwareFramesFormat(VideoFrameType Type)
static bool YUVFormat(VideoFrameType Type)
static int ColorDepth(int Format)
static bool HardwareFormat(VideoFrameType Type)
static int GetWidthForPlane(VideoFrameType Type, int Width, uint Plane)
static int BitsPerPixel(VideoFrameType Type)
std::array< int, 3 > FrameOffsets
MythDeintType operator|(MythDeintType a, MythDeintType b)
static constexpr uint8_t MYTH_WIDTH_ALIGNMENT
std::vector< VideoFrameType > VideoFrameTypes
MythDeintType operator~(MythDeintType a)
@ FMT_RGB32
endian dependent format, ARGB or BGRA
MythDeintType operator&(MythDeintType a, MythDeintType b)
std::shared_ptr< class MythHDRVideoMetadata > MythHDRVideoPtr
static constexpr uint8_t MYTH_HEIGHT_ALIGNMENT
std::array< int, 3 > FramePitches