aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-09-22 11:47:48 +0200
committerghost <andreas.monzner@multimedia-labs.de>2009-09-22 11:47:48 +0200
commit913cbe91fcba552dc14d6123572398415b40eb40 (patch)
tree37ce8cc59ead87cc5f9d463ce7520727259388c5
parenta16d36a784dbe6a2f3a812407113f5983e911903 (diff)
downloadenigma2-913cbe91fcba552dc14d6123572398415b40eb40.tar.gz
enigma2-913cbe91fcba552dc14d6123572398415b40eb40.zip
fix wrong encoding of event description during pvr playback.. when info button is pressed
-rw-r--r--lib/dvb/pmt.cpp10
-rw-r--r--lib/service/servicedvb.cpp20
2 files changed, 14 insertions, 16 deletions
diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp
index a4fa212d..9bd065b3 100644
--- a/lib/dvb/pmt.cpp
+++ b/lib/dvb/pmt.cpp
@@ -184,7 +184,6 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program)
int first_ac3 = -1;
program.defaultAudioStream = 0;
- int rdsPid = -1;
audioStream *prev_audio = 0;
if ( m_service && !m_service->cacheEmpty() )
@@ -698,10 +697,7 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux,
eDVBCIInterfaces::getInstance()->addPMTHandler(this);
} else if (!simulate) // no simulation of playback services
{
- eDVBMetaParser parser;
-
- int ret=parser.parseFile(ref.path);
- if (ret || !parser.m_ref.getServiceID().get() /* incorrect sid in meta file or recordings.epl*/ )
+ if (!ref.getServiceID().get() /* incorrect sid in meta file or recordings.epl*/ )
{
eWarning("no .meta file found, trying to find PMT pid");
eDVBTSTools tstools;
@@ -717,9 +713,7 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux,
m_pmt_pid = pmt_pid;
}
}
- } else
- m_reference = parser.m_ref;
-
+ }
eDebug("alloc PVR");
/* allocate PVR */
res = m_resourceManager->allocatePVRChannel(m_pvr_channel);
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 06285190..1a28fbdd 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -1061,22 +1061,30 @@ void eDVBServicePlay::serviceEventTimeshift(int event)
RESULT eDVBServicePlay::start()
{
- int r;
+ eServiceReferenceDVB service = (eServiceReferenceDVB&)m_reference;
+
/* in pvr mode, we only want to use one demux. in tv mode, we're using
two (one for decoding, one for data source), as we must be prepared
to start recording from the data demux. */
if (m_is_pvr)
+ {
+ eDVBMetaParser meta;
+ if (!meta.parseFile(m_reference.path))
+ {
+ service = meta.m_ref;
+ service.path = m_reference.path;
+ }
m_cue = new eCueSheet();
+ }
else
m_event(this, evStart);
m_first_program_info = 1;
- eServiceReferenceDVB &service = (eServiceReferenceDVB&)m_reference;
- r = m_service_handler.tune(service, m_is_pvr, m_cue, false, m_dvb_service);
+ m_service_handler.tune(service, m_is_pvr, m_cue, false, m_dvb_service);
- /* inject EIT if there is a stored one */
if (m_is_pvr)
{
+ /* inject EIT if there is a stored one */
std::string filename = service.path;
filename.erase(filename.length()-2, 2);
filename+="eit";
@@ -1087,10 +1095,6 @@ RESULT eDVBServicePlay::start()
m_event_handler.inject(event, 0);
m_event_handler.inject(empty, 1);
}
- }
-
- if (m_is_pvr)
- {
loadCuesheet();
m_event(this, evStart);
}