MythTV
master
|
Go to the source code of this file.
Classes | |
struct | VideoFrame |
class | MythUSWCCopy |
Macros | |
#define | MYTH_WIDTH_ALIGNMENT 64 |
#define | MYTH_HEIGHT_ALIGNMENT 16 |
Enumerations | |
enum | VideoFrameType { FMT_NONE = -1, FMT_YV12 = 0, FMT_YUV420P9, FMT_YUV420P10, FMT_YUV420P12, FMT_YUV420P14, FMT_YUV420P16, FMT_RGB24, FMT_BGRA, FMT_RGB32, FMT_ARGB32, FMT_RGBA32, FMT_YUV422P, FMT_YUV422P9, FMT_YUV422P10, FMT_YUV422P12, FMT_YUV422P14, FMT_YUV422P16, FMT_YUV444P, FMT_YUV444P9, FMT_YUV444P10, FMT_YUV444P12, FMT_YUV444P14, FMT_YUV444P16, FMT_YUY2, FMT_NV12, FMT_P010, FMT_P016, FMT_VDPAU, FMT_VAAPI, FMT_DXVA2, FMT_MMAL, FMT_MEDIACODEC, FMT_VTB, FMT_NVDEC, FMT_DRMPRIME } |
enum | MythDeintType { DEINT_NONE = 0x0000, DEINT_BASIC = 0x0001, DEINT_MEDIUM = 0x0002, DEINT_HIGH = 0x0004, DEINT_CPU = 0x0010, DEINT_SHADER = 0x0020, DEINT_DRIVER = 0x0040, DEINT_ALL = 0x0077 } |
enum | uswcState { uswcState::Detect, uswcState::Use_SSE, uswcState::Use_SW } |
Functions | |
const char * | format_description (VideoFrameType Type) |
static int | format_is_hw (VideoFrameType Type) |
static int | format_is_hwframes (VideoFrameType Type) |
static int | format_is_420 (VideoFrameType Type) |
static int | format_is_422 (VideoFrameType Type) |
static int | format_is_444 (VideoFrameType Type) |
static int | format_is_nv12 (VideoFrameType Type) |
static int | format_is_packed (VideoFrameType Type) |
static int | format_is_yuv (VideoFrameType Type) |
MythDeintType | operator| (MythDeintType a, MythDeintType b) |
MythDeintType | operator& (MythDeintType a, MythDeintType b) |
MythDeintType | operator~ (MythDeintType a) |
int MTV_PUBLIC | ColorDepth (int Format) |
Return the color depth for the given MythTV frame format. More... | |
MythDeintType MTV_PUBLIC | GetSingleRateOption (const VideoFrame *Frame, MythDeintType Type, MythDeintType Override=DEINT_NONE) |
MythDeintType MTV_PUBLIC | GetDoubleRateOption (const VideoFrame *Frame, MythDeintType Type, MythDeintType Override=DEINT_NONE) |
MythDeintType MTV_PUBLIC | GetDeinterlacer (MythDeintType Option) |
void MTV_PUBLIC | framecopy (VideoFrame *dst, const VideoFrame *src, bool useSSE=true) |
static void | init (VideoFrame *vf, VideoFrameType _codec, unsigned char *_buf, int _width, int _height, int _size, const int *p=nullptr, const int *o=nullptr, float _aspect=-1.0F, double _rate=-1.0F, int _aligned=MYTH_WIDTH_ALIGNMENT) |
static void | clear (VideoFrame *vf) |
static int | bitsperpixel (VideoFrameType type) |
static int | pitch_for_plane (VideoFrameType Type, int Width, uint Plane) |
static int | height_for_plane (VideoFrameType Type, int Height, uint Plane) |
static int | width_for_plane (VideoFrameType Type, int Width, uint Plane) |
static void | copyplane (uint8_t *dst, int dst_pitch, const uint8_t *src, int src_pitch, int width, int height) |
static void | copy (VideoFrame *dst, const VideoFrame *src) |
copy: copy one frame into another copy only works with the following assumptions: frames are of the same resolution destination frame is in YV12 format source frame is either YV12 or NV12 format More... | |
static uint | planes (VideoFrameType Type) |
static size_t | GetBufferSize (VideoFrameType Type, int Width, int Height, int Aligned=MYTH_WIDTH_ALIGNMENT) |
static unsigned char * | GetAlignedBuffer (size_t Size) |
static unsigned char * | GetAlignedBufferZero (size_t Size) |
static unsigned char * | CreateBuffer (VideoFrameType Type, int Width, int Height) |
static unsigned char * | CreateBufferZero (VideoFrameType Type, int Width, int Height) |
static void | copybuffer (VideoFrame *dst, uint8_t *buffer, int pitch, VideoFrameType type=FMT_YV12) |
static void | copybuffer (uint8_t *dstbuffer, const VideoFrame *src, int pitch=0, VideoFrameType type=FMT_YV12) |
#define MYTH_WIDTH_ALIGNMENT 64 |
Definition at line 21 of file mythframe.h.
#define MYTH_HEIGHT_ALIGNMENT 16 |
Definition at line 22 of file mythframe.h.
enum VideoFrameType |
Definition at line 23 of file mythframe.h.
enum MythDeintType |
Enumerator | |
---|---|
DEINT_NONE | |
DEINT_BASIC | |
DEINT_MEDIUM | |
DEINT_HIGH | |
DEINT_CPU | |
DEINT_SHADER | |
DEINT_DRIVER | |
DEINT_ALL |
Definition at line 120 of file mythframe.h.
|
strong |
Enumerator | |
---|---|
Detect | |
Use_SSE | |
Use_SW |
Definition at line 191 of file mythframe.h.
const char* format_description | ( | VideoFrameType | Type | ) |
Definition at line 33 of file mythframe.cpp.
Referenced by MythVTBSurfaceInterop::Acquire(), MythOpenGLVideo::AddDeinterlacer(), VideoBuffers::CreateBuffers(), DetectLetterbox::Detect(), MythDeinterlacer::Filter(), MythOpenGLInterop::GetInteropType(), MythNVDECContext::NVDECCheck(), VideoBuffers::ReinitBuffer(), MythOpenGLVideo::SetupFrameFormat(), VideoColourSpace::UpdateColourSpace(), MythDRMPRIMEInterop::VerifyBuffer(), and MythMMALInterop::VerifyBuffer().
|
inlinestatic |
Definition at line 72 of file mythframe.h.
Referenced by VideoBuffers::CreateBuffers(), MythVideoTexture::CreateTextures(), MythVideoOutputOpenGL::DoneDisplayingFrame(), MythOpenGLVideo::GetProfile(), MythOpenGLVideo::LoadTextures(), MythVideoOutputOpenGL::ProcessFrame(), MythOpenGLVideo::ProcessFrame(), VideoBuffers::ReinitBuffer(), VideoBuffers::ReleaseDecoderResources(), MythOpenGLInterop::Retrieve(), MythOpenGLVideo::SetupFrameFormat(), MythOpenGLVideo::TypeToProfile(), VideoColourSpace::UpdateColourSpace(), and MythVideoOutputOpenGL::UpdatePauseFrame().
|
inlinestatic |
Definition at line 80 of file mythframe.h.
Referenced by MythOpenGLVideo::PrepareFrame(), and VideoBuffers::ReleaseDecoderResources().
|
inlinestatic |
Definition at line 85 of file mythframe.h.
Referenced by clear(), MythOpenGLVideo::CreateVideoShader(), DetectLetterbox::Detect(), format_is_yuv(), MythNVDECContext::GetSupportedCodec(), and init().
|
inlinestatic |
Definition at line 91 of file mythframe.h.
Referenced by clear(), MythOpenGLVideo::CreateVideoShader(), format_is_yuv(), MythNVDECContext::GetSupportedCodec(), and init().
|
inlinestatic |
Definition at line 97 of file mythframe.h.
Referenced by clear(), MythOpenGLVideo::CreateVideoShader(), format_is_yuv(), MythNVDECContext::GetSupportedCodec(), and init().
|
inlinestatic |
Definition at line 104 of file mythframe.h.
Referenced by clear(), MythOpenGLVideo::CreateVideoShader(), MythDeinterlacer::Filter(), format_is_yuv(), and init().
|
inlinestatic |
Definition at line 109 of file mythframe.h.
Referenced by format_is_yuv().
|
inlinestatic |
Definition at line 114 of file mythframe.h.
Referenced by MythDRMPRIMEInterop::Acquire(), MythOpenGLVideo::CreateVideoShader(), MythDeinterlacer::Filter(), MythOpenGLVideo::PrepareFrame(), MythOpenGLVideo::ProcessFrame(), and VideoColourSpace::UpdateColourSpace().
|
inline |
Definition at line 132 of file mythframe.h.
|
inline |
Definition at line 133 of file mythframe.h.
|
inline |
Definition at line 134 of file mythframe.h.
int MTV_PUBLIC ColorDepth | ( | int | Format | ) |
Return the color depth for the given MythTV frame format.
Definition at line 815 of file mythframe.cpp.
Referenced by MythNVDECInterop::Acquire(), clear(), DetectLetterbox::Detect(), MythNVDECContext::GetSupportedCodec(), MythOpenGLVideo::PrepareFrame(), and VideoColourSpace::UpdateColourSpace().
MythDeintType MTV_PUBLIC GetSingleRateOption | ( | const VideoFrame * | Frame, |
MythDeintType | Type, | ||
MythDeintType | Override = DEINT_NONE |
||
) |
Definition at line 841 of file mythframe.cpp.
Referenced by MythVAAPIInteropDRM::Acquire(), MythDRMPRIMEInterop::Acquire(), MythMMALInterop::Acquire(), MythNVDECInterop::Acquire(), MythVDPAUInterop::Acquire(), MythVTBSurfaceInterop::Acquire(), MythOpenGLVideo::AddDeinterlacer(), MythVAAPIInterop::Deinterlace(), MythDeinterlacer::Filter(), MythVAAPIInteropGLX::GetFlagsForFrame(), and MythVAAPIContext::PostProcessFrame().
MythDeintType MTV_PUBLIC GetDoubleRateOption | ( | const VideoFrame * | Frame, |
MythDeintType | Type, | ||
MythDeintType | Override = DEINT_NONE |
||
) |
Definition at line 854 of file mythframe.cpp.
Referenced by MythVAAPIInteropDRM::Acquire(), MythDRMPRIMEInterop::Acquire(), MythMMALInterop::Acquire(), MythNVDECInterop::Acquire(), MythVDPAUInterop::Acquire(), MythVTBSurfaceInterop::Acquire(), MythOpenGLVideo::AddDeinterlacer(), MythPlayer::AVSync(), MythVAAPIInterop::Deinterlace(), MythDeinterlacer::Filter(), MythVAAPIInteropGLX::GetFlagsForFrame(), MythVAAPIContext::PostProcessFrame(), and VideoPerformanceTest::Test().
MythDeintType MTV_PUBLIC GetDeinterlacer | ( | MythDeintType | Option | ) |
Definition at line 867 of file mythframe.cpp.
Referenced by DeinterlacerName(), GetDoubleRateOption(), and GetSingleRateOption().
void MTV_PUBLIC framecopy | ( | VideoFrame * | dst, |
const VideoFrame * | src, | ||
bool | useSSE = true |
||
) |
Definition at line 329 of file mythframe.cpp.
Referenced by copy().
|
inlinestatic |
Definition at line 230 of file mythframe.h.
Referenced by copybuffer(), VideoBuffers::CreateBuffer(), VideoBuffers::CreateBuffers(), MythVideoOutputNull::CreatePauseFrame(), VideoOutputD3D::CreatePauseFrame(), NetSearch::DoSearch(), NuppelVideoRecorder::doWriteThread(), MythAVCopy::FillFrame(), VideoBuffers::ReinitBuffer(), MFileInfo::setFile(), MythVAAPIInteropDRM::TestPrimeInterop(), and Transcode::TranscodeFile().
|
inlinestatic |
Definition at line 482 of file mythframe.h.
|
inlinestatic |
Definition at line 611 of file mythframe.h.
Referenced by GetBufferSize(), init(), and pitch_for_plane().
|
inlinestatic |
Definition at line 342 of file mythframe.h.
Referenced by MythDeinterlacer::Filter(), MythV4L2M2MContext::GetBuffer(), MythMMALContext::GetBuffer(), and init().
|
inlinestatic |
Definition at line 437 of file mythframe.h.
Referenced by MythMMALInterop::Acquire(), clear(), MythDeinterlacer::Filter(), MythMMALContext::GetBuffer(), and MythV4L2M2MContext::GetBuffer().
|
inlinestatic |
Definition at line 392 of file mythframe.h.
Referenced by MythMMALInterop::Acquire().
|
inlinestatic |
Definition at line 537 of file mythframe.h.
Referenced by MythUSWCCopy::copy(), MythDeinterlacer::Filter(), framecopy(), MythV4L2M2MContext::GetBuffer(), MythMMALContext::GetBuffer(), MythVideoTexture::NV12ToNV12(), and MythVideoTexture::YV12ToYV12().
|
inlinestatic |
copy: copy one frame into another copy only works with the following assumptions: frames are of the same resolution destination frame is in YV12 format source frame is either YV12 or NV12 format
Definition at line 562 of file mythframe.h.
Referenced by copybuffer().
|
inlinestatic |
Definition at line 567 of file mythframe.h.
Referenced by MythVTBInterop::Acquire(), MythMMALInterop::Acquire(), MythVTBSurfaceInterop::Acquire(), MythVAAPIInteropDRM::AcquireVAAPI(), MythOpenGLVideo::AddDeinterlacer(), RTjpeg::Compress(), RTjpeg::compress8(), RTjpeg::compressYUV420(), RTjpeg::compressYUV422(), MythVideoTexture::CreateHardwareTextures(), MythVideoTexture::CreateSoftwareTextures(), MythOpenGLVideo::CreateVideoShader(), RTjpeg::Decompress(), RTjpeg::decompress8(), RTjpeg::decompressYUV420(), RTjpeg::decompressYUV422(), MythDeinterlacer::Filter(), get_avf_buffer(), MythMMALContext::GetBuffer(), MythV4L2M2MContext::GetBuffer(), RTjpeg::mcompress8(), RTjpeg::mcompressYUV420(), RTjpeg::mcompressYUV422(), MythCodecContext::RetrieveHWFrame(), MythVideoTexture::UpdateTextures(), and NuppelVideoRecorder::WriteVideo().
|
inlinestatic |
Definition at line 655 of file mythframe.h.
Referenced by AVPictureFill(), CreateBuffer(), VideoBuffers::CreateBuffers(), CreateBufferZero(), NuppelVideoRecorder::InitBuffers(), VideoBuffers::ReinitBuffer(), and Transcode::TranscodeFile().
|
inlinestatic |
Definition at line 676 of file mythframe.h.
Referenced by CreateBuffer(), VideoBuffers::CreateBuffers(), VideoBuffers::ReinitBuffer(), and Transcode::TranscodeFile().
|
inlinestatic |
Definition at line 681 of file mythframe.h.
Referenced by MythVideoTexture::CreateBuffer(), and CreateBufferZero().
|
inlinestatic |
Definition at line 686 of file mythframe.h.
Referenced by MythAVCopy::Copy(), and MythPlayer::GetScreenGrabAtFrame().
|
inlinestatic |
Definition at line 692 of file mythframe.h.
|
inlinestatic |
Definition at line 698 of file mythframe.h.
Referenced by CopyToVideo(), and VideoOutputD3D::UpdateFrame().
|
inlinestatic |
Definition at line 728 of file mythframe.h.