aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-08-11 19:28:32 +0200
committerghost <andreas.monzner@multimedia-labs.de>2009-08-11 19:28:32 +0200
commit5d70fb1fa8db9464b4721f1beeb9f7e421b8308d (patch)
treed107f8d75ce104121b51856a63af1ee6cdafaef7 /lib/service/servicedvb.cpp
parent5a5f61e17be833c2b460bb8bc6acc3aa9c21010e (diff)
downloadenigma2-5d70fb1fa8db9464b4721f1beeb9f7e421b8308d.tar.gz
enigma2-5d70fb1fa8db9464b4721f1beeb9f7e421b8308d.zip
add support for rds data on own pids (i.e. hitradio ffh, harmony fm)
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rw-r--r--lib/service/servicedvb.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index a75c6cac..d04039df 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -1758,21 +1758,26 @@ int eDVBServicePlay::selectAudioStream(int i)
return -4;
}
+ int rdsPid = apid;
+
/* if we are not in PVR mode, timeshift is not active and we are not in pip mode, check if we need to enable the rds reader */
if (!(m_is_pvr || m_timeshift_active || !m_is_primary))
- if (!m_rds_decoder)
+ {
+ int different_pid = program.videoStreams.empty() && program.audioStreams.size() == 1 && program.audioStreams[stream].rdsPid != -1;
+ if (different_pid)
+ rdsPid = program.audioStreams[stream].rdsPid;
+ if (!m_rds_decoder || m_rds_decoder->getPid() != rdsPid)
{
+ m_rds_decoder = 0;
ePtr<iDVBDemux> data_demux;
if (!h.getDataDemux(data_demux))
{
- m_rds_decoder = new eDVBRdsDecoder(data_demux);
+ m_rds_decoder = new eDVBRdsDecoder(data_demux, different_pid);
m_rds_decoder->connectEvent(slot(*this, &eDVBServicePlay::rdsDecoderEvent), m_rds_decoder_event_connection);
+ m_rds_decoder->start(rdsPid);
}
}
-
- /* if we decided that we need one, update the pid */
- if (m_rds_decoder)
- m_rds_decoder->start(apid);
+ }
/* store new pid as default only when:
a.) we have an entry in the service db for the current service,