projects
/
vuplus_dvbapp
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a8e6636
)
more subtitle buffer flushing and fix potential crash after
author
Fraxinas
<andreas.frisch@multimedia-labs.de>
Tue, 5 May 2009 17:06:16 +0000
(19:06 +0200)
committer
Fraxinas
<andreas.frisch@multimedia-labs.de>
Tue, 5 May 2009 17:06:16 +0000
(19:06 +0200)
lib/service/servicemp3.cpp
patch
|
blob
|
history
diff --git
a/lib/service/servicemp3.cpp
b/lib/service/servicemp3.cpp
index
2fe9d99
..
79098f2
100644
(file)
--- a/
lib/service/servicemp3.cpp
+++ b/
lib/service/servicemp3.cpp
@@
-477,6
+477,8
@@
RESULT eServiceMP3::getLength(pts_t &pts)
RESULT eServiceMP3::seekTo(pts_t to)
{
RESULT eServiceMP3::seekTo(pts_t to)
{
+ m_subtitle_pages.clear();
+
if (!m_gst_playbin)
return -1;
if (!m_gst_playbin)
return -1;
@@
-1278,7
+1280,7
@@
void eServiceMP3::pushSubtitles()
GstElement *appsink = gst_bin_get_by_name(GST_BIN(m_gst_playbin),"subtitle_sink");
GstClock *clock;
clock = gst_element_get_clock (appsink);
GstElement *appsink = gst_bin_get_by_name(GST_BIN(m_gst_playbin),"subtitle_sink");
GstClock *clock;
clock = gst_element_get_clock (appsink);
- do
+ while ( !m_subtitle_pages.empty() )
{
page = m_subtitle_pages.front();
{
page = m_subtitle_pages.front();
@@
-1297,7
+1299,7
@@
void eServiceMP3::pushSubtitles()
m_subtitle_widget->setPage(page);
m_subtitle_pages.pop_front();
}
m_subtitle_widget->setPage(page);
m_subtitle_pages.pop_front();
}
- }
while ( !m_subtitle_pages.empty() )
;
+ } ;
gst_object_unref (clock);
}
gst_object_unref (clock);
}
@@
-1331,6
+1333,7
@@
RESULT eServiceMP3::enableSubtitles(eWidget *parent, ePyObject tuple)
g_object_get (G_OBJECT (m_gst_playbin), "current-text", &text_pid, NULL);
eDebug ("eServiceMP3::switched to subtitle stream %i", text_pid);
g_object_get (G_OBJECT (m_gst_playbin), "current-text", &text_pid, NULL);
eDebug ("eServiceMP3::switched to subtitle stream %i", text_pid);
+ m_subtitle_pages.clear();
return 0;
return 0;
@@
-1343,6
+1346,7
@@
error_out:
RESULT eServiceMP3::disableSubtitles(eWidget *parent)
{
eDebug("eServiceMP3::disableSubtitles");
RESULT eServiceMP3::disableSubtitles(eWidget *parent)
{
eDebug("eServiceMP3::disableSubtitles");
+ m_subtitle_pages.clear();
delete m_subtitle_widget;
m_subtitle_widget = 0;
return 0;
delete m_subtitle_widget;
m_subtitle_widget = 0;
return 0;