- case TELETEXT_DESCRIPTOR:
- if ( program.textPid == -1 || (*es)->getPid() == cached_tpid )
- {
- subtitleStream s;
- s.subtitling_type = 0x01; // EBU TELETEXT SUBTITLES
- s.pid = program.textPid = (*es)->getPid();
- TeletextDescriptor *d = (TeletextDescriptor*)(*desc);
- const VbiTeletextList *list = d->getVbiTeletexts();
- for (VbiTeletextConstIterator it(list->begin()); it != list->end(); ++it)
- {
- switch((*it)->getTeletextType())
- {
- case 0x02: // Teletext subtitle page
- case 0x05: // Teletext subtitle page for hearing impaired pepople
- s.language_code = (*it)->getIso639LanguageCode();
- s.teletext_page_number = (*it)->getTeletextPageNumber();
- s.teletext_magazine_number = (*it)->getTeletextMagazineNumber();
-// eDebug("add teletext subtitle %s PID %04x, page number %d, magazine number %d",
-// s.language_code.c_str(), s.pid, s.teletext_page_number, s.teletext_magazine_number);
- program.subtitleStreams.push_back(s);
- break;
- }
- }
- }
+ break;
+ case DTS_DESCRIPTOR:
+ isaudio = 1;
+ audio.type = audioStream::atDTS;
+ break;
+ case 0x2B: // TS_PSI_DT_MPEG2_AAC
+ isaudio = 1;
+ audio.type = audioStream::atAAC; // MPEG2-AAC
+ break;
+ case 0x1C: // TS_PSI_DT_MPEG4_Audio
+ case AAC_DESCRIPTOR:
+ isaudio = 1;
+ audio.type = audioStream::atAACHE; // MPEG4-AAC
+ break;
+ case AC3_DESCRIPTOR:
+ isaudio = 1;
+ audio.type = audioStream::atAC3;
+ break;
+ case REGISTRATION_DESCRIPTOR: /* some services don't have a separate AC3 descriptor */
+ {
+ /* libdvbsi++ doesn't yet support this descriptor type, so work around. */
+ if ((*desc)->getLength() < 4)