MythTV  master
mythmediacodeccontext.h
Go to the documentation of this file.
1 #ifndef MYTHMEDIACODECCONTEXT_H
2 #define MYTHMEDIACODECCONTEXT_H
3 
4 // MythTV
5 #include "mythcodeccontext.h"
6 
7 // FFmpeg
8 extern "C" {
9 #include "libavutil/pixfmt.h"
10 #include "libavutil/hwcontext.h"
11 #include "libavcodec/avcodec.h"
12 }
13 
14 using MCProfiles = QList<QPair<MythCodecContext::CodecProfile,QSize>>;
15 
17 {
18  public:
19  // MythCodecContext
21  void InitVideoCodec(AVCodecContext *Context, bool SelectedStream, bool &DirectRendering) override;
22  int HwDecoderInit(AVCodecContext *Context) override;
23  bool RetrieveFrame(AVCodecContext *Context, MythVideoFrame *Frame, AVFrame *AvFrame) override;
24 
25  static MythCodecID GetBestSupportedCodec(AVCodecContext **Context,
26  const AVCodec **Codec,
27  const QString &Decoder,
28  AVStream *Stream,
29  uint StreamType);
30  static AVPixelFormat GetFormat (AVCodecContext*, const AVPixelFormat *PixFmt);
31  void PostProcessFrame (AVCodecContext*, MythVideoFrame*) override;
32  bool IsDeinterlacing (bool &DoubleRate, bool = false) override;
33  static void GetDecoderList (QStringList &Decoders);
34  static bool HaveMediaCodec (bool Reinit = false);
35 
36  private:
37  static MCProfiles& GetProfiles (void);
38  static int InitialiseDecoder (AVCodecContext *Context);
39 };
40 
41 #endif // MYTHMEDIACODECCONTEXT_H
MythMediaCodecContext::IsDeinterlacing
bool IsDeinterlacing(bool &DoubleRate, bool=false) override
Definition: mythmediacodeccontext.cpp:349
Frame
Definition: zmdefines.h:93
MythMediaCodecContext::GetDecoderList
static void GetDecoderList(QStringList &Decoders)
Definition: mythmediacodeccontext.cpp:494
MythMediaCodecContext::GetProfiles
static MCProfiles & GetProfiles(void)
Definition: mythmediacodeccontext.cpp:355
MythMediaCodecContext::PostProcessFrame
void PostProcessFrame(AVCodecContext *, MythVideoFrame *) override
Mark all MediaCodec decoded frames as progressive,.
Definition: mythmediacodeccontext.cpp:331
MythCodecID
MythCodecID
Definition: mythcodecid.h:10
AVFrame
struct AVFrame AVFrame
Definition: BorderDetector.h:15
Decoder
Definition: decoder.h:70
MythMediaCodecContext
Definition: mythmediacodeccontext.h:16
MythMediaCodecContext::GetBestSupportedCodec
static MythCodecID GetBestSupportedCodec(AVCodecContext **Context, const AVCodec **Codec, const QString &Decoder, AVStream *Stream, uint StreamType)
Definition: mythmediacodeccontext.cpp:220
uint
unsigned int uint
Definition: compat.h:81
MythMediaCodecContext::HaveMediaCodec
static bool HaveMediaCodec(bool Reinit=false)
Definition: mythmediacodeccontext.cpp:505
MythMediaCodecContext::RetrieveFrame
bool RetrieveFrame(AVCodecContext *Context, MythVideoFrame *Frame, AVFrame *AvFrame) override
Definition: mythmediacodeccontext.cpp:307
MythMediaCodecContext::InitialiseDecoder
static int InitialiseDecoder(AVCodecContext *Context)
Definition: mythmediacodeccontext.cpp:173
MythMediaCodecContext::GetFormat
static AVPixelFormat GetFormat(AVCodecContext *, const AVPixelFormat *PixFmt)
Definition: mythmediacodeccontext.cpp:316
mythcodeccontext.h
MythCodecContext
Definition: mythcodeccontext.h:52
MythMediaCodecContext::HwDecoderInit
int HwDecoderInit(AVCodecContext *Context) override
Definition: mythmediacodeccontext.cpp:298
MythVideoFrame
Definition: mythframe.h:88
MythMediaCodecContext::MythMediaCodecContext
MythMediaCodecContext(DecoderBase *Parent, MythCodecID CodecID)
Definition: mythmediacodeccontext.cpp:280
MythMediaCodecContext::InitVideoCodec
void InitVideoCodec(AVCodecContext *Context, bool SelectedStream, bool &DirectRendering) override
Definition: mythmediacodeccontext.cpp:285
MCProfiles
QList< QPair< MythCodecContext::CodecProfile, QSize > > MCProfiles
Definition: mythmediacodeccontext.h:14
DecoderBase
Definition: decoderbase.h:120