MythTV
master
|
A generic context handler for codecs that return AV_PIX_FMT_DRM_PRIME frames. More...
#include <libmythtv/decoders/mythdrmprimecontext.h>
Public Member Functions | |
MythDRMPRIMEContext (DecoderBase *Parent, MythCodecID CodecID) | |
~MythDRMPRIMEContext () override | |
int | HwDecoderInit (AVCodecContext *Context) override |
void | InitVideoCodec (AVCodecContext *Context, bool SelectedStream, bool &DirectRendering) override |
bool | RetrieveFrame (AVCodecContext *Context, MythVideoFrame *Frame, AVFrame *AvFrame) override |
bool | DecoderWillResetOnFlush (void) override |
bool | GetDRMBuffer (AVCodecContext *Context, MythVideoFrame *Frame, AVFrame *AvFrame, int) |
Public Member Functions inherited from MythCodecContext | |
MythCodecContext (DecoderBase *Parent, MythCodecID CodecID) | |
virtual | ~MythCodecContext ()=default |
virtual int | FilteredReceiveFrame (AVCodecContext *Context, AVFrame *Frame) |
Retrieve and process/filter AVFrame. More... | |
virtual void | SetDeinterlacing (AVCodecContext *, MythVideoProfile *, bool) |
virtual void | PostProcessFrame (AVCodecContext *, MythVideoFrame *) |
virtual bool | IsDeinterlacing (bool &, bool=false) |
virtual void | SetDecoderOptions (AVCodecContext *, const AVCodec *) |
virtual bool | DecoderWillResetOnAspect (void) |
virtual bool | DecoderNeedsReset (AVCodecContext *) |
Static Public Member Functions | |
static MythCodecID | GetSupportedCodec (AVCodecContext **Context, const AVCodec **Codec, const QString &Decoder, AVStream *Stream, uint StreamType) |
static bool | HavePrimeDecoders (bool Reinit=false, AVCodecID Codec=AV_CODEC_ID_NONE) |
static enum AVPixelFormat | GetFormat (AVCodecContext *Context, const AVPixelFormat *PixFmt) |
Static Public Member Functions inherited from MythCodecContext | |
static MythCodecContext * | CreateContext (DecoderBase *Parent, MythCodecID Codec) |
static void | GetDecoders (RenderOptions &Opts, bool Reinit=false) |
static QStringList | GetDecoderDescription (void) |
static MythCodecID | FindDecoder (const QString &Decoder, AVStream *Stream, AVCodecContext **Context, const AVCodec **Codec) |
static int | GetBuffer (struct AVCodecContext *Context, AVFrame *Frame, int Flags) |
A generic hardware buffer initialisation method when using AVHWFramesContext. More... | |
static bool | GetBuffer2 (struct AVCodecContext *Context, MythVideoFrame *Frame, AVFrame *AvFrame, int Flags) |
A generic hardware buffer initialisation method when AVHWFramesContext is NOT used. More... | |
static int | InitialiseDecoder (AVCodecContext *Context, CreateHWDecoder Callback, const QString &Debug) |
Initialise a hardware decoder that is expected to use AVHWFramesContext. More... | |
static int | InitialiseDecoder2 (AVCodecContext *Context, CreateHWDecoder Callback, const QString &Debug) |
Initialise a hardware decoder that is NOT expected to use AVHWFramesContext. More... | |
static void | ReleaseBuffer (void *Opaque, uint8_t *Data) |
static void | FramesContextFinished (AVHWFramesContext *Context) |
static void | DeviceContextFinished (AVHWDeviceContext *Context) |
static void | CreateDecoderCallback (void *Wait, void *Context, void *Callback) |
static MythPlayerUI * | GetPlayerUI (AVCodecContext *Context) |
static bool | FrameTypeIsSupported (AVCodecContext *Context, VideoFrameType Format) |
static AVBufferRef * | CreateDevice (AVHWDeviceType Type, MythInteropGPU *Interop, const QString &Device=QString()) |
static bool | IsUnsupportedProfile (AVCodecContext *Context) |
Most hardware decoders do not support these codecs/profiles. More... | |
static QString | GetProfileDescription (CodecProfile Profile, QSize Size, VideoFrameType Format=FMT_NONE, uint ColorDepth=0) |
static CodecProfile | FFmpegToMythProfile (AVCodecID CodecID, int Profile) |
Static Protected Member Functions | |
static MythCodecID | GetPrimeCodec (AVCodecContext **Context, const AVCodec **Codec, AVStream *Stream, MythCodecID Successs, MythCodecID Failure, const QString &CodecName, AVPixelFormat Format) |
Static Protected Member Functions inherited from MythCodecContext | |
static void | DestroyInterop (MythInteropGPU *Interop) |
static void | NewHardwareFramesContext (void) |
Track the number of concurrent frames contexts. More... | |
Protected Attributes | |
MythOpenGLInterop * | m_interop { nullptr } |
Protected Attributes inherited from MythCodecContext | |
DecoderBase * | m_parent { nullptr } |
MythCodecID | m_codecID { kCodec_NONE } |
bool | m_resetRequired { false } |
Static Protected Attributes | |
static QRecursiveMutex | s_drmPrimeLock |
static QStringList | s_drmPrimeDecoders |
Static Protected Attributes inherited from MythCodecContext | |
static QAtomicInt | s_hwFramesContextCount |
A generic context handler for codecs that return AV_PIX_FMT_DRM_PRIME frames.
Definition at line 14 of file mythdrmprimecontext.h.
MythDRMPRIMEContext::MythDRMPRIMEContext | ( | DecoderBase * | Parent, |
MythCodecID | CodecID | ||
) |
Definition at line 30 of file mythdrmprimecontext.cpp.
|
override |
Definition at line 35 of file mythdrmprimecontext.cpp.
|
static |
Definition at line 70 of file mythdrmprimecontext.cpp.
Referenced by MythCodecContext::FindDecoder().
|
overridevirtual |
Reimplemented from MythCodecContext.
Reimplemented in MythV4L2M2MContext.
Definition at line 106 of file mythdrmprimecontext.cpp.
Referenced by MythV4L2M2MContext::HwDecoderInit().
|
overridevirtual |
Reimplemented from MythCodecContext.
Reimplemented in MythV4L2M2MContext.
Definition at line 121 of file mythdrmprimecontext.cpp.
Referenced by MythV4L2M2MContext::InitVideoCodec().
|
overridevirtual |
Reimplemented from MythCodecContext.
Reimplemented in MythV4L2M2MContext.
Definition at line 138 of file mythdrmprimecontext.cpp.
Referenced by MythV4L2M2MContext::RetrieveFrame().
|
overridevirtual |
Reimplemented from MythCodecContext.
Reimplemented in MythV4L2M2MContext.
Definition at line 133 of file mythdrmprimecontext.cpp.
|
static |
Definition at line 187 of file mythdrmprimecontext.cpp.
Referenced by MythCodecContext::GetDecoders(), and GetSupportedCodec().
|
static |
Definition at line 146 of file mythdrmprimecontext.cpp.
Referenced by InitVideoCodec().
bool MythDRMPRIMEContext::GetDRMBuffer | ( | AVCodecContext * | Context, |
MythVideoFrame * | Frame, | ||
AVFrame * | AvFrame, | ||
int | |||
) |
Definition at line 157 of file mythdrmprimecontext.cpp.
Referenced by MythV4L2M2MContext::RetrieveFrame(), and RetrieveFrame().
|
staticprotected |
Definition at line 41 of file mythdrmprimecontext.cpp.
Referenced by MythV4L2M2MContext::GetSupportedCodec(), and GetSupportedCodec().
|
staticprotected |
Definition at line 41 of file mythdrmprimecontext.h.
Referenced by GetSupportedCodec(), and HavePrimeDecoders().
|
staticprotected |
Definition at line 42 of file mythdrmprimecontext.h.
Referenced by GetSupportedCodec(), and HavePrimeDecoders().
|
protected |
Definition at line 43 of file mythdrmprimecontext.h.
Referenced by GetDRMBuffer(), HwDecoderInit(), and ~MythDRMPRIMEContext().