MythTV
master
|
#include <mythvdpaucontext.h>
Public Member Functions | |
MythVDPAUContext (DecoderBase *Parent, MythCodecID CodecID) | |
void | InitVideoCodec (AVCodecContext *Context, bool SelectedStream, bool &DirectRendering) override |
bool | RetrieveFrame (AVCodecContext *Context, MythVideoFrame *Frame, AVFrame *AvFrame) override |
bool | DecoderWillResetOnFlush (void) override |
bool | DecoderWillResetOnAspect (void) override |
bool | DecoderNeedsReset (AVCodecContext *Context) override |
Report whether the decoder is known to be errored. More... | |
Public Member Functions inherited from MythCodecContext | |
MythCodecContext (DecoderBase *Parent, MythCodecID CodecID) | |
virtual | ~MythCodecContext ()=default |
virtual int | HwDecoderInit (AVCodecContext *) |
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 *) |
Static Public Member Functions | |
static MythCodecID | GetSupportedCodec (AVCodecContext **CodecContext, const AVCodec **Codec, const QString &Decoder, uint StreamType) |
static enum AVPixelFormat | GetFormat (AVCodecContext *Context, const enum AVPixelFormat *PixFmt) |
\ brief Confirm pixel format and create VDPAU device for direct rendering (MythVDPAUInterop required) More... | |
static enum AVPixelFormat | GetFormat2 (AVCodecContext *Context, const enum AVPixelFormat *PixFmt) |
\ brief Confirm pixel format and create VDPAU device for copy back (no MythVDPAUInterop required) More... | |
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 Private Member Functions | |
static int | InitialiseContext (AVCodecContext *Context) |
Create a VDPAU device for use with direct rendering. More... | |
Definition at line 7 of file mythvdpaucontext.h.
MythVDPAUContext::MythVDPAUContext | ( | DecoderBase * | Parent, |
MythCodecID | CodecID | ||
) |
Definition at line 26 of file mythvdpaucontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 274 of file mythvdpaucontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 224 of file mythvdpaucontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 233 of file mythvdpaucontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 238 of file mythvdpaucontext.cpp.
|
overridevirtual |
Report whether the decoder is known to be errored.
This is used to determine whether the VDPAU display has been preempted. FFmpeg does not deal with preemption so we need to detect it ourselves in the interop class. We do not necessarily have a frame at this point, so need to access the interop through AVHWFramesContext.
Reimplemented from MythCodecContext.
Definition at line 252 of file mythvdpaucontext.cpp.
|
static |
Definition at line 120 of file mythvdpaucontext.cpp.
Referenced by MythCodecContext::FindDecoder().
|
static |
\ brief Confirm pixel format and create VDPAU device for direct rendering (MythVDPAUInterop required)
Definition at line 190 of file mythvdpaucontext.cpp.
Referenced by InitVideoCodec().
|
static |
\ brief Confirm pixel format and create VDPAU device for copy back (no MythVDPAUInterop required)
Definition at line 203 of file mythvdpaucontext.cpp.
Referenced by InitVideoCodec().
|
staticprivate |
Create a VDPAU device for use with direct rendering.
Definition at line 32 of file mythvdpaucontext.cpp.
Referenced by GetFormat().