|
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 void | InitVideoCodec (AVCodecContext *Context, bool SelectedStream, bool &DirectRendering) |
| virtual int | HwDecoderInit (AVCodecContext *) |
| virtual bool | RetrieveFrame (AVCodecContext *, MythVideoFrame *, AVFrame *) |
| 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 | DecoderWillResetOnFlush (void) |
| 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 16 of file mythdrmprimecontext.h.
| MythDRMPRIMEContext::MythDRMPRIMEContext | ( | DecoderBase * | Parent, |
| MythCodecID | CodecID | ||
| ) |
Definition at line 33 of file mythdrmprimecontext.cpp.
|
override |
Definition at line 38 of file mythdrmprimecontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Reimplemented in MythV4L2M2MContext.
Definition at line 136 of file mythdrmprimecontext.cpp.
| bool MythDRMPRIMEContext::GetDRMBuffer | ( | AVCodecContext * | Context, |
| MythVideoFrame * | Frame, | ||
| AVFrame * | AvFrame, | ||
| int | |||
| ) |
Definition at line 160 of file mythdrmprimecontext.cpp.
Referenced by RetrieveFrame(), and MythV4L2M2MContext::RetrieveFrame().
|
static |
Definition at line 149 of file mythdrmprimecontext.cpp.
Referenced by InitVideoCodec().
|
staticprotected |
Definition at line 44 of file mythdrmprimecontext.cpp.
Referenced by GetSupportedCodec(), and MythV4L2M2MContext::GetSupportedCodec().
|
static |
Definition at line 73 of file mythdrmprimecontext.cpp.
Referenced by MythCodecContext::FindDecoder().
|
static |
Definition at line 190 of file mythdrmprimecontext.cpp.
Referenced by MythCodecContext::GetDecoders(), and GetSupportedCodec().
|
overridevirtual |
Reimplemented from MythCodecContext.
Reimplemented in MythV4L2M2MContext.
Definition at line 109 of file mythdrmprimecontext.cpp.
Referenced by MythV4L2M2MContext::HwDecoderInit().
|
overridevirtual |
Reimplemented from MythCodecContext.
Reimplemented in MythV4L2M2MContext.
Definition at line 124 of file mythdrmprimecontext.cpp.
Referenced by MythV4L2M2MContext::InitVideoCodec().
|
overridevirtual |
Reimplemented from MythCodecContext.
Reimplemented in MythV4L2M2MContext.
Definition at line 141 of file mythdrmprimecontext.cpp.
Referenced by MythV4L2M2MContext::RetrieveFrame().
|
protected |
Definition at line 45 of file mythdrmprimecontext.h.
Referenced by GetDRMBuffer(), HwDecoderInit(), and ~MythDRMPRIMEContext().
|
staticprotected |
Definition at line 44 of file mythdrmprimecontext.h.
Referenced by GetSupportedCodec(), and HavePrimeDecoders().
|
staticprotected |
Definition at line 43 of file mythdrmprimecontext.h.
Referenced by GetSupportedCodec(), and HavePrimeDecoders().