vdr
1.7.27
|
00001 /* 00002 * dvbsubtitle.h: DVB subtitles 00003 * 00004 * See the main source file 'vdr.c' for copyright information and 00005 * how to reach the author. 00006 * 00007 * Original author: Marco Schluessler <marco@lordzodiac.de> 00008 * 00009 * $Id: dvbsubtitle.h 2.7 2012/03/11 13:34:12 kls Exp $ 00010 */ 00011 00012 #ifndef __DVBSUBTITLE_H 00013 #define __DVBSUBTITLE_H 00014 00015 #include "osd.h" 00016 #include "thread.h" 00017 #include "tools.h" 00018 00019 class cDvbSubtitlePage; 00020 class cDvbSubtitleAssembler; // for legacy PES recordings 00021 class cDvbSubtitleBitmaps; 00022 00023 class cDvbSubtitleConverter : public cThread { 00024 private: 00025 static int setupLevel; 00026 cDvbSubtitleAssembler *dvbSubtitleAssembler; 00027 cOsd *osd; 00028 bool frozen; 00029 int ddsVersionNumber; 00030 int displayWidth; 00031 int displayHeight; 00032 int windowHorizontalOffset; 00033 int windowVerticalOffset; 00034 int windowWidth; 00035 int windowHeight; 00036 int osdDeltaX; 00037 int osdDeltaY; 00038 double osdFactorX; 00039 double osdFactorY; 00040 cList<cDvbSubtitlePage> *pages; 00041 cList<cDvbSubtitleBitmaps> *bitmaps; 00042 tColor yuv2rgb(int Y, int Cb, int Cr); 00043 void SetOsdData(void); 00044 bool AssertOsd(void); 00045 int ExtractSegment(const uchar *Data, int Length, int64_t Pts); 00046 void FinishPage(cDvbSubtitlePage *Page); 00047 public: 00048 cDvbSubtitleConverter(void); 00049 virtual ~cDvbSubtitleConverter(); 00050 void Action(void); 00051 void Reset(void); 00052 void Freeze(bool Status) { frozen = Status; } 00053 int ConvertFragments(const uchar *Data, int Length); // for legacy PES recordings 00054 int Convert(const uchar *Data, int Length); 00055 static void SetupChanged(void); 00056 }; 00057 00058 #endif //__DVBSUBTITLE_H