summaryrefslogtreecommitdiff
path: root/mcast/common/.svn/text-base/siparser.h.svn-base
diff options
context:
space:
mode:
Diffstat (limited to 'mcast/common/.svn/text-base/siparser.h.svn-base')
-rw-r--r--mcast/common/.svn/text-base/siparser.h.svn-base369
1 files changed, 0 insertions, 369 deletions
diff --git a/mcast/common/.svn/text-base/siparser.h.svn-base b/mcast/common/.svn/text-base/siparser.h.svn-base
deleted file mode 100644
index 255ebe0..0000000
--- a/mcast/common/.svn/text-base/siparser.h.svn-base
+++ /dev/null
@@ -1,369 +0,0 @@
-#ifndef __SIPARSER_H__
-#define __SIPARSER_H__
-
-#define TS_SECT_LEN(buf) \
- unsigned char *ptr = buf; \
- int slen = (((ptr[1] << 8) | ptr[2]) & 0x0fff);
-
-
-#define TS_PACKET_LEN (188) /* TS RDSIZE is fixed !! */
-#define TS_SYNC_BYTE (0x47) /* SyncByte for TS ISO 138181-1 */
-#define TS_BUF_SIZE (256 * 1024) /* default DMX_Buffer Size for TS */
-#define PSI_BUF_SIZE (2 * 4096) /* Section length max. 12 bits */
-#define READ_BUF_SIZE (256*TS_PACKET_LEN) /* min. 2x TS_PACKET_LEN!!! */
-#define BILLION 1000000000L;
-#define MAX_DESC_LEN 255 //descriptor_length field 8-bit ISO/IEC 13818-1
-#define MAX_ES_PIDS 32
-
-
-#define VIDEO_11172_STREAM_TYPE 0x1 // STREAMTYPE_11172_VIDEO
-#define VIDEO_13818_STREAM_TYPE 0x2 // STREAMTYPE_13818_VIDEO
-#define VISUAL_MPEG4_STREAM_TYPE 0x10 // 14496-2 Visual MPEG-4
-#define VIDEO_H264_STREAM_TYPE 0x1b // 14496-10 Video h.264
-#define AUDIO_11172_STREAM_TYPE 0x3 // STREAMTYPE_11172_AUDIO
-#define AUDIO_13818_STREAM_TYPE 0x4 // STREAMTYPE_13818_AUDIO
-#define PRIVATE_13818_STREAM_TYPE 0x5 // STREAMTYPE_13818_PRIVATE
-#define PRIVATE_13818_PES_STREAM_TYPE 0x6 // STREAMTYPE_13818_PES_PRIVATE
-
-enum DescriptorTag {
- // defined by ISO/IEC 13818-1
- VideoStreamDescriptorTag = 0x02,
- AudioStreamDescriptorTag = 0x03,
- HierarchyDescriptorTag = 0x04,
- RegistrationDescriptorTag = 0x05,
- DataStreamAlignmentDescriptorTag = 0x06,
- TargetBackgroundGridDescriptorTag = 0x07,
- VideoWindowDescriptorTag = 0x08,
- CaDescriptorTag = 0x09,
- ISO639LanguageDescriptorTag = 0x0A,
- SystemClockDescriptorTag = 0x0B,
- MultiplexBufferUtilizationDescriptorTag = 0x0C,
- CopyrightDescriptorTag = 0x0D,
- MaximumBitrateDescriptorTag = 0x0E,
- PrivateDataIndicatorDescriptorTag = 0x0F,
- SmoothingBufferDescriptorTag = 0x10,
- STDDescriptorTag = 0x11,
- IBPDescriptorTag = 0x12,
- // defined by ISO-13818-6 (DSM-CC)
- CarouselIdentifierDescriptorTag = 0x13,
- // 0x14 - 0x3F Reserved
- // defined by ETSI (EN 300 468)
- NetworkNameDescriptorTag = 0x40,
- ServiceListDescriptorTag = 0x41,
- StuffingDescriptorTag = 0x42,
- SatelliteDeliverySystemDescriptorTag = 0x43,
- CableDeliverySystemDescriptorTag = 0x44,
- VBIDataDescriptorTag = 0x45,
- VBITeletextDescriptorTag = 0x46,
- BouquetNameDescriptorTag = 0x47,
- ServiceDescriptorTag = 0x48,
- CountryAvailabilityDescriptorTag = 0x49,
- LinkageDescriptorTag = 0x4A,
- NVODReferenceDescriptorTag = 0x4B,
- TimeShiftedServiceDescriptorTag = 0x4C,
- ShortEventDescriptorTag = 0x4D,
- ExtendedEventDescriptorTag = 0x4E,
- TimeShiftedEventDescriptorTag = 0x4F,
- ComponentDescriptorTag = 0x50,
- MocaicDescriptorTag = 0x51,
- StreamIdentifierDescriptorTag = 0x52,
- CaIdentifierDescriptorTag = 0x53,
- ContentDescriptorTag = 0x54,
- ParentalRatingDescriptorTag = 0x55,
- TeletextDescriptorTag = 0x56,
- TelephoneDescriptorTag = 0x57,
- LocalTimeOffsetDescriptorTag = 0x58,
- SubtitlingDescriptorTag = 0x59,
- TerrestrialDeliverySystemDescriptorTag = 0x5A,
- MultilingualNetworkNameDescriptorTag = 0x5B,
- MultilingualBouquetNameDescriptorTag = 0x5C,
- MultilingualServiceNameDescriptorTag = 0x5D,
- MultilingualComponentDescriptorTag = 0x5E,
- PrivateDataSpecifierDescriptorTag = 0x5F,
- ServiceMoveDescriptorTag = 0x60,
- ShortSmoothingBufferDescriptorTag = 0x61,
- FrequencyListDescriptorTag = 0x62,
- PartialTransportStreamDescriptorTag = 0x63,
- DataBroadcastDescriptorTag = 0x64,
- ScramblingDescriptorTag = 0x65,
- DataBroadcastIdDescriptorTag = 0x66,
- TransportStreamDescriptorTag = 0x67,
- DSNGDescriptorTag = 0x68,
- PDCDescriptorTag = 0x69,
- AC3DescriptorTag = 0x6A,
- AncillaryDataDescriptorTag = 0x6B,
- CellListDescriptorTag = 0x6C,
- CellFrequencyLinkDescriptorTag = 0x6D,
- AnnouncementSupportDescriptorTag = 0x6E,
- ApplicationSignallingDescriptorTag = 0x6F,
- AdaptationFieldDataDescriptorTag = 0x70,
- ServiceIdentifierDescriptorTag = 0x71,
- ServiceAvailabilityDescriptorTag = 0x72,
- // defined by ETSI (EN 300 468) v 1.7.1
- DefaultAuthorityDescriptorTag = 0x73,
- RelatedContentDescriptorTag = 0x74,
- TVAIdDescriptorTag = 0x75,
- ContentIdentifierDescriptorTag = 0x76,
- TimeSliceFecIdentifierDescriptorTag = 0x77,
- ECMRepetitionRateDescriptorTag = 0x78,
- S2SatelliteDeliverySystemDescriptorTag = 0x79,
- EnhancedAC3DescriptorTag = 0x7A,
- DTSDescriptorTag = 0x7B,
- AACDescriptorTag = 0x7C,
- ExtensionDescriptorTag = 0x7F,
-
- // Defined by ETSI TS 102 812 (MHP)
- // They once again start with 0x00 (see page 234, MHP specification)
- MHP_ApplicationDescriptorTag = 0x00,
- MHP_ApplicationNameDescriptorTag = 0x01,
- MHP_TransportProtocolDescriptorTag = 0x02,
- MHP_DVBJApplicationDescriptorTag = 0x03,
- MHP_DVBJApplicationLocationDescriptorTag = 0x04,
- // 0x05 - 0x0A is unimplemented this library
- MHP_ExternalApplicationAuthorisationDescriptorTag = 0x05,
- MHP_IPv4RoutingDescriptorTag = 0x06,
- MHP_IPv6RoutingDescriptorTag = 0x07,
- MHP_DVBHTMLApplicationDescriptorTag = 0x08,
- MHP_DVBHTMLApplicationLocationDescriptorTag = 0x09,
- MHP_DVBHTMLApplicationBoundaryDescriptorTag = 0x0A,
- MHP_ApplicationIconsDescriptorTag = 0x0B,
- MHP_PrefetchDescriptorTag = 0x0C,
- MHP_DelegatedApplicationDescriptorTag = 0x0E,
- MHP_ApplicationStorageDescriptorTag = 0x10,
- // Premiere private Descriptor Tags
- PremiereContentTransmissionDescriptorTag = 0xF2,
-
- //a descriptor currently unimplemented in this library
- //the actual value 0xFF is "forbidden" according to the spec.
- UnimplementedDescriptorTag = 0xFF
-};
-
-
-
-typedef struct ts_packet_hdr
-{
- unsigned int sync_byte;
- unsigned int transport_error_indicator;
- unsigned int payload_unit_start_indicator;
- unsigned int transport_priority;
- unsigned int pid;
- unsigned int transport_scrambling_control;
- unsigned int adaptation_field_control;
- unsigned int continuity_counter;
-} ts_packet_hdr_t;
-
-typedef struct pat {
- unsigned int table_id;
- unsigned int section_syntax_indicator;
- unsigned int reserved_1;
- unsigned int section_length;
- unsigned int transport_stream_id;
- unsigned int reserved_2;
- unsigned int version_number;
- unsigned int current_next_indicator;
- unsigned int section_number;
- unsigned int last_section_number;
-
- // FIXME: list of programs
-
- unsigned int crc32;
-} pat_t;
-
-typedef struct _pat_list {
- unsigned int program_number; //SID
- unsigned int reserved;
- unsigned int network_pmt_pid;
-
- int cads_present;
- int cads_num;
-
-} pat_list_t;
-
-typedef struct pmt_pid_list {
-
- pat_t p;
- pat_list_t *pl;
- unsigned int pmt_pids;
-
-} pmt_pid_list_t;
-
-typedef struct psi_buf {
-
- unsigned char *buf;
- unsigned int len;//used for offset
- unsigned int start;
-
- int pid;
- int continuity;
-
-} psi_buf_t;
-
-typedef struct pmt {
- unsigned int table_id;
- unsigned int section_syntax_indicator;
- unsigned int reserved_1;
- unsigned int section_length;
- unsigned int program_number;
- unsigned int reserved_2;
- unsigned int version_number;
- unsigned int current_next_indicator;
- unsigned int section_number;
- unsigned int last_section_number;
- unsigned int reserved_3;
- unsigned int pcr_pid;
- unsigned int reserved_4;
- unsigned int program_info_length;
-
- // N descriptors
-
- // N1 stream types and descriptors
-
- unsigned int crc32;
-} pmt_t;
-
-typedef struct es_pmt_info {
- unsigned int stream_type;
- unsigned int reserved_1;
- unsigned int elementary_pid;
- unsigned int reserved_2;
- unsigned int es_info_length;
-
- // N2 descriptor
-
-} es_pmt_info_t;
-
-typedef struct ca_descriptor {
-
- unsigned int descriptor_tag;
- unsigned int descriptor_length;
- unsigned int ca_system_id;
- unsigned int reserved;
- unsigned int ca_pid;
- unsigned char private_data[MAX_DESC_LEN];
-
-} si_desc_t;
-
-typedef struct pmt_descriptor {
-
- pmt_t pmt_hdr;
-
- int cas;
- si_desc_t *cad;
-
-} si_pmt_desc_t;
-
-typedef struct ca_descriptor_list {
-
- int cads;
- si_desc_t *cad;
-
-} si_cad_t;
-
-typedef struct ca_sid_info {
-
- int sid;
- int version;
- int offset;
- int len;
-
-} ca_sid_t;
-
-typedef struct ca_pmt_descriptors {
-
- int cads;
- int size;
- unsigned char *cad;
-
-} si_ca_pmt_t;
-
-typedef struct ca_es_pid_info {
-
- int pid;
- uint8_t type;
-
-} ca_es_pid_info_t;
-
-typedef struct ca_pmt_list {
-
- int sid;
- int pmt_pid;
-
- pmt_t p;
- si_ca_pmt_t pm;
- si_ca_pmt_t es;
-
- ca_es_pid_info_t espids[MAX_ES_PIDS];
- int es_pid_num;
-
-} ca_pmt_list_t;
-
-
-typedef struct ca_sid_list {
-
- int tc; //total number of CA desc.
- int num;
- ca_pmt_list_t *l;
-
-} ca_sid_list_t;
-
-typedef struct _cat {
- unsigned int table_id;
- unsigned int section_syntax_indicator;
- unsigned int reserved_1;
- unsigned int section_length;
- unsigned int reserved_2;
- unsigned int version_number;
- unsigned int current_next_indicator;
- unsigned int section_number;
- unsigned int last_section_number;
-
- // private section
-
- unsigned int crc32;
-} cat_t;
-
-typedef struct tdt_sect {
-
- uint8_t table_id;
- uint8_t section_syntax_indicator;
- uint8_t reserved; //0 future use
- uint8_t reserved_1;
- uint16_t section_length;
- uint8_t dvbdate[5];
-} tdt_sect_t;
-
-typedef struct _str_table {
- unsigned int from;
- unsigned int to;
- const char *str;
-} str_table;
-
-
-int parse_ca_descriptor(unsigned char *desc, si_desc_t *t);
-
-int ts2psi_data(unsigned char *buf,psi_buf_t *p,int len, int pid_req);
-int parse_pat_sect(unsigned char *buf, int size, pmt_pid_list_t *pmt);
-int parse_pmt_ca_desc(unsigned char *buf, int size, int sid, si_ca_pmt_t *pm_cads, si_ca_pmt_t *es_cads, pmt_t *pmt_hdr, int *fta, ca_es_pid_info_t *espid, int *es_pid_num);
-int parse_cat_sect(unsigned char *buf, int size, si_cad_t *emm);
-int parse_tdt_sect(unsigned char *buf, int size, tdt_sect_t *tdt);
-int get_ts_packet_hdr(unsigned char *buf, ts_packet_hdr_t *p);
-int si_get_video_pid(unsigned char *esi_buf, int size, int *vpid);
-int si_get_audio_pid(unsigned char *esi_buf, int size, int *apid);
-int si_get_private_pids(unsigned char *esi_buf, int size, int *upids);
-int get_pmt_es_pids(unsigned char *esi_buf, int size, int *es_pids, int all);
-void print_pat(pat_t *p, pat_list_t *pl, int pmt_num);
-void printhex_buf(char *msg,unsigned char *buf,int len);
-void writehex_buf(FILE *f,char *msg,unsigned char *buf,int len);
-void print_cad_lst(si_cad_t *l, int ts_id);
-void print_ca_bytes(si_desc_t *p);
-void get_time_mjd (unsigned long mjd, long *year , long *month, long *day);
-void print_tdt(tdt_sect_t *tdt, uint16_t mjd, uint32_t utc);
-int ca_free_cpl_desc(ca_pmt_list_t *cpl);
-char *si_caid_to_name(unsigned int caid);
-
-#endif
-
-
-
-
-