switch appsink to async again (fixes embedded mkv text subtitles)
[vuplus_dvbapp] / lib / service / servicemp3.h
index 7a5b152..ceb3b49 100644 (file)
@@ -47,7 +47,7 @@ public:
 typedef struct _GstElement GstElement;
 
 typedef enum { atUnknown, atMPEG, atMP3, atAC3, atDTS, atAAC, atPCM, atOGG, atFLAC } audiotype_t;
-typedef enum { stUnknown, stPlainText, stSSA, stASS, stSRT, stVOB } subtype_t;
+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
@@ -212,6 +212,7 @@ private:
        audiotype_t gstCheckAudioPad(GstStructure* structure);
        void gstBusCall(GstBus *bus, GstMessage *msg);
        static GstBusSyncReply gstBusSyncHandler(GstBus *bus, GstMessage *message, gpointer user_data);
+       static void gstHTTPSourceSetAgent(GObject *source, GParamSpec *unused, gpointer user_data);
        static void gstCBsubtitleAvail(GstElement *element, gpointer user_data);
        static GstCaps* gstGhostpadGetCAPS (GstPad * pad);
        static gboolean gstGhostpadAcceptCAPS(GstPad * pad, GstCaps * caps);
@@ -234,16 +235,20 @@ private:
        std::list<SubtitlePage> m_subtitle_pages;
        ePtr<eTimer> m_subtitle_sync_timer;
        ePtr<eTimer> m_subtitle_hide_timer;
+       ePtr<eTimer> m_streamingsrc_timeout;
        void pushSubtitles();
        void pullSubtitle();
        void hideSubtitles();
+       void sourceTimeout();
        int m_subs_to_pull;
+       sourceStream m_sourceinfo;
        eSingleLock m_subs_to_pull_lock;
        gulong m_subs_to_pull_handler_id;
 
        RESULT seekToImpl(pts_t to);
 
        gint m_aspect, m_width, m_height, m_framerate, m_progressive;
+       std::string m_useragent;
        RESULT trickSeek(gdouble ratio);
 };
 #endif