00001 #ifndef PRIVATEDECODER_H 00002 #define PRIVATEDECODER_H 00003 00004 #include <QString> 00005 extern "C" { 00006 #include "libavcodec/avcodec.h" 00007 #include "libavformat/avformat.h" 00008 } 00009 00010 #include "videodisplayprofile.h" 00011 #include "mythcodecid.h" 00012 #include "mythplayer.h" 00013 00014 class PrivateDecoder 00015 { 00016 public: 00017 static void GetDecoders(render_opts &opts); 00018 static PrivateDecoder* Create(const QString &decoder, 00019 PlayerFlags flags, 00020 AVCodecContext *avctx); 00021 PrivateDecoder() { } 00022 virtual ~PrivateDecoder() { } 00023 virtual QString GetName(void) = 0; 00024 virtual bool Init(const QString &decoder, 00025 PlayerFlags flags, 00026 AVCodecContext *avctx) = 0; 00027 virtual bool Reset(void) = 0; 00028 virtual int GetFrame(AVStream *stream, 00029 AVFrame *picture, 00030 int *got_picture_ptr, 00031 AVPacket *pkt) = 0; 00032 virtual bool HasBufferedFrames(void) { return false; } 00033 virtual bool NeedsReorderedPTS(void) { return false; } 00034 }; 00035 00036 #endif // PRIVATEDECODER_H
1.6.3