From b45ad0563be48c5548d846d9e1f3426381ccd529 Mon Sep 17 00:00:00 2001 From: Dave Date: Thu, 25 Aug 2011 11:49:36 +0100 Subject: Fixed collection of Default Authority list. --- plugin/vdrtva.c | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) (limited to 'plugin') diff --git a/plugin/vdrtva.c b/plugin/vdrtva.c index 7790713..95ad231 100644 --- a/plugin/vdrtva.c +++ b/plugin/vdrtva.c @@ -714,25 +714,24 @@ void cTvaFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length SI::SDT::Service SiSdtService; for (SI::Loop::Iterator it; sdt.serviceLoop.getNext(SiSdtService, it); ) { cChannel *chan = Channels.GetByChannelID(tChannelID(Source(),sdt.getOriginalNetworkId(),sdt.getTransportStreamId(),SiSdtService.getServiceId())); - if (!chan) { - return; - } - cChanDA *chanDA = ChanDAs->GetByChannelID(chan->Number()); - if (!chanDA) { - SI::Descriptor *d; - for (SI::Loop::Iterator it2; (d = SiSdtService.serviceDescriptors.getNext(it2)); ) { - switch (d->getDescriptorTag()) { - case SI::DefaultAuthorityDescriptorTag: { - SI::DefaultAuthorityDescriptor *da = (SI::DefaultAuthorityDescriptor *)d; - char DaBuf[Utf8BufSize(1024)]; - da->DefaultAuthority.getText(DaBuf, sizeof(DaBuf)); - chanDA = ChanDAs->NewChanDA(chan->Number()); - chanDA->SetDA(DaBuf); - } - break; - default: ; - } - delete d; + if (chan) { + cChanDA *chanDA = ChanDAs->GetByChannelID(chan->Number()); + if (!chanDA) { + SI::Descriptor *d; + for (SI::Loop::Iterator it2; (d = SiSdtService.serviceDescriptors.getNext(it2)); ) { + switch (d->getDescriptorTag()) { + case SI::DefaultAuthorityDescriptorTag: { + SI::DefaultAuthorityDescriptor *da = (SI::DefaultAuthorityDescriptor *)d; + char DaBuf[Utf8BufSize(1024)]; + da->DefaultAuthority.getText(DaBuf, sizeof(DaBuf)); + chanDA = ChanDAs->NewChanDA(chan->Number()); + chanDA->SetDA(DaBuf); + } + break; + default: ; + } + delete d; + } } } } -- cgit v1.2.3