Merge remote branch 'origin/acid-burn/bug_670_plugin_restartoption' into experimental
[vuplus_dvbapp] / lib / service / servicemp3.h
index 11bf125..c620151 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef __servicemp3_h
 #define __servicemp3_h
 
-#ifdef HAVE_GSTREAMER
 #include <lib/base/message.h>
 #include <lib/service/iservice.h>
 #include <lib/dvb/pmt.h>
@@ -50,12 +49,6 @@ typedef enum { atUnknown, atMPEG, atMP3, atAC3, atDTS, atAAC, atPCM, atOGG, atFL
 typedef enum { stUnknown, stPlainText, stSSA, stASS, stSRT, stVOB, stPGS } subtype_t;
 typedef enum { ctNone, ctMPEGTS, ctMPEGPS, ctMKV, ctAVI, ctMP4, ctVCD, ctCDA } containertype_t;
 
-struct SubtitlePage
-{
-       ePangoSubtitlePage *pango_page;
-       eVobSubtitlePage *vob_page;
-};
-
 class eServiceMP3: public iPlayableService, public iPauseableService,
        public iServiceInformation, public iSeekableService, public iAudioTrackSelection, public iAudioChannelSelection, 
        public iSubtitleOutput, public iStreamedService, public iAudioDelay, public Object
@@ -174,7 +167,7 @@ public:
                int bufferPercent;
                int avgInRate;
                int avgOutRate;
-               long long bufferingLeft;
+               int64_t bufferingLeft;
                bufferInfo()
                        :bufferPercent(0), avgInRate(0), avgOutRate(0), bufferingLeft(-1)
                {
@@ -255,10 +248,20 @@ private:
        GstSegment m_gst_subtitle_segment;
        GstPadEventFunction m_gst_sink_event;
 
+       struct SubtitlePage
+       {
+               enum { Unknown, Pango, Vob } type;
+               ePangoSubtitlePage pango_page;
+               eVobSubtitlePage vob_page;
+       };
+
        std::list<SubtitlePage> m_subtitle_pages;
        ePtr<eTimer> m_subtitle_sync_timer;
        ePtr<eTimer> m_subtitle_hide_timer;
        ePtr<eTimer> m_streamingsrc_timeout;
+       pts_t m_prev_decoder_time;
+       int m_decoder_time_valid_state;
+
        void pushSubtitles();
        void pullSubtitle();
        void hideSubtitles();
@@ -274,6 +277,5 @@ private:
        std::string m_useragent;
        RESULT trickSeek(gdouble ratio);
 };
-#endif
 
 #endif