MythTV
master
|
#include <libmythtv/decoders/mythmmalcontext.h>
Public Member Functions | |
MythMMALContext (DecoderBase *Parent, MythCodecID Codec) | |
~MythMMALContext () override | |
void | InitVideoCodec (AVCodecContext *Context, bool SelectedStream, bool &DirectRendering) override |
bool | RetrieveFrame (AVCodecContext *Context, MythVideoFrame *Frame, AVFrame *AvFrame) override |
int | HwDecoderInit (AVCodecContext *Context) override |
void | SetDecoderOptions (AVCodecContext *Context, const AVCodec *Codec) override |
bool | GetBuffer2 (AVCodecContext *Context, MythVideoFrame *Frame, AVFrame *AvFrame, int) |
![]() | |
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 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 | GetBuffer (AVCodecContext *Context, MythVideoFrame *Frame, AVFrame *AvFrame, int) |
static enum AVPixelFormat | GetFormat (AVCodecContext *, const AVPixelFormat *PixFmt) |
static void | GetDecoderList (QStringList &Decoders) |
static bool | HaveMMAL (bool Reinit=false) |
static bool | CheckCodecSize (int Width, int Height, MythCodecContext::CodecProfile Profile) |
![]() | |
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 const MMALProfiles & | GetProfiles (void) |
![]() | |
static void | DestroyInterop (MythInteropGPU *Interop) |
static void | NewHardwareFramesContext (void) |
Track the number of concurrent frames contexts. More... | |
Protected Attributes | |
MythMMALInterop * | m_interop { nullptr } |
![]() | |
DecoderBase * | m_parent { nullptr } |
MythCodecID | m_codecID { kCodec_NONE } |
bool | m_resetRequired { false } |
Definition at line 10 of file mythmmalcontext.h.
MythMMALContext::MythMMALContext | ( | DecoderBase * | Parent, |
MythCodecID | Codec | ||
) |
Definition at line 15 of file mythmmalcontext.cpp.
|
override |
Definition at line 20 of file mythmmalcontext.cpp.
|
static |
Definition at line 42 of file mythmmalcontext.cpp.
Referenced by MythCodecContext::FindDecoder().
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 108 of file mythmmalcontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 125 of file mythmmalcontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 135 of file mythmmalcontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 153 of file mythmmalcontext.cpp.
|
static |
Definition at line 165 of file mythmmalcontext.cpp.
Referenced by RetrieveFrame().
bool MythMMALContext::GetBuffer2 | ( | AVCodecContext * | Context, |
MythVideoFrame * | Frame, | ||
AVFrame * | AvFrame, | ||
int | |||
) |
Definition at line 198 of file mythmmalcontext.cpp.
Referenced by RetrieveFrame().
|
static |
Definition at line 233 of file mythmmalcontext.cpp.
Referenced by InitVideoCodec().
|
static |
Definition at line 267 of file mythmmalcontext.cpp.
Referenced by MythCodecContext::GetDecoderDescription().
Definition at line 244 of file mythmmalcontext.cpp.
Referenced by MythCodecContext::GetDecoders().
|
static |
Definition at line 26 of file mythmmalcontext.cpp.
Referenced by GetSupportedCodec(), and MythV4L2M2MContext::GetSupportedCodec().
|
staticprotected |
Definition at line 284 of file mythmmalcontext.cpp.
Referenced by GetDecoderList(), GetSupportedCodec(), and HaveMMAL().
|
protected |
Definition at line 33 of file mythmmalcontext.h.
Referenced by GetBuffer2(), HwDecoderInit(), and ~MythMMALContext().