summaryrefslogtreecommitdiff
path: root/decoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'decoder.h')
-rw-r--r--decoder.h41
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