mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-09-01 18:01:13 +02:00
zapit/src/scannit.cpp: WIP. add PRIVATE_DATA_SPECIFIER_DESCRIPTOR
This commit is contained in:
@@ -26,11 +26,12 @@
|
|||||||
#include <dvbsi++/descriptor_tag.h>
|
#include <dvbsi++/descriptor_tag.h>
|
||||||
#include <dvbsi++/network_name_descriptor.h>
|
#include <dvbsi++/network_name_descriptor.h>
|
||||||
#include <dvbsi++/linkage_descriptor.h>
|
#include <dvbsi++/linkage_descriptor.h>
|
||||||
|
#include <dvbsi++/private_data_specifier_descriptor.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <eitd/edvbstring.h>
|
#include <eitd/edvbstring.h>
|
||||||
|
|
||||||
#define DEBUG_NIT
|
#define DEBUG_NIT
|
||||||
//#define DEBUG_NIT_UNUSED
|
#define DEBUG_NIT_UNUSED
|
||||||
#define DEBUG_LCN
|
#define DEBUG_LCN
|
||||||
|
|
||||||
CNit::CNit(t_satellite_position spos, freq_id_t frq, unsigned short pnid, int dnum)
|
CNit::CNit(t_satellite_position spos, freq_id_t frq, unsigned short pnid, int dnum)
|
||||||
@@ -168,6 +169,7 @@ bool CNit::Parse()
|
|||||||
#ifdef DEBUG_NIT
|
#ifdef DEBUG_NIT
|
||||||
printf("NIT: section %d, %d descriptors\n", nit->getSectionNumber(), dlist->size());
|
printf("NIT: section %d, %d descriptors\n", nit->getSectionNumber(), dlist->size());
|
||||||
#endif
|
#endif
|
||||||
|
unsigned int pdsd = 0;
|
||||||
for (dit = dlist->begin(); dit != dlist->end(); ++dit) {
|
for (dit = dlist->begin(); dit != dlist->end(); ++dit) {
|
||||||
Descriptor * d = *dit;
|
Descriptor * d = *dit;
|
||||||
switch(d->getTag()) {
|
switch(d->getTag()) {
|
||||||
@@ -186,13 +188,22 @@ bool CNit::Parse()
|
|||||||
LinkageDescriptor * ld = (LinkageDescriptor*) d;
|
LinkageDescriptor * ld = (LinkageDescriptor*) d;
|
||||||
printf("NIT: linkage, tsid %04x onid %04x sid %04x type %02x\n", ld->getTransportStreamId(),
|
printf("NIT: linkage, tsid %04x onid %04x sid %04x type %02x\n", ld->getTransportStreamId(),
|
||||||
ld->getOriginalNetworkId(), ld->getServiceId(), ld->getLinkageType());
|
ld->getOriginalNetworkId(), ld->getServiceId(), ld->getLinkageType());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PRIVATE_DATA_SPECIFIER_DESCRIPTOR:
|
||||||
|
{
|
||||||
|
PrivateDataSpecifierDescriptor * pd = (PrivateDataSpecifierDescriptor *)d;
|
||||||
|
pdsd = pd->getPrivateDataSpecifier();
|
||||||
|
#ifdef DEBUG_NIT
|
||||||
|
printf("NIT: private data specifier %08x\n", pdsd);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_NIT_UNUSED
|
#ifdef DEBUG_NIT_UNUSED
|
||||||
printf("NIT net loop: descriptor %02x len %d: ", d->getTag(), d->getLength());
|
printf("NIT: descriptor %02x len %d: ", d->getTag(), d->getLength());
|
||||||
#if 0
|
#if 0
|
||||||
uint8_t len = 2+d->getLength();
|
uint8_t len = 2+d->getLength();
|
||||||
uint8_t buf[len];
|
uint8_t buf[len];
|
||||||
@@ -210,7 +221,7 @@ bool CNit::Parse()
|
|||||||
for(TransportStreamInfoConstIterator tit = tslist->begin(); tit != tslist->end(); ++tit) {
|
for(TransportStreamInfoConstIterator tit = tslist->begin(); tit != tslist->end(); ++tit) {
|
||||||
TransportStreamInfo * tsinfo = *tit;
|
TransportStreamInfo * tsinfo = *tit;
|
||||||
dlist = tsinfo->getDescriptors();
|
dlist = tsinfo->getDescriptors();
|
||||||
#if 0
|
#ifdef DEBUG_NIT
|
||||||
printf("NIT: tsid %04x onid %04x %d descriptors\n", tsinfo->getTransportStreamId(),
|
printf("NIT: tsid %04x onid %04x %d descriptors\n", tsinfo->getTransportStreamId(),
|
||||||
tsinfo->getOriginalNetworkId(), dlist->size());
|
tsinfo->getOriginalNetworkId(), dlist->size());
|
||||||
#endif
|
#endif
|
||||||
@@ -230,14 +241,23 @@ bool CNit::Parse()
|
|||||||
ParseServiceList((ServiceListDescriptor *) d, tsinfo);
|
ParseServiceList((ServiceListDescriptor *) d, tsinfo);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PRIVATE_DATA_SPECIFIER_DESCRIPTOR:
|
||||||
|
{
|
||||||
|
PrivateDataSpecifierDescriptor * pd = (PrivateDataSpecifierDescriptor *)d;
|
||||||
|
pdsd = pd->getPrivateDataSpecifier();
|
||||||
|
#ifdef DEBUG_NIT
|
||||||
|
printf("NIT: private data specifier %08x\n", pdsd);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case LOGICAL_CHANNEL_DESCRIPTOR:
|
case LOGICAL_CHANNEL_DESCRIPTOR:
|
||||||
ParseLogicalChannels((LogicalChannelDescriptor *) d, tsinfo);
|
ParseLogicalChannels((LogicalChannelDescriptor *) d, tsinfo);
|
||||||
break;
|
break;
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_NIT_UNUSED
|
#ifdef DEBUG_NIT_UNUSED
|
||||||
printf("NIT TS loop: descriptor %02x: ", d->getTag());
|
printf("NIT: descriptor %02x: ", d->getTag());
|
||||||
uint8_t len = 2+d->getLength();
|
uint8_t len = 2+d->getLength();
|
||||||
uint8_t buf[len];
|
uint8_t buf[len];
|
||||||
d->writeToBuffer(buf);
|
d->writeToBuffer(buf);
|
||||||
|
Reference in New Issue
Block a user