diff options
| author | Andreas Frisch <andreas.frisch@multimedia-labs.de> | 2008-10-06 14:38:33 +0000 |
|---|---|---|
| committer | Andreas Frisch <andreas.frisch@multimedia-labs.de> | 2008-10-06 14:38:33 +0000 |
| commit | bc7d322cfd34d45366d238eac25c86a8d4701b74 (patch) | |
| tree | cf51ab182c65479de7cdf3890eb9f67f78300bd2 /lib/service/servicemp3.h | |
| parent | 1fd6d390538c5c154b95d75c11e5b432cacb2df6 (diff) | |
| download | enigma2-bc7d322cfd34d45366d238eac25c86a8d4701b74.tar.gz enigma2-bc7d322cfd34d45366d238eac25c86a8d4701b74.zip | |
Fixes with audio codec and subtitles detection and selection
Diffstat (limited to 'lib/service/servicemp3.h')
| -rw-r--r-- | lib/service/servicemp3.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h index 5b2a3be5..2308fa87 100644 --- a/lib/service/servicemp3.h +++ b/lib/service/servicemp3.h @@ -113,7 +113,7 @@ public: struct audioStream { GstPad* pad; - enum { atUnknown, atMP2, atMP3, atAC3, atDTS, atAAC, atPCM, atOGG } type; + enum { atUnknown, atMPEG, atMP3, atAC3, atDTS, atAAC, atPCM, atOGG } type; std::string language_code; /* iso-639, if available. */ audioStream() :pad(0), type(atUnknown) @@ -122,8 +122,12 @@ public: }; struct subtitleStream { - GstElement* element; + GstPad* pad; std::string language_code; /* iso-639, if available. */ + subtitleStream() + :pad(0) + { + } }; private: int m_currentAudioStream; @@ -134,7 +138,7 @@ private: eSubtitleWidget *m_subtitle_widget; int m_currentTrickRatio; eTimer m_seekTimeout; - void eServiceMP3::seekTimeoutCB(); + void seekTimeoutCB(); friend class eServiceFactoryMP3; std::string m_filename; eServiceMP3(const char *filename); @@ -148,6 +152,7 @@ private: GstTagList *m_stream_tags; eFixedMessagePump<int> m_pump; + int gstCheckAudioPad(GstStructure* structure); void gstBusCall(GstBus *bus, GstMessage *msg); static GstBusSyncReply gstBusSyncHandler(GstBus *bus, GstMessage *message, gpointer user_data); static void gstCBpadAdded(GstElement *decodebin, GstPad *pad, gpointer data); /* for mpegdemux */ @@ -155,6 +160,7 @@ private: static void gstCBnewPad(GstElement *decodebin, GstPad *pad, gboolean last, gpointer data); /* for decodebin */ static void gstCBunknownType(GstElement *decodebin, GstPad *pad, GstCaps *l, gpointer data); static void gstCBsubtitleAvail(GstElement *element, GstBuffer *buffer, GstPad *pad, gpointer user_data); + static void gstCBsubtitlePadEvent(GstPad *pad, GstEvent *event, gpointer user_data); void gstPoll(const int&); }; #endif |
