X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/0adf3ed39b6fe254154e3b4c38feea616e5aece1..3aeae44ab4224e9695f1304478dcfccd6b77a7cd:/lib/dvb/pmt.h diff --git a/lib/dvb/pmt.h b/lib/dvb/pmt.h index 701930dc..95d3cc43 100644 --- a/lib/dvb/pmt.h +++ b/lib/dvb/pmt.h @@ -117,10 +117,29 @@ public: struct subtitleStream { int pid; - int subtitling_type; - int composition_page_id; - int ancillary_page_id; + int subtitling_type; /* see ETSI EN 300 468 table 26 component_type + when stream_content is 0x03 + 0x10..0x13, 0x20..0x23 is used for dvb subtitles + 0x01 is used for teletext subtitles */ + union + { + int composition_page_id; // used for dvb subtitles + int teletext_page_number; // used for teletext subtitles + }; + union + { + int ancillary_page_id; // used for dvb subtitles + int teletext_magazine_number; // used for teletext subtitles + }; std::string language_code; + bool operator<(const subtitleStream &s) const + { + if (pid != s.pid) + return pid < s.pid; + if (teletext_page_number != s.teletext_page_number) + return teletext_page_number < s.teletext_page_number; + return teletext_magazine_number < s.teletext_magazine_number; + } }; struct program @@ -145,6 +164,7 @@ public: int getService(ePtr &service) { service = m_service; return 0; } int getPMT(ePtr > &ptr) { return m_PMT.getCurrent(ptr); } int getChannel(eUsePtr &channel); + void resetCachedProgram() { m_have_cached_program = false; } int tune(eServiceReferenceDVB &ref, int use_decode_demux, eCueSheet *sg=0); void free();