2007-10-12 14:52:30 +02:00
|
|
|
/*
|
|
|
|
* dvbsubtitle.h: DVB subtitles
|
|
|
|
*
|
|
|
|
* See the main source file 'vdr.c' for copyright information and
|
|
|
|
* how to reach the author.
|
|
|
|
*
|
2012-03-11 13:34:12 +01:00
|
|
|
* Original author: Marco Schluessler <marco@lordzodiac.de>
|
2007-10-12 14:52:30 +02:00
|
|
|
*
|
2015-04-28 09:26:02 +02:00
|
|
|
* $Id: dvbsubtitle.h 4.1 2015/04/28 09:25:57 kls Exp $
|
2007-10-12 14:52:30 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __DVBSUBTITLE_H
|
|
|
|
#define __DVBSUBTITLE_H
|
|
|
|
|
|
|
|
#include "osd.h"
|
|
|
|
#include "thread.h"
|
|
|
|
#include "tools.h"
|
|
|
|
|
|
|
|
class cDvbSubtitlePage;
|
2008-08-15 14:49:34 +02:00
|
|
|
class cDvbSubtitleAssembler; // for legacy PES recordings
|
2007-10-12 14:52:30 +02:00
|
|
|
class cDvbSubtitleBitmaps;
|
|
|
|
|
|
|
|
class cDvbSubtitleConverter : public cThread {
|
|
|
|
private:
|
|
|
|
static int setupLevel;
|
|
|
|
cDvbSubtitleAssembler *dvbSubtitleAssembler;
|
|
|
|
cOsd *osd;
|
2010-02-07 12:08:13 +01:00
|
|
|
bool frozen;
|
2010-05-13 14:51:48 +02:00
|
|
|
int ddsVersionNumber;
|
|
|
|
int displayWidth;
|
|
|
|
int displayHeight;
|
2011-03-12 13:09:30 +01:00
|
|
|
int windowHorizontalOffset;
|
|
|
|
int windowVerticalOffset;
|
|
|
|
int windowWidth;
|
|
|
|
int windowHeight;
|
2011-03-12 16:08:08 +01:00
|
|
|
int osdDeltaX;
|
|
|
|
int osdDeltaY;
|
2011-03-20 15:19:28 +01:00
|
|
|
double osdFactorX;
|
|
|
|
double osdFactorY;
|
2007-10-12 14:52:30 +02:00
|
|
|
cList<cDvbSubtitlePage> *pages;
|
|
|
|
cList<cDvbSubtitleBitmaps> *bitmaps;
|
2013-09-06 12:37:27 +02:00
|
|
|
cDvbSubtitlePage *GetPageById(int PageId, bool New = false);
|
2011-03-12 16:08:08 +01:00
|
|
|
void SetOsdData(void);
|
2007-10-12 14:52:30 +02:00
|
|
|
bool AssertOsd(void);
|
|
|
|
int ExtractSegment(const uchar *Data, int Length, int64_t Pts);
|
2015-01-14 10:39:55 +01:00
|
|
|
int ExtractPgsSegment(const uchar *Data, int Length, int64_t Pts);
|
2007-10-12 14:52:30 +02:00
|
|
|
void FinishPage(cDvbSubtitlePage *Page);
|
|
|
|
public:
|
|
|
|
cDvbSubtitleConverter(void);
|
|
|
|
virtual ~cDvbSubtitleConverter();
|
2015-04-28 09:26:02 +02:00
|
|
|
virtual void Action(void);
|
2007-10-12 14:52:30 +02:00
|
|
|
void Reset(void);
|
2010-02-07 12:08:13 +01:00
|
|
|
void Freeze(bool Status) { frozen = Status; }
|
2008-08-15 14:49:34 +02:00
|
|
|
int ConvertFragments(const uchar *Data, int Length); // for legacy PES recordings
|
2007-10-12 14:52:30 +02:00
|
|
|
int Convert(const uchar *Data, int Length);
|
|
|
|
static void SetupChanged(void);
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif //__DVBSUBTITLE_H
|