mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Implemented the CableDeliverySystemDescriptor in libdtv
This commit is contained in:
parent
dc8fd12f91
commit
91b5114838
@ -409,6 +409,7 @@ Gregoire Favre <greg@ulima.unil.ch>
|
|||||||
Sven Grothklags <sven@uni-paderborn.de>
|
Sven Grothklags <sven@uni-paderborn.de>
|
||||||
for fixing the cutting mechanism to make it re-sync in case a frame is larger
|
for fixing the cutting mechanism to make it re-sync in case a frame is larger
|
||||||
than the buffer
|
than the buffer
|
||||||
|
for implementing the CableDeliverySystemDescriptor in libdtv
|
||||||
|
|
||||||
Tomas Prybil <tomas.prybil@copper.se>
|
Tomas Prybil <tomas.prybil@copper.se>
|
||||||
for translating OSD texts to the Swedish language
|
for translating OSD texts to the Swedish language
|
||||||
|
3
HISTORY
3
HISTORY
@ -2109,9 +2109,10 @@ Video Disk Recorder Revision History
|
|||||||
- The red ("Record") and yellow ("Pause") button in the "Main" menu are no longer
|
- The red ("Record") and yellow ("Pause") button in the "Main" menu are no longer
|
||||||
available when replaying.
|
available when replaying.
|
||||||
|
|
||||||
2003-05-09: Version 1.1.31
|
2003-05-10: Version 1.1.31
|
||||||
|
|
||||||
- Introduced the new function cPlugin::Initialize(), in order to be able to separate
|
- Introduced the new function cPlugin::Initialize(), in order to be able to separate
|
||||||
the startup of a plugin into an "early" (Initialize()) and "late" (Start()) phase
|
the startup of a plugin into an "early" (Initialize()) and "late" (Start()) phase
|
||||||
(suggested by Andreas Schultz). Plugin authors should please read the section
|
(suggested by Andreas Schultz). Plugin authors should please read the section
|
||||||
about "Getting started" in PLUGINS.html and adapt their code if applicable.
|
about "Getting started" in PLUGINS.html and adapt their code if applicable.
|
||||||
|
- Implemented the CableDeliverySystemDescriptor in libdtv (thanks to Sven Grothklags)
|
||||||
|
@ -1054,6 +1054,28 @@ struct SatelliteDeliverySystemDescriptor {
|
|||||||
((struct SatelliteDeliverySystemDescriptor *)descr)->FEC = fec; \
|
((struct SatelliteDeliverySystemDescriptor *)descr)->FEC = fec; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
/* CableDeliverySystemDescriptor */
|
||||||
|
|
||||||
|
struct CableDeliverySystemDescriptor {
|
||||||
|
struct NODE Node;
|
||||||
|
unsigned short Tag;
|
||||||
|
long Frequency;
|
||||||
|
long SymbolRate;
|
||||||
|
char FEC;
|
||||||
|
char Modulation;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define CreateCableDeliverySystemDescriptor(descr, freq, sr, fec, 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)->Modulation = mod; \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
/* ServiceListDescriptor */
|
/* ServiceListDescriptor */
|
||||||
|
|
||||||
struct ServiceListDescriptor {
|
struct ServiceListDescriptor {
|
||||||
|
@ -540,6 +540,19 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DESCR_CABLE_DEL_SYS:
|
||||||
|
{
|
||||||
|
struct CableDeliverySystemDescriptor *cds =
|
||||||
|
(struct CableDeliverySystemDescriptor *)Descriptor;
|
||||||
|
|
||||||
|
printf ("%sDescriptor: Cable Delivery System\n", Prepend);
|
||||||
|
printf ("%s Frequency: %ld\n", Prepend, cds->Frequency);
|
||||||
|
printf ("%s SymbolRate: %ld\n", Prepend, cds->SymbolRate);
|
||||||
|
printf ("%s FEC: %d\n", Prepend, cds->FEC);
|
||||||
|
printf ("%s Modulation: %d\n", Prepend, cds->Modulation);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case DESCR_SERVICE_LIST:
|
case DESCR_SERVICE_LIST:
|
||||||
{
|
{
|
||||||
struct ServiceListEntry *Entry;
|
struct ServiceListEntry *Entry;
|
||||||
@ -572,7 +585,6 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case DESCR_STUFFING:
|
case DESCR_STUFFING:
|
||||||
case DESCR_CABLE_DEL_SYS:
|
|
||||||
case DESCR_VBI_DATA:
|
case DESCR_VBI_DATA:
|
||||||
case DESCR_VBI_TELETEXT:
|
case DESCR_VBI_TELETEXT:
|
||||||
case DESCR_MOSAIC:
|
case DESCR_MOSAIC:
|
||||||
@ -598,7 +610,7 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors)
|
|||||||
case DESCR_CELL_FREQ_LINK:
|
case DESCR_CELL_FREQ_LINK:
|
||||||
case DESCR_ANNOUNCEMENT_SUPPORT:
|
case DESCR_ANNOUNCEMENT_SUPPORT:
|
||||||
default:
|
default:
|
||||||
printf ("%sDescriptor: (noch nicht unterstützt)\n", Prepend);
|
printf ("%sDescriptor: %02x (noch nicht unterstützt)\n", Prepend, DescriptorTag (Descriptor));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1064,6 +1064,36 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DESCR_CABLE_DEL_SYS:
|
||||||
|
// fprintf (stderr, "got descriptor 0x%x\n", GetDescriptorTag(Buffer));
|
||||||
|
{
|
||||||
|
descr_cable_delivery_system_t *cds;
|
||||||
|
cds = (descr_cable_delivery_system_t *) Ptr;
|
||||||
|
if (CheckBcdChar (cds->frequency1) && CheckBcdChar (cds->frequency2) &&
|
||||||
|
CheckBcdChar (cds->frequency3) && CheckBcdChar (cds->frequency4) &&
|
||||||
|
CheckBcdChar (cds->symbol_rate1) && CheckBcdChar (cds->symbol_rate1) &&
|
||||||
|
CheckBcdChar (cds->symbol_rate3) && (cds->fec_inner != 0))
|
||||||
|
{
|
||||||
|
CreateCableDeliverySystemDescriptor (Descriptor,
|
||||||
|
BcdCharToInt (cds->frequency1) * 100 * 1000 * 1000 +
|
||||||
|
BcdCharToInt (cds->frequency2) * 1000 * 1000 +
|
||||||
|
BcdCharToInt (cds->frequency3) * 10 * 1000 +
|
||||||
|
BcdCharToInt (cds->frequency4) * 100,
|
||||||
|
BcdCharToInt (cds->symbol_rate1) * 10 * 1000 +
|
||||||
|
BcdCharToInt (cds->symbol_rate2) * 100 +
|
||||||
|
BcdCharToInt (cds->symbol_rate3),
|
||||||
|
cds->fec_inner,
|
||||||
|
cds->modulation
|
||||||
|
);
|
||||||
|
}
|
||||||
|
/* else
|
||||||
|
{
|
||||||
|
fprintf (stderr, "Illegal cds descriptor\n");
|
||||||
|
siDumpDescriptor (Buffer);
|
||||||
|
} */
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case DESCR_SERVICE_LIST:
|
case DESCR_SERVICE_LIST:
|
||||||
// fprintf (stderr, "got descriptor 0x%x\n", GetDescriptorTag(Buffer));
|
// fprintf (stderr, "got descriptor 0x%x\n", GetDescriptorTag(Buffer));
|
||||||
CreateServiceListDescriptor (Descriptor);
|
CreateServiceListDescriptor (Descriptor);
|
||||||
@ -1119,7 +1149,6 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer)
|
|||||||
case DESCR_SMOOTHING_BUFFER:
|
case DESCR_SMOOTHING_BUFFER:
|
||||||
case DESCR_STD:
|
case DESCR_STD:
|
||||||
case DESCR_IBP:
|
case DESCR_IBP:
|
||||||
case DESCR_CABLE_DEL_SYS:
|
|
||||||
case DESCR_VBI_DATA:
|
case DESCR_VBI_DATA:
|
||||||
case DESCR_VBI_TELETEXT:
|
case DESCR_VBI_TELETEXT:
|
||||||
case DESCR_MOSAIC:
|
case DESCR_MOSAIC:
|
||||||
@ -1181,7 +1210,6 @@ char *siGetDescriptorTextHandler (u_char *Buffer, int Length, int type)
|
|||||||
if ((*Buffer >= ' ' && *Buffer <= '~') || (*Buffer == '\n') ||
|
if ((*Buffer >= ' ' && *Buffer <= '~') || (*Buffer == '\n') ||
|
||||||
(*Buffer >= 0xa0 && *Buffer <= 0xff)) *tmp++ = *Buffer;
|
(*Buffer >= 0xa0 && *Buffer <= 0xff)) *tmp++ = *Buffer;
|
||||||
if (*Buffer == 0x8A) *tmp++ = '\n';
|
if (*Buffer == 0x8A) *tmp++ = '\n';
|
||||||
if (*Buffer == 0x86 || *Buffer == 0x87) *tmp++ = ' ';
|
|
||||||
if ((*Buffer == 0x86 || *Buffer == 0x87) && !(GDT_NAME_DESCRIPTOR & type)) *tmp++ = ' ';
|
if ((*Buffer == 0x86 || *Buffer == 0x87) && !(GDT_NAME_DESCRIPTOR & type)) *tmp++ = ' ';
|
||||||
Buffer++;
|
Buffer++;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user