update dvbapp.
[vuplus_openvuplus] / meta-openvuplus / recipes-vuplus / enigma2 / enigma2 / enigma2_vuplus_mediaplayer_subtitle.patch
diff --git a/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_mediaplayer_subtitle.patch b/meta-openvuplus/recipes-vuplus/enigma2/enigma2/enigma2_vuplus_mediaplayer_subtitle.patch
deleted file mode 100644 (file)
index a17d0a3..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
-index ae4611c..99bb50d 100755
---- a/lib/service/servicemp3.cpp
-+++ b/lib/service/servicemp3.cpp
-@@ -245,6 +245,8 @@ eServiceMP3::eServiceMP3(eServiceReference ref)
-       CONNECT(m_pump.recv_msg, eServiceMP3::gstPoll);
-       m_aspect = m_width = m_height = m_framerate = m_progressive = -1;
-+      m_subs_behind_seek = 0;
-+      m_block_sub = FALSE;
-       m_cur_rate=1.0;
-       m_state = stIdle;
-       eDebug("eServiceMP3::construct!");
-@@ -595,6 +597,7 @@ RESULT eServiceMP3::seekTo(pts_t to)
-       RESULT ret = -1;
-       if (m_gst_playbin) {
-+              m_block_sub = TRUE;
-               eSingleLocker l(m_subs_to_pull_lock); // this is needed to dont handle incomming subtitles during seek!
-               if (!(ret = seekToImpl(to)))
-               {
-@@ -603,6 +606,13 @@ RESULT eServiceMP3::seekTo(pts_t to)
-                       m_decoder_time_valid_state = 0;
-                       m_subs_to_pull = 0;
-               }
-+              m_block_sub = FALSE;
-+      }
-+      m_subs_to_pull+=m_subs_behind_seek;
-+      while(m_subs_behind_seek)
-+      {
-+              m_pump.send(Message(2));
-+              m_subs_behind_seek--;
-       }
-       return ret;
-@@ -616,6 +626,7 @@ RESULT eServiceMP3::trickSeek(gdouble ratio)
-       if (!ratio)
-               return seekRelative(0, 0);
-+      m_block_sub = TRUE;
-       eSingleLocker l(m_subs_to_pull_lock);
-       GstEvent *s_event;
-@@ -655,6 +666,13 @@ RESULT eServiceMP3::trickSeek(gdouble ratio)
-       m_decoder_time_valid_state = 0;
-       m_subs_to_pull = 0;
-       m_cur_rate=ratio;
-+      m_block_sub = FALSE;
-+      m_subs_to_pull+=m_subs_behind_seek;
-+      while(m_subs_behind_seek)
-+      {
-+              m_pump.send(Message(2));
-+              m_subs_behind_seek--;
-+      }
-       return 0;
- }
-@@ -1650,10 +1668,17 @@ eAutoInitPtr<eServiceFactoryMP3> init_eServiceFactoryMP3(eAutoInitNumbers::servi
- void eServiceMP3::gstCBsubtitleAvail(GstElement *appsink, gpointer user_data)
- {
--      eServiceMP3 *_this = (eServiceMP3*)user_data;   
--      eSingleLocker l(_this->m_subs_to_pull_lock);
--      ++_this->m_subs_to_pull;
--      _this->m_pump.send(Message(2));
-+      eServiceMP3 *_this = (eServiceMP3*)user_data;
-+      if(_this->m_block_sub != TRUE)
-+      {
-+              eSingleLocker l(_this->m_subs_to_pull_lock);
-+              ++_this->m_subs_to_pull;
-+              _this->m_pump.send(Message(2));
-+      }
-+      else
-+      {
-+              _this->m_subs_behind_seek++;
-+      }
- }
- void eServiceMP3::gstTextpadHasCAPS(GstPad *pad, GParamSpec * unused, gpointer user_data)
-@@ -1729,6 +1754,11 @@ void eServiceMP3::pullSubtitle()
-               {
-                       GstBuffer *buffer;
-                       {
-+                              if(m_block_sub == TRUE)
-+                              {
-+                                      g_signal_emit_by_name (sink, "pull-buffer", &buffer);
-+                                      return;
-+                              }
-                               eSingleLocker l(m_subs_to_pull_lock);
-                               --m_subs_to_pull;
-                               g_signal_emit_by_name (sink, "pull-buffer", &buffer);
-diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h
-index cb5b048..7e3f6a6 100644
---- a/lib/service/servicemp3.h
-+++ b/lib/service/servicemp3.h
-@@ -270,6 +270,8 @@ private:
-       std::string m_useragent;
-       RESULT trickSeek(gdouble ratio);
-       double m_cur_rate;
-+      bool m_block_sub;
-+      int m_subs_behind_seek;
- };
- #endif