aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-08-09 20:27:43 +0200
committerghost <andreas.monzner@multimedia-labs.de>2009-08-09 20:27:43 +0200
commitb15e769c8b4a63847c9ebe53eb4b5c1435bae778 (patch)
treefab954bdad5b4619eb6df1511c1d4257ce0e62ab /lib/service
parentb68433e2a86955a8a1bf5fa98fcb77110ed805bd (diff)
downloadenigma2-b15e769c8b4a63847c9ebe53eb4b5c1435bae778.tar.gz
enigma2-b15e769c8b4a63847c9ebe53eb4b5c1435bae778.zip
servicedvb.cpp: fix segfault caused by yesterday subtitle re-enable patch on timeshift/live transition
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/servicedvb.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 5166414f..a75c6cac 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -2329,23 +2329,24 @@ void eDVBServicePlay::updateDecoder()
m_decoder->connectVideoEvent(slot(*this, &eDVBServicePlay::video_event), m_video_event_connection);
if (m_is_primary)
{
- ePyObject subs;
- if (m_timeshift_changed)
- subs = getCachedSubtitle();
m_teletext_parser = new eDVBTeletextParser(m_decode_demux);
m_teletext_parser->connectNewPage(slot(*this, &eDVBServicePlay::newSubtitlePage), m_new_subtitle_page_connection);
m_subtitle_parser = new eDVBSubtitleParser(m_decode_demux);
m_subtitle_parser->connectNewPage(slot(*this, &eDVBServicePlay::newDVBSubtitlePage), m_new_dvb_subtitle_page_connection);
- if (subs)
+ if (m_timeshift_changed)
{
- int type = PyInt_AsLong(PyTuple_GET_ITEM(subs, 0)),
- pid = PyInt_AsLong(PyTuple_GET_ITEM(subs, 1)),
- comp_page = PyInt_AsLong(PyTuple_GET_ITEM(subs, 2)), // ttx page
- anc_page = PyInt_AsLong(PyTuple_GET_ITEM(subs, 3)); // ttx magazine
- if (type == 0) // dvb
- m_subtitle_parser->start(pid, comp_page, anc_page);
- else if (type == 1) // ttx
- m_teletext_parser->setPageAndMagazine(comp_page, anc_page);
+ ePyObject subs = getCachedSubtitle();
+ if (subs != Py_None)
+ {
+ int type = PyInt_AsLong(PyTuple_GET_ITEM(subs, 0)),
+ pid = PyInt_AsLong(PyTuple_GET_ITEM(subs, 1)),
+ comp_page = PyInt_AsLong(PyTuple_GET_ITEM(subs, 2)), // ttx page
+ anc_page = PyInt_AsLong(PyTuple_GET_ITEM(subs, 3)); // ttx magazine
+ if (type == 0) // dvb
+ m_subtitle_parser->start(pid, comp_page, anc_page);
+ else if (type == 1) // ttx
+ m_teletext_parser->setPageAndMagazine(comp_page, anc_page);
+ }
Py_DECREF(subs);
}
}