Go to the documentation of this file.
15 #define MYTH_WIDTH_ALIGNMENT 64
16 #define MYTH_HEIGHT_ALIGNMENT 16
100 void ClearMetadata();
101 void ClearBufferToBlank();
106 static void CopyPlane(uint8_t* To,
int ToPitch,
const uint8_t* From,
int FromPitch,
107 int PlaneWidth,
int PlaneHeight);
109 static uint8_t* GetAlignedBuffer(
size_t Size);
110 static uint8_t* CreateBuffer(
VideoFrameType Type,
int Width,
int Height);
114 static MythDeintType ParseDeinterlacer(
const QString& Deinterlacer);
117 uint8_t* m_buffer {
nullptr };
120 int m_bitsPerPixel { 0 };
121 size_t m_bufferSize { 0 };
124 float m_aspect { -1.0F };
125 double m_frameRate { -1.0 };
126 long long m_frameNumber { 0 };
127 uint64_t m_frameCounter { 0 };
128 long long m_timecode { 0 };
129 int64_t m_displayTimecode { 0 };
130 std::array<uint8_t*,4> m_priv {
nullptr };
131 int m_interlaced { 0 };
132 bool m_topFieldFirst {
true };
133 bool m_interlacedReverse {
false };
134 bool m_newGOP {
false };
135 bool m_repeatPic {
false };
136 bool m_forceKey {
false };
137 bool m_dummy {
false };
138 bool m_pauseFrame {
false };
142 int m_swPixFmt { 0 };
143 bool m_directRendering {
true };
145 int m_colorspace { 1 };
146 int m_colorrange { 1 };
147 int m_colorprimaries { 1 };
148 int m_colortransfer { 1 };
149 int m_chromalocation { 1 };
150 bool m_colorshifted {
false };
151 bool m_alreadyDeinterlaced {
false };
152 int m_rotation { 0 };
158 bool m_deinterlaceInuse2x {
false };
263 if (Plane == 0)
return Height;
264 if (Plane < 3)
return Height >> 1;
278 if (Plane < 3)
return Height;
283 if (Plane == 0)
return Height;
284 if (Plane < 2)
return Height >> 1;
292 if (Plane == 0)
return Height;
305 if (Plane == 0)
return Width;
306 if (Plane < 3)
return (Width + 1) >> 1;
318 if (Plane == 0)
return Width << 1;
319 if (Plane < 3)
return Width;
327 if (Plane < 3)
return Width;
330 if (Plane < 2)
return Width;
334 if (Plane < 2)
return Width << 1;
365 if (Plane == 0)
return Width;
366 if (Plane < 3)
return (Width + 1) >> 1;
374 if (Plane < 3)
return Width;
379 if (Plane < 2)
return Width;
387 if (Plane == 0)
return Width;
463 return FormatIs420(Type) || FormatIs422(Type) || FormatIs444(Type) ||
464 FormatIsNV12(Type) || PackedFormat(Type);
static int GetPitchForPlane(VideoFrameType Type, int Width, uint Plane)
static bool PackedFormat(VideoFrameType Type)
static bool HardwareFramesFormat(VideoFrameType Type)
MythDeintType operator|(MythDeintType a, MythDeintType b)
static bool FormatIsRGB(VideoFrameType Type)
MythDeintType operator~(MythDeintType a)
std::array< int, 3 > FramePitches
static bool HardwareFormat(VideoFrameType Type)
std::array< int, 3 > FrameOffsets
static bool FormatIs422(VideoFrameType Type)
static int BitsPerPixel(VideoFrameType Type)
static bool YUVFormat(VideoFrameType Type)
std::vector< VideoFrameType > VideoFrameTypes
#define MYTH_WIDTH_ALIGNMENT
static int ColorDepth(int Format)
static int GetWidthForPlane(VideoFrameType Type, int Width, uint Plane)
MythDeintType operator&(MythDeintType a, MythDeintType b)
static bool FormatIs444(VideoFrameType Type)
static bool FormatIs420(VideoFrameType Type)
static int GetHeightForPlane(VideoFrameType Type, int Height, uint Plane)
static uint GetNumPlanes(VideoFrameType Type)
@ FMT_RGB32
endian dependent format, ARGB or BGRA
static bool FormatIsNV12(VideoFrameType Type)