diff options
Diffstat (limited to 'decoder.h')
-rw-r--r-- | decoder.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/decoder.h b/decoder.h new file mode 100644 index 0000000..d9ca3e7 --- /dev/null +++ b/decoder.h @@ -0,0 +1,41 @@ +/* + * OSD Picture in Picture plugin for the Video Disk Recorder + * + * See the README file for copyright information and how to reach the author. + */ + +#ifndef VDR_OSDPIP_DECODER_H +#define VDR_OSDPIP_DECODER_H + +extern "C" +{ +#ifdef HAVE_FFMPEG_STATIC +# include <avcodec.h> +#else +# include <ffmpeg/avcodec.h> +#endif +} + +class cDecoder { +private: + AVCodec * m_Codec; + AVCodecContext * m_Context; + AVFrame * m_PicDecoded; + AVFrame * m_PicResample; + AVFrame * m_PicConvert; + unsigned char * m_BufferResample; + unsigned char * m_BufferConvert; + int m_Width; + int m_Height; +public: + int Open(); + int Close(); + int Decode(unsigned char * data, int length); + int Resample(int width, int height); + int ConvertToRGB(); + AVFrame * PicResample() { return m_PicResample; } + AVFrame * PicConvert() { return m_PicConvert; } + float AspectRatio() { return m_Context->aspect_ratio; } +}; + +#endif // VDR_OSDPIP_DECODER_H |