From 05eefccc9e20d520d173156ab5dffbcc90f4351f Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Mon, 28 Nov 2005 01:53:20 +0000 Subject: audio: add language display --- lib/dvb/pmt.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'lib/dvb/pmt.cpp') diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index c0c65b27..5a1b7c5c 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -6,6 +6,8 @@ #include #include #include +#include +#include eDVBServicePMTHandler::eDVBServicePMTHandler(int record) :m_ca_servicePtr(0) @@ -175,7 +177,30 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program) break; } if (isaudio) + { + for (DescriptorConstIterator desc = (*es)->getDescriptors()->begin(); + desc != (*es)->getDescriptors()->end(); ++desc) + { + switch ((*desc)->getTag()) + { + case ISO_639_LANGUAGE_DESCRIPTOR: + { + const Iso639LanguageList *languages = ((Iso639LanguageDescriptor*)*desc)->getIso639Languages(); + + /* use last language code */ + for (Iso639LanguageConstIterator i(languages->begin()); i != languages->end(); ++i) + audio.language_code = (*i)->getIso639LanguageCode(); + + break; + } + case COMPONENT_DESCRIPTOR: + audio.component_tag = ((ComponentDescriptor*)*desc)->getComponentTag(); + break; + } + } + program.audioStreams.push_back(audio); + } if (isvideo) program.videoStreams.push_back(video); } -- cgit v1.2.3