mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Implemented the TerrestrialDeliverySystemDescriptor in libdtv
This commit is contained in:
@@ -1037,18 +1037,20 @@ struct SatelliteDeliverySystemDescriptor {
|
||||
unsigned short Tag;
|
||||
long Frequency;
|
||||
short OrbitalPosition;
|
||||
short Modulation;
|
||||
char Polarization;
|
||||
long SymbolRate;
|
||||
char FEC;
|
||||
};
|
||||
|
||||
#define CreateSatelliteDeliverySystemDescriptor(descr, freq, orb, polar, sr, fec) \
|
||||
#define CreateSatelliteDeliverySystemDescriptor(descr, freq, orb, mod, polar, sr, fec) \
|
||||
do \
|
||||
{ \
|
||||
xCreateNode (((struct SatelliteDeliverySystemDescriptor *)descr), NULL); \
|
||||
((struct SatelliteDeliverySystemDescriptor *)descr)->Tag = DESCR_SAT_DEL_SYS; \
|
||||
((struct SatelliteDeliverySystemDescriptor *)descr)->Frequency = freq; \
|
||||
((struct SatelliteDeliverySystemDescriptor *)descr)->OrbitalPosition = orb; \
|
||||
((struct SatelliteDeliverySystemDescriptor *)descr)->Modulation = mod; \
|
||||
((struct SatelliteDeliverySystemDescriptor *)descr)->Polarization = polar; \
|
||||
((struct SatelliteDeliverySystemDescriptor *)descr)->SymbolRate = sr; \
|
||||
((struct SatelliteDeliverySystemDescriptor *)descr)->FEC = fec; \
|
||||
@@ -1061,21 +1063,55 @@ struct CableDeliverySystemDescriptor {
|
||||
unsigned short Tag;
|
||||
long Frequency;
|
||||
long SymbolRate;
|
||||
char FEC;
|
||||
char FECouter;
|
||||
char FECinner;
|
||||
char Modulation;
|
||||
};
|
||||
|
||||
#define CreateCableDeliverySystemDescriptor(descr, freq, sr, fec, mod) \
|
||||
#define CreateCableDeliverySystemDescriptor(descr, freq, sr, fec_o, fec_i, mod) \
|
||||
do \
|
||||
{ \
|
||||
xCreateNode (((struct CableDeliverySystemDescriptor *)descr), NULL); \
|
||||
((struct CableDeliverySystemDescriptor *)descr)->Tag = DESCR_CABLE_DEL_SYS; \
|
||||
((struct CableDeliverySystemDescriptor *)descr)->Frequency = freq; \
|
||||
((struct CableDeliverySystemDescriptor *)descr)->SymbolRate = sr; \
|
||||
((struct CableDeliverySystemDescriptor *)descr)->FEC = fec; \
|
||||
((struct CableDeliverySystemDescriptor *)descr)->FECouter = fec_o; \
|
||||
((struct CableDeliverySystemDescriptor *)descr)->FECinner = fec_i; \
|
||||
((struct CableDeliverySystemDescriptor *)descr)->Modulation = mod; \
|
||||
} while (0)
|
||||
|
||||
/* TerrestrialDeliverySystemDescriptor */
|
||||
|
||||
struct TerrestrialDeliverySystemDescriptor {
|
||||
struct NODE Node;
|
||||
unsigned short Tag;
|
||||
long Frequency;
|
||||
char Bandwidth;
|
||||
char Constellation;
|
||||
char Hierarchy;
|
||||
char CodeRateHP;
|
||||
char CodeRateLP;
|
||||
char GuardInterval;
|
||||
char TransmissionMode;
|
||||
char OtherFrequencyFlag;
|
||||
};
|
||||
|
||||
#define CreateTerrestrialDeliverySystemDescriptor(descr, freq, bw, cst, hr, crh, crl, gi, tm, ofm) \
|
||||
do \
|
||||
{ \
|
||||
xCreateNode (((struct CableDeliverySystemDescriptor *)descr), NULL); \
|
||||
((struct TerrestrialDeliverySystemDescriptor *)descr)->Tag = DESCR_TERR_DEL_SYS; \
|
||||
((struct TerrestrialDeliverySystemDescriptor *)descr)->Frequency = freq; \
|
||||
((struct TerrestrialDeliverySystemDescriptor *)descr)->Bandwidth = bw; \
|
||||
((struct TerrestrialDeliverySystemDescriptor *)descr)->Constellation = cst; \
|
||||
((struct TerrestrialDeliverySystemDescriptor *)descr)->Hierarchy = hr; \
|
||||
((struct TerrestrialDeliverySystemDescriptor *)descr)->CodeRateHP = crh; \
|
||||
((struct TerrestrialDeliverySystemDescriptor *)descr)->CodeRateLP = crl; \
|
||||
((struct TerrestrialDeliverySystemDescriptor *)descr)->GuardInterval = gi; \
|
||||
((struct TerrestrialDeliverySystemDescriptor *)descr)->TransmissionMode = tm; \
|
||||
((struct TerrestrialDeliverySystemDescriptor *)descr)->OtherFrequencyFlag = ofm; \
|
||||
} while (0)
|
||||
|
||||
/* ServiceListDescriptor */
|
||||
|
||||
struct ServiceListDescriptor {
|
||||
|
@@ -1126,7 +1126,41 @@ typedef struct item_subtitling_struct {
|
||||
typedef struct descr_terrestrial_delivery_struct {
|
||||
u_char descriptor_tag :8;
|
||||
u_char descriptor_length :8;
|
||||
/* TBD */
|
||||
u_char frequency1 :8;
|
||||
u_char frequency2 :8;
|
||||
u_char frequency3 :8;
|
||||
u_char frequency4 :8;
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
u_char bandwidth :3;
|
||||
u_char reserved1 :5;
|
||||
#else
|
||||
u_char reserved1 :5;
|
||||
u_char bandwidth :3;
|
||||
#endif
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
u_char constellation :2;
|
||||
u_char hierarchy :3;
|
||||
u_char code_rate_HP :3;
|
||||
#else
|
||||
u_char code_rate_HP :3;
|
||||
u_char hierarchy :3;
|
||||
u_char constellation :2;
|
||||
#endif
|
||||
#if BYTE_ORDER == BIG_ENDIAN
|
||||
u_char code_rate_LP :3;
|
||||
u_char guard_interval :2;
|
||||
u_char transmission_mode :2;
|
||||
u_char other_frequency_flag :1;
|
||||
#else
|
||||
u_char other_frequency_flag :1;
|
||||
u_char transmission_mode :2;
|
||||
u_char guard_interval :2;
|
||||
u_char code_rate_LP :3;
|
||||
#endif
|
||||
u_char reserver2 :8;
|
||||
u_char reserver3 :8;
|
||||
u_char reserver4 :8;
|
||||
u_char reserver5 :8;
|
||||
} descr_terrestrial_delivery_system_t;
|
||||
#define CastTerrestrialDeliverySystemDescriptor(x) ((descr_terrestrial_delivery_system_t *)(x))
|
||||
|
||||
|
Reference in New Issue
Block a user