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
int bufferPercent;
int avgInRate;
int avgOutRate;
- long long bufferingLeft;
+ int64_t bufferingLeft;
bufferInfo()
:bufferPercent(0), avgInRate(0), avgOutRate(0), bufferingLeft(-1)
{
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();