diff options
| author | Dave <vdr@pickles.me.uk> | 2011-08-25 11:49:36 +0100 |
|---|---|---|
| committer | Dave <vdr@pickles.me.uk> | 2011-08-25 11:49:36 +0100 |
| commit | b45ad0563be48c5548d846d9e1f3426381ccd529 (patch) | |
| tree | 07c5432039a71c9d990659ad1467ff00ca41321f /plugin | |
| parent | 6d8eee432b613a41ab8da095c3d6a8c892df20a2 (diff) | |
| download | vdrtva-b45ad0563be48c5548d846d9e1f3426381ccd529.tar.gz vdrtva-b45ad0563be48c5548d846d9e1f3426381ccd529.tar.bz2 | |
Fixed collection of Default Authority list.
Diffstat (limited to 'plugin')
| -rw-r--r-- | plugin/vdrtva.c | 37 |
1 files changed, 18 insertions, 19 deletions
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; + } } } } |
