mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
New version from Rolf Hakenes, fixing newline characters
This commit is contained in:
parent
5011616a3e
commit
df15ec5f91
@ -4,8 +4,8 @@
|
|||||||
### ###
|
### ###
|
||||||
##############################################################
|
##############################################################
|
||||||
|
|
||||||
## $Revision: 1.2 $
|
## $Revision: 1.4 $
|
||||||
## $Date: 2001/06/25 19:39:00 $
|
## $Date: 2001/10/07 10:24:46 $
|
||||||
## $Author: hakenes $
|
## $Author: hakenes $
|
||||||
##
|
##
|
||||||
## (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
## (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
||||||
@ -80,4 +80,4 @@ $(SILIB) : $(OBJS)
|
|||||||
@echo compiling $<...
|
@echo compiling $<...
|
||||||
@$(CC) $(DEFINES) $(CFLAGS) $(INCDIRS) -c $<
|
@$(CC) $(DEFINES) $(CFLAGS) $(INCDIRS) -c $<
|
||||||
|
|
||||||
include Makefile.dep
|
-include Makefile.dep
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
/// ///
|
/// ///
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// $Revision: 1.3 $
|
// $Revision: 1.4 $
|
||||||
// $Date: 2001/06/25 19:39:00 $
|
// $Date: 2001/10/07 10:24:46 $
|
||||||
// $Author: hakenes $
|
// $Author: hakenes $
|
||||||
//
|
//
|
||||||
// (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
// (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
||||||
@ -288,18 +288,20 @@ struct PidInfo {
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
#define STREAMTYPE_ISO_VIDEO 1
|
#define STREAMTYPE_11172_VIDEO 1
|
||||||
#define STREAMTYPE_13818_VIDEO 2
|
#define STREAMTYPE_13818_VIDEO 2
|
||||||
#define STREAMTYPE_11172_AUDIO 3
|
#define STREAMTYPE_11172_AUDIO 3
|
||||||
#define STREAMTYPE_13818_AUDIO 4
|
#define STREAMTYPE_13818_AUDIO 4
|
||||||
#define STREAMTYPE_VIDEOTEXT 6
|
#define STREAMTYPE_13818_PRIVATE 5
|
||||||
#define STREAMTYPE_13522_MPEG 7
|
#define STREAMTYPE_13818_PES_PRIVATE 6
|
||||||
#define STREAMTYPE_ITU_222 8
|
#define STREAMTYPE_13522_MHPEG 7
|
||||||
#define STREAMTYPE_13818_A 9
|
#define STREAMTYPE_13818_DSMCC 8
|
||||||
#define STREAMTYPE_13818_B 10
|
#define STREAMTYPE_ITU_222_1 9
|
||||||
#define STREAMTYPE_13818_C 11
|
#define STREAMTYPE_13818_A 10
|
||||||
#define STREAMTYPE_13818_D 12
|
#define STREAMTYPE_13818_B 11
|
||||||
#define STREAMTYPE_13818_AUX 13
|
#define STREAMTYPE_13818_C 12
|
||||||
|
#define STREAMTYPE_13818_D 13
|
||||||
|
#define STREAMTYPE_13818_AUX 14
|
||||||
|
|
||||||
/* Descriptors */
|
/* Descriptors */
|
||||||
|
|
||||||
@ -331,6 +333,58 @@ struct Iso639LanguageDescriptor {
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
/* Ac3Descriptor */
|
||||||
|
|
||||||
|
#define AC3_TYPE_FLAG 0x0001
|
||||||
|
#define BS_ID_FLAG 0x0002
|
||||||
|
#define MAIN_ID_FLAG 0x0004
|
||||||
|
#define ASVC_FLAG 0x0008
|
||||||
|
|
||||||
|
struct Ac3Descriptor {
|
||||||
|
struct NODE Node;
|
||||||
|
unsigned short Tag;
|
||||||
|
unsigned short PresentFlags;
|
||||||
|
unsigned short Ac3Type;
|
||||||
|
unsigned short BsId;
|
||||||
|
unsigned short MainId;
|
||||||
|
unsigned short Asvc;
|
||||||
|
unsigned short Amount; /* AdditionalData */
|
||||||
|
unsigned char *AdditionalData;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define CreateAc3Descriptor(descr) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
xCreateNode (((struct Ac3Descriptor *)descr), NULL); \
|
||||||
|
((struct Ac3Descriptor *)descr)->Tag = DESCR_AC3; \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define AddAc3FlagAndValue(descr, flg, val) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
if ((flg) & AC3_TYPE_FLAG) { \
|
||||||
|
((struct Ac3Descriptor *)descr)->PresentFlags |= AC3_TYPE_FLAG; \
|
||||||
|
((struct Ac3Descriptor *)descr)->Ac3Type = (val); } \
|
||||||
|
else if ((flg) & BS_ID_FLAG) { \
|
||||||
|
((struct Ac3Descriptor *)descr)->PresentFlags |= BS_ID_FLAG; \
|
||||||
|
((struct Ac3Descriptor *)descr)->BsId = (val); } \
|
||||||
|
else if ((flg) & MAIN_ID_FLAG) { \
|
||||||
|
((struct Ac3Descriptor *)descr)->PresentFlags |= MAIN_ID_FLAG; \
|
||||||
|
((struct Ac3Descriptor *)descr)->MainId = (val); } \
|
||||||
|
else if ((flg) & ASVC_FLAG) { \
|
||||||
|
((struct Ac3Descriptor *)descr)->PresentFlags |= ASVC_FLAG; \
|
||||||
|
((struct Ac3Descriptor *)descr)->Asvc = (val); } \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define AddAc3AdditionalData(descr, ptr, len) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
xMemAlloc ((len)+1, &(((struct Ac3Descriptor *) \
|
||||||
|
descr)->AdditionalData)); \
|
||||||
|
memcpy ((((struct Ac3Descriptor *)descr)->AdditionalData),(ptr),(len)); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
/* AncillaryDataDescriptor */
|
/* AncillaryDataDescriptor */
|
||||||
|
|
||||||
struct AncillaryDataDescriptor {
|
struct AncillaryDataDescriptor {
|
||||||
@ -778,6 +832,106 @@ struct ShortEventDescriptor {
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
/* TeletextDescriptor */
|
||||||
|
|
||||||
|
struct TeletextDescriptor {
|
||||||
|
struct NODE Node;
|
||||||
|
unsigned short Tag;
|
||||||
|
struct LIST *Items;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define CreateTeletextDescriptor(descr) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
xCreateNode (((struct TeletextDescriptor *)descr), NULL); \
|
||||||
|
((struct TeletextDescriptor *)descr)->Tag = DESCR_TELETEXT; \
|
||||||
|
((struct TeletextDescriptor *)descr)->Items = xNewList (NULL); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define TELETEXT_TYPE_INITIAL_PAGE 0x0001
|
||||||
|
#define TELETEXT_TYPE_SUBTITLE_PAGE 0x0002
|
||||||
|
#define TELETEXT_TYPE_ADDITIONAL_INFO 0x0003
|
||||||
|
#define TELETEXT_TYPE_PROGRAM_SCHEDULE 0x0004
|
||||||
|
#define TELETEXT_TYPE_HEARING_IMPAIRED 0x0005
|
||||||
|
|
||||||
|
struct TeletextItem {
|
||||||
|
struct NODE Node;
|
||||||
|
char LanguageCode[4];
|
||||||
|
unsigned short Type;
|
||||||
|
unsigned short MagazineNumber;
|
||||||
|
unsigned short PageNumber;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define CreateTeletextItem(itm, tp, mg, pg, lc1, lc2, lc3) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
xCreateNode (itm, NULL); \
|
||||||
|
((struct TeletextItem *)itm)->Type = (tp); \
|
||||||
|
((struct TeletextItem *)itm)->MagazineNumber = (mg); \
|
||||||
|
((struct TeletextItem *)itm)->PageNumber = (mg); \
|
||||||
|
((struct TeletextItem *)itm)->LanguageCode[0] = (lc1); \
|
||||||
|
((struct TeletextItem *)itm)->LanguageCode[1] = (lc2); \
|
||||||
|
((struct TeletextItem *)itm)->LanguageCode[2] = (lc3); \
|
||||||
|
((struct TeletextItem *)itm)->LanguageCode[3] = '\0'; \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define AddTeletextItem(desc, tp, mg, pg, lc1, lc2, lc3) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
struct TeletextItem *item; \
|
||||||
|
\
|
||||||
|
CreateTeletextItem(item, tp, mg, pg, lc1, lc2, lc3); \
|
||||||
|
xAddTail (((struct TeletextDescriptor *)desc)->Items, item); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
/* SubtitlingDescriptor */
|
||||||
|
|
||||||
|
struct SubtitlingDescriptor {
|
||||||
|
struct NODE Node;
|
||||||
|
unsigned short Tag;
|
||||||
|
struct LIST *Items;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define CreateSubtitlingDescriptor(descr) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
xCreateNode (((struct SubtitlingDescriptor *)descr), NULL); \
|
||||||
|
((struct SubtitlingDescriptor *)descr)->Tag = DESCR_SUBTITLING; \
|
||||||
|
((struct SubtitlingDescriptor *)descr)->Items = xNewList (NULL); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
struct SubtitlingItem {
|
||||||
|
struct NODE Node;
|
||||||
|
char LanguageCode[4];
|
||||||
|
unsigned char Type;
|
||||||
|
unsigned short CompositionPageId;
|
||||||
|
unsigned short AncillaryPageId;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define CreateSubtitlingItem(itm, tp, cp, ap, lc1, lc2, lc3) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
xCreateNode (itm, NULL); \
|
||||||
|
((struct SubtitlingItem *)itm)->Type = (tp); \
|
||||||
|
((struct SubtitlingItem *)itm)->CompositionPageId = (cp); \
|
||||||
|
((struct SubtitlingItem *)itm)->AncillaryPageId = (ap); \
|
||||||
|
((struct SubtitlingItem *)itm)->LanguageCode[0] = (lc1); \
|
||||||
|
((struct SubtitlingItem *)itm)->LanguageCode[1] = (lc2); \
|
||||||
|
((struct SubtitlingItem *)itm)->LanguageCode[2] = (lc3); \
|
||||||
|
((struct SubtitlingItem *)itm)->LanguageCode[3] = '\0'; \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
#define AddSubtitlingItem(desc, tp, cp, ap, lc1, lc2, lc3) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
struct SubtitlingItem *item; \
|
||||||
|
\
|
||||||
|
CreateSubtitlingItem(item, tp, cp, ap, lc1, lc2, lc3); \
|
||||||
|
xAddTail (((struct SubtitlingDescriptor *)desc)->Items, item); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Prototypes */
|
/* Prototypes */
|
||||||
|
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
/// ///
|
/// ///
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// $Revision: 1.2 $
|
// $Revision: 1.3 $
|
||||||
// $Date: 2001/08/15 10:00:00 $
|
// $Date: 2001/10/07 10:24:46 $
|
||||||
// $Author: hakenes $
|
// $Author: hakenes $
|
||||||
//
|
//
|
||||||
// (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
// (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
||||||
@ -26,9 +26,6 @@
|
|||||||
// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
// Boston, MA 02111-1307, USA.
|
// Boston, MA 02111-1307, USA.
|
||||||
|
|
||||||
#ifndef SI_TABLES_H
|
|
||||||
#define SI_TABLES_H
|
|
||||||
|
|
||||||
#define HILO(x) (x##_hi << 8 | x##_lo)
|
#define HILO(x) (x##_hi << 8 | x##_lo)
|
||||||
|
|
||||||
#define MjdToEpochTime(x) (((x##_hi << 8 | x##_lo)-40587)*86400)
|
#define MjdToEpochTime(x) (((x##_hi << 8 | x##_lo)-40587)*86400)
|
||||||
@ -930,14 +927,29 @@ typedef struct parental_rating_struct {
|
|||||||
|
|
||||||
/* 0x56 teletext_descriptor */
|
/* 0x56 teletext_descriptor */
|
||||||
|
|
||||||
#define DESCR_TELETEXT_LEN XX
|
#define DESCR_TELETEXT_LEN 2
|
||||||
typedef struct descr_teletext_struct {
|
typedef struct descr_teletext_struct {
|
||||||
u_char descriptor_tag :8;
|
u_char descriptor_tag :8;
|
||||||
u_char descriptor_length :8;
|
u_char descriptor_length :8;
|
||||||
/* TBD */
|
|
||||||
} descr_teletext_t;
|
} descr_teletext_t;
|
||||||
#define CastTeletextDescriptor(x) ((descr_teletext_t *)(x))
|
#define CastTeletextDescriptor(x) ((descr_teletext_t *)(x))
|
||||||
|
|
||||||
|
#define ITEM_TELETEXT_LEN 5
|
||||||
|
typedef struct item_teletext_struct {
|
||||||
|
u_char lang_code1 :8;
|
||||||
|
u_char lang_code2 :8;
|
||||||
|
u_char lang_code3 :8;
|
||||||
|
#if BYTE_ORDER == BIG_ENDIAN
|
||||||
|
u_char type :5;
|
||||||
|
u_char magazine_number :3;
|
||||||
|
#else
|
||||||
|
u_char magazine_number :3;
|
||||||
|
u_char type :5;
|
||||||
|
#endif
|
||||||
|
u_char page_number :8;
|
||||||
|
} item_teletext_t;
|
||||||
|
#define CastTeletextItem(x) ((item_teletext_t *)(x))
|
||||||
|
|
||||||
|
|
||||||
/* 0x57 telephone_descriptor */
|
/* 0x57 telephone_descriptor */
|
||||||
|
|
||||||
@ -963,14 +975,26 @@ typedef struct descr_local_time_offset_struct {
|
|||||||
|
|
||||||
/* 0x59 subtitling_descriptor */
|
/* 0x59 subtitling_descriptor */
|
||||||
|
|
||||||
#define DESCR_SUBTITLING_LEN XX
|
#define DESCR_SUBTITLING_LEN 2
|
||||||
typedef struct descr_subtitling_struct {
|
typedef struct descr_subtitling_struct {
|
||||||
u_char descriptor_tag :8;
|
u_char descriptor_tag :8;
|
||||||
u_char descriptor_length :8;
|
u_char descriptor_length :8;
|
||||||
/* TBD */
|
|
||||||
} descr_subtitling_t;
|
} descr_subtitling_t;
|
||||||
#define CastSubtitlingDescriptor(x) ((descr_subtitling_t *)(x))
|
#define CastSubtitlingDescriptor(x) ((descr_subtitling_t *)(x))
|
||||||
|
|
||||||
|
#define ITEM_SUBTITLING_LEN 8
|
||||||
|
typedef struct item_subtitling_struct {
|
||||||
|
u_char lang_code1 :8;
|
||||||
|
u_char lang_code2 :8;
|
||||||
|
u_char lang_code3 :8;
|
||||||
|
u_char subtitling_type :8;
|
||||||
|
u_char composition_page_id_hi :8;
|
||||||
|
u_char composition_page_id_lo :8;
|
||||||
|
u_char ancillary_page_id_hi :8;
|
||||||
|
u_char ancillary_page_id_lo :8;
|
||||||
|
} item_subtitling_t;
|
||||||
|
#define CastSubtitlingItem(x) ((item_subtitling_t *)(x))
|
||||||
|
|
||||||
|
|
||||||
/* 0x5A terrestrial_delivery_system_descriptor */
|
/* 0x5A terrestrial_delivery_system_descriptor */
|
||||||
|
|
||||||
@ -1150,11 +1174,27 @@ typedef struct descr_pdc_struct {
|
|||||||
|
|
||||||
/* 0x6A ac3_descriptor */
|
/* 0x6A ac3_descriptor */
|
||||||
|
|
||||||
#define DESCR_AC3_LEN XX
|
#define DESCR_AC3_LEN 3
|
||||||
typedef struct descr_ac3_struct {
|
typedef struct descr_ac3_struct {
|
||||||
u_char descriptor_tag :8;
|
u_char descriptor_tag :8;
|
||||||
u_char descriptor_length :8;
|
u_char descriptor_length :8;
|
||||||
/* TBD */
|
#if BYTE_ORDER == BIG_ENDIAN
|
||||||
|
u_char ac3_type_flag :1;
|
||||||
|
u_char bsid_flag :1;
|
||||||
|
u_char mainid_flag :1;
|
||||||
|
u_char asvc_flag :1;
|
||||||
|
u_char reserved :4;
|
||||||
|
#else
|
||||||
|
u_char reserved :4;
|
||||||
|
u_char asvc_flag :1;
|
||||||
|
u_char mainid_flag :1;
|
||||||
|
u_char bsid_flag :1;
|
||||||
|
u_char ac3_type_flag :1;
|
||||||
|
#endif
|
||||||
|
u_char ac3_type :8;
|
||||||
|
u_char bsid :8;
|
||||||
|
u_char mainid :8;
|
||||||
|
u_char asvc :8;
|
||||||
} descr_ac3_t;
|
} descr_ac3_t;
|
||||||
#define CastAc3Descriptor(x) ((descr_ac3_t *)(x))
|
#define CastAc3Descriptor(x) ((descr_ac3_t *)(x))
|
||||||
|
|
||||||
@ -1202,4 +1242,4 @@ typedef struct descr_announcement_support_struct {
|
|||||||
} descr_announcement_support_t;
|
} descr_announcement_support_t;
|
||||||
#define CastAnnouncementSupportDescriptor(x) ((descr_announcement_support_t *)(x))
|
#define CastAnnouncementSupportDescriptor(x) ((descr_announcement_support_t *)(x))
|
||||||
|
|
||||||
#endif
|
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
/// ///
|
/// ///
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// $Revision: 1.2 $
|
// $Revision: 1.4 $
|
||||||
// $Date: 2001/06/25 19:39:00 $
|
// $Date: 2001/10/07 10:24:46 $
|
||||||
// $Author: hakenes $
|
// $Author: hakenes $
|
||||||
//
|
//
|
||||||
// (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
// (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
||||||
@ -34,8 +34,6 @@
|
|||||||
#include "si_debug_services.h"
|
#include "si_debug_services.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void siDebugServices (struct LIST *Services)
|
void siDebugServices (struct LIST *Services)
|
||||||
{
|
{
|
||||||
struct Service *Service;
|
struct Service *Service;
|
||||||
@ -328,9 +326,9 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors)
|
|||||||
((struct ExtendedEventDescriptor *)Descriptor)->LanguageCode);
|
((struct ExtendedEventDescriptor *)Descriptor)->LanguageCode);
|
||||||
xForeach (((struct ExtendedEventDescriptor *)Descriptor)->Items, Item)
|
xForeach (((struct ExtendedEventDescriptor *)Descriptor)->Items, Item)
|
||||||
{
|
{
|
||||||
printf ("%s Item:\n");
|
printf ("%s Item:\n", Prepend);
|
||||||
printf ("%s Description: %s\n", xName(Item));
|
printf ("%s Description: %s\n", Prepend, xName(Item));
|
||||||
printf ("%s Text: %s\n", Item->Text);
|
printf ("%s Text: %s\n", Prepend, Item->Text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -445,6 +443,52 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DESCR_TELETEXT:
|
||||||
|
{
|
||||||
|
struct TeletextItem *Item;
|
||||||
|
|
||||||
|
printf ("%sDescriptor: Teletext\n", Prepend);
|
||||||
|
xForeach (((struct TeletextDescriptor *)Descriptor)->Items, Item)
|
||||||
|
{
|
||||||
|
printf ("%s Item:\n");
|
||||||
|
printf ("%s LanguageCode: %s\n", Prepend, Item->LanguageCode);
|
||||||
|
printf ("%s Type: ", Prepend);
|
||||||
|
switch (Item->Type)
|
||||||
|
{
|
||||||
|
case 0x01: printf ("initial Teletext page\n"); break;
|
||||||
|
case 0x02: printf ("Teletext subtitle page\n"); break;
|
||||||
|
case 0x03: printf ("additional information page\n"); break;
|
||||||
|
case 0x04: printf ("programme schedule page\n"); break;
|
||||||
|
case 0x05: printf ("Teletext subtitle page ");
|
||||||
|
printf ("for hearing impaired people\n"); break;
|
||||||
|
default: printf ("reserved for future use\n"); break;
|
||||||
|
}
|
||||||
|
printf ("%s MagazineNumber: %x\n", Prepend, Item->MagazineNumber);
|
||||||
|
printf ("%s PageNumber: %x\n", Prepend, Item->PageNumber);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DESCR_SUBTITLING:
|
||||||
|
{
|
||||||
|
struct SubtitlingItem *Item;
|
||||||
|
|
||||||
|
printf ("%sDescriptor: Subtitling\n", Prepend);
|
||||||
|
xForeach (((struct SubtitlingDescriptor *)Descriptor)->Items, Item)
|
||||||
|
{
|
||||||
|
printf ("%s Item:\n");
|
||||||
|
printf ("%s LanguageCode: %s\n", Prepend, Item->LanguageCode);
|
||||||
|
printf ("%s Type: ", Prepend);
|
||||||
|
for (i = 0; i < COMPONENT_TYPE_NUMBER; i++)
|
||||||
|
if ((0x03 == ComponentTypes[i].Content) &&
|
||||||
|
(Item->Type == ComponentTypes[i].Type))
|
||||||
|
{ printf ("%s\n", ComponentTypes[i].Description); break; }
|
||||||
|
printf ("%s CompositionPageId: %x\n", Prepend, Item->CompositionPageId);
|
||||||
|
printf ("%s AncillaryPageId: %x\n", Prepend, Item->AncillaryPageId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case DESCR_NW_NAME:
|
case DESCR_NW_NAME:
|
||||||
case DESCR_SERVICE_LIST:
|
case DESCR_SERVICE_LIST:
|
||||||
case DESCR_STUFFING:
|
case DESCR_STUFFING:
|
||||||
@ -453,10 +497,8 @@ void siDebugDescriptors (char *Prepend, struct LIST *Descriptors)
|
|||||||
case DESCR_VBI_DATA:
|
case DESCR_VBI_DATA:
|
||||||
case DESCR_VBI_TELETEXT:
|
case DESCR_VBI_TELETEXT:
|
||||||
case DESCR_MOSAIC:
|
case DESCR_MOSAIC:
|
||||||
case DESCR_TELETEXT:
|
|
||||||
case DESCR_TELEPHONE:
|
case DESCR_TELEPHONE:
|
||||||
case DESCR_LOCAL_TIME_OFF:
|
case DESCR_LOCAL_TIME_OFF:
|
||||||
case DESCR_SUBTITLING:
|
|
||||||
case DESCR_TERR_DEL_SYS:
|
case DESCR_TERR_DEL_SYS:
|
||||||
case DESCR_ML_NW_NAME:
|
case DESCR_ML_NW_NAME:
|
||||||
case DESCR_ML_BQ_NAME:
|
case DESCR_ML_BQ_NAME:
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
/// ///
|
/// ///
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// $Revision: 1.2 $
|
// $Revision: 1.4 $
|
||||||
// $Date: 2001/06/25 19:39:00 $
|
// $Date: 2001/10/07 10:24:46 $
|
||||||
// $Author: hakenes $
|
// $Author: hakenes $
|
||||||
//
|
//
|
||||||
// (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
// (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
||||||
@ -725,6 +725,62 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer)
|
|||||||
Ptr + DESCR_LINKAGE_LEN);
|
Ptr + DESCR_LINKAGE_LEN);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DESCR_TELETEXT:
|
||||||
|
CreateTeletextDescriptor (Descriptor);
|
||||||
|
Length = GetDescriptorLength (Buffer) - DESCR_TELETEXT_LEN;
|
||||||
|
Ptr += DESCR_TELETEXT_LEN;
|
||||||
|
while (Length > 0)
|
||||||
|
{
|
||||||
|
AddTeletextItem (Descriptor,
|
||||||
|
CastTeletextItem(Ptr)->type,
|
||||||
|
CastTeletextItem(Ptr)->magazine_number,
|
||||||
|
CastTeletextItem(Ptr)->page_number,
|
||||||
|
CastTeletextItem(Ptr)->lang_code1,
|
||||||
|
CastTeletextItem(Ptr)->lang_code2,
|
||||||
|
CastTeletextItem(Ptr)->lang_code3);
|
||||||
|
Length -= ITEM_TELETEXT_LEN;
|
||||||
|
Ptr += ITEM_TELETEXT_LEN;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DESCR_AC3:
|
||||||
|
CreateAc3Descriptor (Descriptor);
|
||||||
|
Length = GetDescriptorLength (Buffer);
|
||||||
|
if (CastAc3Descriptor(Buffer)->ac3_type_flag)
|
||||||
|
{ Length -= 1; Ptr += 1; AddAc3FlagAndValue (Descriptor,
|
||||||
|
AC3_TYPE_FLAG, CastAc3Descriptor(Buffer)->ac3_type); }
|
||||||
|
if (CastAc3Descriptor(Buffer)->bsid_flag)
|
||||||
|
{ Length -= 1; Ptr += 1; AddAc3FlagAndValue (Descriptor,
|
||||||
|
BS_ID_FLAG, CastAc3Descriptor(Buffer)->bsid); }
|
||||||
|
if (CastAc3Descriptor(Buffer)->mainid_flag)
|
||||||
|
{ Length -= 1; Ptr += 1; AddAc3FlagAndValue (Descriptor,
|
||||||
|
MAIN_ID_FLAG, CastAc3Descriptor(Buffer)->mainid); }
|
||||||
|
if (CastAc3Descriptor(Buffer)->asvc_flag)
|
||||||
|
{ Length -= 1; Ptr += 1; AddAc3FlagAndValue (Descriptor,
|
||||||
|
ASVC_FLAG, CastAc3Descriptor(Buffer)->asvc); }
|
||||||
|
Length -= DESCR_AC3_LEN;
|
||||||
|
Ptr += DESCR_AC3_LEN;
|
||||||
|
if (Length) AddAc3AdditionalData (Descriptor, Ptr, Length);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DESCR_SUBTITLING:
|
||||||
|
CreateSubtitlingDescriptor (Descriptor);
|
||||||
|
Length = GetDescriptorLength (Buffer) - DESCR_SUBTITLING_LEN;
|
||||||
|
Ptr += DESCR_SUBTITLING_LEN;
|
||||||
|
while (Length > 0)
|
||||||
|
{
|
||||||
|
AddSubtitlingItem (Descriptor,
|
||||||
|
CastSubtitlingItem(Ptr)->subtitling_type,
|
||||||
|
HILO (CastSubtitlingItem(Ptr)->composition_page_id),
|
||||||
|
HILO (CastSubtitlingItem(Ptr)->ancillary_page_id),
|
||||||
|
CastSubtitlingItem(Ptr)->lang_code1,
|
||||||
|
CastSubtitlingItem(Ptr)->lang_code2,
|
||||||
|
CastSubtitlingItem(Ptr)->lang_code3);
|
||||||
|
Length -= ITEM_SUBTITLING_LEN;
|
||||||
|
Ptr += ITEM_SUBTITLING_LEN;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case DESCR_VIDEO_STREAM:
|
case DESCR_VIDEO_STREAM:
|
||||||
case DESCR_AUDIO_STREAM:
|
case DESCR_AUDIO_STREAM:
|
||||||
case DESCR_HIERARCHY:
|
case DESCR_HIERARCHY:
|
||||||
@ -748,10 +804,8 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer)
|
|||||||
case DESCR_VBI_DATA:
|
case DESCR_VBI_DATA:
|
||||||
case DESCR_VBI_TELETEXT:
|
case DESCR_VBI_TELETEXT:
|
||||||
case DESCR_MOSAIC:
|
case DESCR_MOSAIC:
|
||||||
case DESCR_TELETEXT:
|
|
||||||
case DESCR_TELEPHONE:
|
case DESCR_TELEPHONE:
|
||||||
case DESCR_LOCAL_TIME_OFF:
|
case DESCR_LOCAL_TIME_OFF:
|
||||||
case DESCR_SUBTITLING:
|
|
||||||
case DESCR_TERR_DEL_SYS:
|
case DESCR_TERR_DEL_SYS:
|
||||||
case DESCR_ML_NW_NAME:
|
case DESCR_ML_NW_NAME:
|
||||||
case DESCR_ML_BQ_NAME:
|
case DESCR_ML_BQ_NAME:
|
||||||
@ -768,7 +822,6 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer)
|
|||||||
case DESCR_TRANSPORT_STREAM:
|
case DESCR_TRANSPORT_STREAM:
|
||||||
case DESCR_DSNG:
|
case DESCR_DSNG:
|
||||||
case DESCR_PDC:
|
case DESCR_PDC:
|
||||||
case DESCR_AC3:
|
|
||||||
case DESCR_CELL_LIST:
|
case DESCR_CELL_LIST:
|
||||||
case DESCR_CELL_FREQ_LINK:
|
case DESCR_CELL_FREQ_LINK:
|
||||||
case DESCR_ANNOUNCEMENT_SUPPORT:
|
case DESCR_ANNOUNCEMENT_SUPPORT:
|
||||||
@ -799,8 +852,10 @@ char *siGetDescriptorText (u_char *Buffer, u_int Length)
|
|||||||
if (*Buffer == 0) break;
|
if (*Buffer == 0) break;
|
||||||
|
|
||||||
if ((*Buffer >= ' ' && *Buffer <= '~') ||
|
if ((*Buffer >= ' ' && *Buffer <= '~') ||
|
||||||
(*Buffer >= 0xa0 && *Buffer <= 0xff)) *tmp++ = *Buffer++;
|
(*Buffer >= 0xa0 && *Buffer <= 0xff)) *tmp++ = *Buffer;
|
||||||
else Buffer++;
|
if (*Buffer == 0x8A) *tmp++ = '\n';
|
||||||
|
if (*Buffer == 0x86 || *Buffer == 0x87) *tmp++ = ' ';
|
||||||
|
Buffer++;
|
||||||
}
|
}
|
||||||
*tmp = '\0';
|
*tmp = '\0';
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
### ###
|
### ###
|
||||||
##############################################################
|
##############################################################
|
||||||
|
|
||||||
## $Revision: 1.2 $
|
## $Revision: 1.3 $
|
||||||
## $Date: 2001/06/25 19:39:00 $
|
## $Date: 2001/10/06 15:33:46 $
|
||||||
## $Author: hakenes $
|
## $Author: hakenes $
|
||||||
##
|
##
|
||||||
## (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
## (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
/// ///
|
/// ///
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// $Revision: 1.3 $
|
// $Revision: 1.1 $
|
||||||
// $Date: 2001/06/25 19:39:00 $
|
// $Date: 2001/10/07 10:25:33 $
|
||||||
// $Author: hakenes $
|
// $Author: hakenes $
|
||||||
//
|
//
|
||||||
// (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
// (C) 2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
/// ///
|
/// ///
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
// $Revision: 1.3 $
|
// $Revision: 1.4 $
|
||||||
// $Date: 2001/06/25 19:39:00 $
|
// $Date: 2001/10/06 15:33:46 $
|
||||||
// $Author: hakenes $
|
// $Author: hakenes $
|
||||||
//
|
//
|
||||||
// (C) 1992-2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
// (C) 1992-2001 Rolf Hakenes <hakenes@hippomi.de>, under the GNU GPL.
|
||||||
|
Loading…
Reference in New Issue
Block a user