|
MythTV master
|
#include <libmythtv/decoders/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 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 **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 28 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 254 of file mythvdpaucontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 240 of file mythvdpaucontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 235 of file mythvdpaucontext.cpp.
|
static |
\ brief Confirm pixel format and create VDPAU device for direct rendering (MythVDPAUInterop required)
Definition at line 192 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 205 of file mythvdpaucontext.cpp.
Referenced by InitVideoCodec().
|
static |
Definition at line 122 of file mythvdpaucontext.cpp.
Referenced by MythCodecContext::FindDecoder().
|
staticprivate |
Create a VDPAU device for use with direct rendering.
Definition at line 34 of file mythvdpaucontext.cpp.
Referenced by GetFormat().
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 276 of file mythvdpaucontext.cpp.
|
overridevirtual |
Reimplemented from MythCodecContext.
Definition at line 226 of file mythvdpaucontext.cpp.