cPatPmtParser::ParsePmt() now also recognizes stream type 0x81 as "AC3"

This commit is contained in:
Klaus Schmidinger
2012-09-19 10:46:17 +02:00
parent ed456adc80
commit e11908cae6
3 changed files with 38 additions and 2 deletions

30
remux.c
View File

@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: remux.c 2.66 2012/09/18 09:11:24 kls Exp $
* $Id: remux.c 2.67 2012/09/19 10:28:42 kls Exp $
*/
#include "remux.h"
@@ -622,6 +622,34 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
}
}
break;
case 0x81: // STREAMTYPE_USER_PRIVATE
{
dbgpatpmt(" AC3");
char lang[MAXLANGCODE1] = { 0 };
SI::Descriptor *d;
for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) {
switch (d->getDescriptorTag()) {
case SI::ISO639LanguageDescriptorTag: {
SI::ISO639LanguageDescriptor *ld = (SI::ISO639LanguageDescriptor *)d;
dbgpatpmt(" '%s'", ld->languageCode);
strn0cpy(lang, I18nNormalizeLanguageCode(ld->languageCode), MAXLANGCODE1);
}
break;
default: ;
}
delete d;
}
if (NumDpids < MAXDPIDS) {
dpids[NumDpids] = stream.getPid();
dtypes[NumDpids] = SI::AC3DescriptorTag;
strn0cpy(dlangs[NumDpids], lang, sizeof(dlangs[NumDpids]));
if (updatePrimaryDevice && Setup.UseDolbyDigital)
cDevice::PrimaryDevice()->SetAvailableTrack(ttDolby, NumDpids, stream.getPid(), lang);
NumDpids++;
dpids[NumDpids]= 0;
}
}
break;
default: ;
}
dbgpatpmt("\n");