diff options
| author | Fraxinas <andreas.frisch@multimedia-labs.de> | 2010-05-26 16:45:23 +0200 |
|---|---|---|
| committer | Fraxinas <andreas.frisch@multimedia-labs.de> | 2010-06-09 10:06:26 +0200 |
| commit | e81b2d30bed8396be1cb2ceeb0c2a166abbf418c (patch) | |
| tree | ec313e4186840473ccc752aba7e4a4c5bdc76711 | |
| parent | 42547e1c5ebe3c21c39e567c370810ea5308fe70 (diff) | |
| download | enigma2-e81b2d30bed8396be1cb2ceeb0c2a166abbf418c.tar.gz enigma2-e81b2d30bed8396be1cb2ceeb0c2a166abbf418c.zip | |
experimentally implement vobsub display (fixes Ã#537, requires gst-plugin-dvdsub)
| -rw-r--r-- | lib/service/servicemp3.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h index 56a068b9..d38dbb84 100644 --- a/lib/service/servicemp3.h +++ b/lib/service/servicemp3.h @@ -47,9 +47,15 @@ public: typedef struct _GstElement GstElement; typedef enum { atUnknown, atMPEG, atMP3, atAC3, atDTS, atAAC, atPCM, atOGG, atFLAC } audiotype_t; -typedef enum { stPlainText, stSSA, stSRT } subtype_t; +typedef enum { stUnknown, stPlainText, stSSA, stSRT, stVOB } 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 @@ -198,6 +204,7 @@ private: }; int m_state; GstElement *m_gst_playbin; + GstElement *m_gst_subtitlebin; GstTagList *m_stream_tags; eFixedMessagePump<int> m_pump; std::string m_error_message; @@ -206,10 +213,11 @@ private: void gstBusCall(GstBus *bus, GstMessage *msg); static GstBusSyncReply gstBusSyncHandler(GstBus *bus, GstMessage *message, gpointer user_data); static void gstCBsubtitleAvail(GstElement *element, gpointer user_data); + static void gstCBsubtitleCAPS(GObject *obj, GParamSpec *pspec, gpointer user_data); GstPad* gstCreateSubtitleSink(eServiceMP3* _this, subtype_t type); void gstPoll(const int&); - std::list<ePangoSubtitlePage> m_subtitle_pages; + std::list<SubtitlePage> m_subtitle_pages; ePtr<eTimer> m_subtitle_sync_timer; void pushSubtitles(); void pullSubtitle(); |
