From 54e57557c7867d3d492ce9bd658ec2d672cd0168 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Mon, 5 Dec 2005 11:17:11 +0000 Subject: use eit component tags to get language info of audio streams (premiere) --- lib/service/servicedvb.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'lib/service/servicedvb.cpp') 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 evt; + if (!m_event_handler.getEvent(evt, 0)) + { + ePtr 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) -- cgit v1.2.3