aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-12-05 11:17:11 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2005-12-05 11:17:11 +0000
commit54e57557c7867d3d492ce9bd658ec2d672cd0168 (patch)
treeb75d3360ea29741219dd4522306a774bd04d9df6 /lib/service/servicedvb.cpp
parent91d875c1fe21ae2333475c74d46215b2ad3063cd (diff)
downloadenigma2-54e57557c7867d3d492ce9bd658ec2d672cd0168.tar.gz
enigma2-54e57557c7867d3d492ce9bd658ec2d672cd0168.zip
use eit component tags to get language info of audio streams (premiere)
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rw-r--r--lib/service/servicedvb.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 271b94f0..3cb5387a 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -789,9 +789,20 @@ RESULT eDVBServicePlay::getTrackInfo(struct iAudioTrackInfo &info, unsigned int
info.m_description = "DTS";
else
info.m_description = "???";
-
- /* CHECK here for component tag override. */
- info.m_language = program.audioStreams[i].language_code;
+
+ if (program.audioStreams[i].component_tag != -1)
+ {
+ ePtr<eServiceEvent> evt;
+ if (!m_event_handler.getEvent(evt, 0))
+ {
+ ePtr<eComponentData> data;
+ if (!evt->getComponentData(data, program.audioStreams[i].component_tag))
+ info.m_language = data->getText();
+ }
+ }
+
+ if (info.m_language.empty())
+ info.m_language = program.audioStreams[i].language_code;
return 0;
}
@@ -803,7 +814,7 @@ int eDVBServicePlay::selectAudioStream(int i)
if (m_service_handler.getProgramInfo(program))
return -1;
- if (i >= program.audioStreams.size())
+ if ((unsigned int)i >= program.audioStreams.size())
return -2;
if (!m_decoder)