Implemented 'Link Layer' based CAM support

This commit is contained in:
Klaus Schmidinger
2003-01-06 14:44:27 +01:00
parent 43b582a04d
commit 4e15f6d658
15 changed files with 2111 additions and 24 deletions

View File

@@ -315,6 +315,29 @@ struct Descriptor {
};
/* ConditionalAccessDescriptor */
struct ConditionalAccessDescriptor {
struct NODE Node;
unsigned short Tag;
unsigned short Amount; /* Data */
unsigned char *Data;
};
#define CreateConditionalAccessDescriptor(descr, amount, data) \
do \
{ \
unsigned char *tmpptr; \
\
xMemAlloc (amount, &tmpptr); \
memcpy (tmpptr, data, amount); \
xCreateNode (((struct ConditionalAccessDescriptor *)descr), NULL); \
((struct ConditionalAccessDescriptor *)descr)->Tag = DESCR_CA; \
((struct ConditionalAccessDescriptor *)descr)->Amount = amount; \
((struct ConditionalAccessDescriptor *)descr)->Data = tmpptr; \
} while (0)
/* Iso639LanguageDescriptor */
struct Iso639LanguageDescriptor {

View File

@@ -705,6 +705,12 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer)
HILO (CastTimeShiftedEventDescriptor(Ptr)->reference_event_id));
break;
case DESCR_CA:
CreateConditionalAccessDescriptor (Descriptor,
*(Ptr + 1) + 2, // we'll need the entire raw data!
Ptr);
break;
case DESCR_ISO_639_LANGUAGE:
CreateIso639LanguageDescriptor (Descriptor,
CastIso639LanguageDescriptor(Buffer)->lang_code1,
@@ -790,7 +796,6 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer)
case DESCR_DATA_STREAM_ALIGN:
case DESCR_TARGET_BACKGRID:
case DESCR_VIDEO_WINDOW:
case DESCR_CA:
case DESCR_SYSTEM_CLOCK:
case DESCR_MULTIPLEX_BUFFER_UTIL:
case DESCR_COPYRIGHT: