diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-12-05 11:17:11 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-12-05 11:17:11 +0000 |
| commit | 54e57557c7867d3d492ce9bd658ec2d672cd0168 (patch) | |
| tree | b75d3360ea29741219dd4522306a774bd04d9df6 /lib/service/servicedvb.cpp | |
| parent | 91d875c1fe21ae2333475c74d46215b2ad3063cd (diff) | |
| download | enigma2-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.cpp | 19 |
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) |
