📄 sitable.h
字号:
UCHAR adaptationLength;
USHORT messageLength;
}DSMCCMessage;
typedef struct{
UINT magic;
USHORT version;
int messageSize;
UCHAR objectKeyLength;
UCHAR*objectKey;
UCHAR objectKindLength;
UCHAR*objectKind;
USHORT objectInfoLength;
UCHAR*objectInfo;
UCHAR serviceContextCount;
UCHAR*serviceContextBytes;
UINT messageBodyLengh;
UCHAR*messageBody;
/*union{
UINT contentLength;//for BIOP::FileMessage alias "fil"
USHORT bindCount;//for BIOP::DirectoryMessage alias "dir"
UCHAR tapCount;//for BIOP::StreamMessage alias "str"
//and BIOP::StreamEventMessage "ste"
};*/
}BIOPMessage;
typedef struct BIOPName{
UCHAR nameLength;
UCHAR *name;
UCHAR kindLength;
UCHAR*kind;
struct BIOPName*next;
}BIOPName;
typedef struct{
USHORT bindingsCount;
BIOPName*binds;
UCHAR*iorBytes;//pointer to IOP::IOR
}DirectoryMessage;
typedef struct DownloadInfoIndicate{
UINT downloadId;
USHORT blockSize;
UCHAR windowSize;
UCHAR ackperiod;
UINT tCDownloadWindow;
UINT tCDownloadScenario;
UCHAR*compatibilityDescriptor;
USHORT numberOfModules;
}DOWNLOADINFOINDICATE;
typedef struct dsmccDownloadData
{
char protocolDiscriminator;
char dsmccType;
USHORT messageId;
unsigned long downloadId;
int reserved;
int adaptationLength;
USHORT messsageLength;
}DSMCCDownloadData;
typedef struct dsmccModuleInfo{
USHORT moduleId;
int moduleSize;
UCHAR moduleVersion;
UCHAR moduleInfoLength;
UCHAR*moduleInfoBytes;//descriptions bytes
}ModuleInfo;
typedef struct{
USHORT moduleId;
UINT moduleSize;
UCHAR moduleVersion;
UCHAR moduleInfoLength;
UINT moduleTimeOut;
UINT blockTimtOut;
UINT minBlockTime;
UCHAR tapCount;
UCHAR*tapBytes;
}BIOPModuleInfo;
typedef struct dsmccGroupInfo{
UINT groupId;
UINT groupSize;
char*GroupCompatibility;
SHORT GroupCompatibilityLength;
USHORT GroupInfoLength;
char*GroupInfoBytes;//descriptions bytes
}GroupInfo;
typedef struct BIOPProfile{
UINT profileId_tag;
UINT profile_data_length;
UCHAR profile_data_byte_order;
UCHAR ComponentCount;
UCHAR*ComponentBytes;
//struct BIOPProfile*next;
}BIOPProfile;
typedef struct IOPIOR{
UINT typeId_length;
UCHAR*typeId;
int taggedProfileCount;
UCHAR*profileBytes;
}IOPIOR;
typedef struct{
UINT componentId_tag;
UCHAR component_data_length;
UINT carouselId;
USHORT moduleId;
USHORT version;
UCHAR objectKeyLength;
UCHAR*objectKey;
}BIOPObjectLocation;
typedef struct{
UINT componentId_tag;
UCHAR component_data_length;
UCHAR tapCount;
UCHAR*tapBytes;
}DSMConnBinder;
typedef struct{
USHORT selectorType;
UINT transactionId;
UINT timeOut;
}DSMMessageSelector;
typedef struct{
UINT Id;
UINT Use;
USHORT associationTag;
int selectorLength;
UCHAR*selectorBytes;
DSMMessageSelector msgSelector;
}DSMTap;
typedef struct{
UCHAR*serverid;
USHORT compatibilityDescriptorLength;
UCHAR*compatibilityDescriptor;
USHORT privateDataLength;
UCHAR*privateDataBytes;
}DOWNLOADSERVERINITIATE;//DOWNLOADSERVERINITIATE;
typedef struct{
IOPIOR iopior;
UCHAR downloadTapCount;
UCHAR*downloadTapBytes;
UCHAR serviceContextCount;
UCHAR*serviceContextBytes;
USHORT userInfoLength;
UCHAR* userInfoBytes;
}ServiceGatewayInfo;
typedef struct{
UCHAR nameLength;
UCHAR*Name;
UCHAR kindLength;
UCHAR*kind;
char bindType;//1--noobject(File),2--ncontent(Directory,ServiceGateway)
UCHAR*ior;
USHORT objectInfoLength;
UCHAR*objectInfo;
}Object;
typedef struct OCMSG{
UINT usedTimes;
//UINT clock;
UINT gdfsValue;
UINT size;
char SubDirPrepared;
int refCount;
UCHAR*msgData;
struct OCMSG*next;
struct OCMSG*prev;
}OCMSG;
//=====================================================================
//=====================DESCRIPTOR_PARSE====================================================
#ifdef __cplusplus
extern "C"{
#endif
UCHAR*FindDescriptor(UCHAR*des,SHORT dslen,UCHAR tag);
UCHAR GetSdtServiceName(DVBService*service,UCHAR*provider,UCHAR*sname,UCHAR*lan);
int GetSdtMosaicInfo(DVBService*service,MOSAICINFO*mosaic);
int GetNVODRefService(DVBService*service,NVODRefService*nvodrefService);
UINT BCD2Int(UINT value);
UINT Int2BCD(UINT value);
UCHAR GetDeliveryTuneInfo(DVBStream*ts,PRTunerParams*tune);
//========================================================================================
USHORT GetPatStreamID(UCHAR*section);
USHORT GetPmtPID(UCHAR*section,USHORT serviceID);//从PAT中获取指定service的PMT_PID
USHORT GetPmtServiceID(UCHAR*section);
int GetPmtMosaicInfo(UCHAR*section,MOSAICINFO*mosaic);
//====================for all SI subTable parse function==================================
USHORT GetSectionLength(UCHAR*section);
UCHAR GetSectionVersion(UCHAR*section);
UINT GetSectionCRC(UCHAR*section);
USHORT GetExtTableID(UCHAR*section);
UCHAR GetTableID(UCHAR*section);
UCHAR GetSectionNo(UCHAR*section);
UCHAR GetLastSectionNo(UCHAR*section);
USHORT GetDesciptorCount(UCHAR*des, SHORT deslooplen);
//======================for NIT and BAT===================================================
USHORT GetNitFirstLoopLen(UCHAR*section);
USHORT GetNitTSLoopLen(UCHAR*section);
USHORT GetNitTSCount(UCHAR*section);
USHORT GetNitNetID(UCHAR*section);
void GetNitTSStream(UCHAR*section,DVBStream*stream,int index);
USHORT GetBatBouquetID(UCHAR*section);
UCHAR GetNitNetworkName(UCHAR*section,UCHAR*name,UCHAR*lan);
UCHAR GetBatBouquetName(UCHAR*section,UCHAR*name,UCHAR*lan);
//=======================for SDT=========================================================
USHORT GetSdtStreamID(UCHAR*section);
USHORT GetSdtNetID(UCHAR*section);
void GetSdtService(UCHAR*section,DVBService*service,int index);
SHORT GetSdtServiceCount(UCHAR*section);
//=======================for EIT=========================================================
void GetYMDFromMJD(USHORT mjd,USHORT*year,USHORT*month,USHORT*day);
UCHAR GetWeekDay(USHORT mjd);
void GetEventInfo(UCHAR*buf,DVBEvent*event);
UCHAR* GetEitEvent(UCHAR*section,DVBEvent*event,int index);
SHORT GetEitEventCount(UCHAR*section);
UCHAR GetEitSegmentLastSecNo(UCHAR*section);
UCHAR GetEitLastTableID(UCHAR*section);
USHORT GetEitNetID(UCHAR*section);
USHORT GetEitStreamID(UCHAR*section);
USHORT GetEitServiceID(UCHAR*section);
// SYSTIME GetEitEventTime
UCHAR GetShortEventName(DVBEvent*event,char*eventName,char*txt, char*lan);
UCHAR GetEventContentType(DVBEvent*event,UCHAR*tp1,UCHAR*tp2);
//======================for TDT TOT=========================================================
void GetUTCTime(UCHAR*section,USHORT*mjd,UINT*time);
void GetHMSFromUTC(INT utc,USHORT*hh,USHORT*min,USHORT*sec);
UINT UTC2Seconds(INT utc);
void GetTOTTime(UCHAR*section,USHORT*mjd,UINT*time);
INT GetTOTOffsetInfo(UCHAR*section,TIMEOFFSETINFO*tos);
//======================for PAT============================================================
void GetPatProgram(UCHAR*section,DVBProgram*prog,int index);
USHORT GetPatProgramCount(UCHAR*section);
//=======================for PMT===========================================================
USHORT GetPmtPCRPID(UCHAR*section);
void GetPmtElement(UCHAR*section,ProgElement*element,int index);
SHORT GetPmtElementCount(UCHAR*section);
SHORT GetPmtProgramInfoLen(UCHAR*section);
UCHAR GetTeletextInfo(ProgElement*element,TeletextInfo*teletextInfo);
//=======================for DSMCC (DC)====================================================
int GetMsgHeaderLength(UCHAR*section);
int GetDSMCCMessage(UCHAR*section,DSMCCMessage*msg);
int GetDDBData(UCHAR *section,UCHAR *buf);
//*************for DII**************
int GetModuleInfo(UCHAR*section,int index,ModuleInfo*mi);
int GetDownloadInfoIndicate(UCHAR*section,DOWNLOADINFOINDICATE*dii);
char*GetModuleName(ModuleInfo*mi,char*name,int maxnamelen);
//*************for DSI**************
int GetGroupInfo(UCHAR*section,int index,GroupInfo*gi);
int GetDownloadServerInitiate(UCHAR*section,DOWNLOADSERVERINITIATE*dsi);
int GetServiceGatewayInfo(UCHAR*section,ServiceGatewayInfo*gi);
int GetGroupCount(UCHAR*section);
//////////////////////////////////////////////////////////////////////////
//for BIOPMessage IOP::IOR..
int GetIOPIOR(UCHAR*p,IOPIOR*ior);
int GetProfile(IOPIOR*ior,int index,BIOPProfile*profile);
int FindProfile(IOPIOR*ior,BIOPProfile*profile,UINT profileId_tag);
int GetObjectLocation(BIOPProfile*profile,BIOPObjectLocation*location);
int GetConnBinder(BIOPProfile*profile,DSMConnBinder*binder);
int GetDSMTap(UCHAR*p,DSMTap*tap);
int GetConnBinderTap(DSMConnBinder*binder,int index,DSMTap*tap);
int GetObjectByName(BIOPMessage*msg,const char*name,Object*obj);
int GetBIOPMessage(UCHAR*p,BIOPMessage*msg);
int GetOCObject(BIOPMessage*msg,int index,Object*obj);
int FindMessage(UCHAR*moduleBytes,UINT moduleSize,BIOPMessage*msg,UCHAR*key);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -