vdr  2.4.1
descriptor.c
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (c) 2003 by Marcel Wiesweg *
3  * *
4  * This program is free software; you can redistribute it and/or modify *
5  * it under the terms of the GNU General Public License as published by *
6  * the Free Software Foundation; either version 2 of the License, or *
7  * (at your option) any later version. *
8  * *
9  * $Id: descriptor.c 4.0.1.1 2019/03/15 22:38:36 kls Exp $
10  * *
11  ***************************************************************************/
12 
13 #include <string.h>
14 #include "descriptor.h"
15 
16 namespace SI {
17 
19  int offset=0;
20  const descr_short_event *s;
21  data.setPointerAndOffset<const descr_short_event>(s, offset);
25  languageCode[3]=0;
26  name.setDataAndOffset(data+offset, s->event_name_length, offset);
27  const descr_short_event_mid *mid;
29  text.setData(data+offset, mid->text_length);
30 }
31 
33  return s->descriptor_number;
34 }
35 
37  return s->last_descriptor_number;
38 }
39 
41  int offset=0;
47  itemLoop.setDataAndOffset(data+offset, s->length_of_items, offset);
48  const descr_extended_event_mid *mid;
50  text.setData(data+offset, mid->text_length);
51 }
52 
54  int offset=0;
55  const item_extended_event *first;
56  data.setPointerAndOffset<const item_extended_event>(first, offset);
58  const item_extended_event_mid *mid;
60  item.setData(data+offset, mid->item_length);
61 }
62 
63 /*int ExtendedEventDescriptors::getTextLength() {
64  int ret=0;
65  for (int i=0;i<length;i++) {
66  ExtendedEventDescriptor *d=(ExtendedEventDescriptor *)array[i];
67  if (!d)
68  continue;
69  ret+=d->text.getLength();
70  ExtendedEventDescriptor::Item item;
71  for (Loop::Iterator it; d->itemLoop.hasNext(it); ) {
72  item=d->itemLoop.getNext(it);
73  ret+=item.item.getLength();
74  ret+=item.itemDescription.getLength();
75  ret+=2; //the blanks
76  }
77  }
78  return ret;
79 }*/
80 
81 int ExtendedEventDescriptors::getMaximumTextLength(const char *separation1, const char *separation2) {
82  //add length of plain text, of itemized text with separators, and for one separator between the two fields.
83  return getMaximumTextPlainLength()+getMaximumTextItemizedLength(separation1, separation2)+strlen(separation2);
84 }
85 
86 char *ExtendedEventDescriptors::getText(const char *separation1, const char *separation2) {
87  int size = getMaximumTextLength(separation1, separation2);
88  char *text=new char[size];
89  return getText(text, size, separation1, separation2);
90 }
91 
92 char *ExtendedEventDescriptors::getText(char *buffer, int size, const char *separation1, const char *separation2) {
93  int index=0, len;
94  for (int i=0;i<length;i++) {
96  if (!d)
97  continue;
98  d->text.getText(buffer+index, size);
99  len = strlen(buffer+index);
100  index += len;
101  size -= len;
102  }
103 
104  int sepLen1 = strlen(separation1);
105  int sepLen2 = strlen(separation2);
106  bool separated = false;
107  for (int i=0;i<length;i++) {
109  if (!d)
110  continue;
111 
113  for (Loop::Iterator it; d->itemLoop.getNext(item, it); ) {
114  if (!separated && size > sepLen2) {
115  strcpy(buffer+index, separation2); // let's have a separator between the long text and the items
116  index += sepLen2;
117  size -= sepLen2;
118  separated = true;
119  }
120 
121  item.itemDescription.getText(buffer+index, size);
122  len = strlen(buffer+index);
123  index += len;
124  size -= len;
125  if (size > sepLen1) {
126  strcpy(buffer+index, separation1);
127  index += sepLen1;
128  size -= sepLen1;
129  }
130 
131  item.item.getText(buffer+index, size);
132  len = strlen(buffer+index);
133  index += len;
134  size -= len;
135  if (size > sepLen2) {
136  strcpy(buffer+index, separation2);
137  index += sepLen2;
138  size -= sepLen2;
139  }
140  }
141  }
142 
143  buffer[index]='\0';
144  return buffer;
145 }
146 
148  int ret=0;
149  for (int i=0;i<length;i++) {
150  ExtendedEventDescriptor *d=(ExtendedEventDescriptor *)array[i];
151  if (!d)
152  continue;
153  ret+=d->text.getLength();
154  }
155  return ret;
156 }
157 
159  int size = getMaximumTextPlainLength();
160  char *text=new char[size];
161  return getTextPlain(text, size);
162 }
163 
164 char *ExtendedEventDescriptors::getTextPlain(char *buffer, int size) {
165  int index=0, len;
166  for (int i=0;i<length;i++) {
168  if (!d)
169  continue;
170  d->text.getText(buffer+index, size);
171  len = strlen(buffer+index);
172  index += len;
173  size -= len;
174  }
175  buffer[index]='\0';
176  return buffer;
177 }
178 
179 int ExtendedEventDescriptors::getMaximumTextItemizedLength(const char *separation1, const char *separation2) {
180  int ret=0;
181  int sepLength=strlen(separation1)+strlen(separation2);
182  for (int i=0;i<length;i++) {
183  ExtendedEventDescriptor *d=(ExtendedEventDescriptor *)array[i];
184  if (!d)
185  continue;
186  //The length includes two 8-bit length fields which have already been subtracted from sepLength //XXX kls 2004-06-06: what does this mean???
187  ret+=d->itemLoop.getLength()+sepLength;
188  }
189  return ret;
190 }
191 
192 char *ExtendedEventDescriptors::getTextItemized(const char *separation1, const char *separation2) {
193  int size = getMaximumTextItemizedLength(separation1, separation2);
194  char *text=new char[size];
195  return getTextItemized(text, size, separation1, separation2);
196 }
197 
198 char *ExtendedEventDescriptors::getTextItemized(char *buffer, int size, const char *separation1, const char *separation2) {
199  int index=0, len;
200  int sepLen1 = strlen(separation1);
201  int sepLen2 = strlen(separation2);
202  for (int i=0;i<length;i++) {
204  if (!d)
205  continue;
206 
208  for (Loop::Iterator it; d->itemLoop.getNext(item, it); ) {
209  item.itemDescription.getText(buffer+index, size);
210  len = strlen(buffer+index);
211  index += len;
212  size -= len;
213  if (size > sepLen1) {
214  strcpy(buffer+index, separation1);
215  index += sepLen1;
216  size -= sepLen1;
217  }
218 
219  item.item.getText(buffer+index, size);
220  len = strlen(buffer+index);
221  index += len;
222  size -= len;
223  if (size > sepLen2) {
224  strcpy(buffer+index, separation2);
225  index += sepLen2;
226  size -= sepLen2;
227  }
228  }
229  }
230  buffer[index]='\0';
231  return buffer;
232 }
233 
234 //returns the itemized text pair by pair. Maximum length for buffers is 256.
235 //Return value is false if and only if the end of the list is reached.
236 bool ExtendedEventDescriptors::getTextItemized(Loop::Iterator &it, bool &valid, char *itemDescription, char *itemText, int sizeItemDescription, int sizeItemText) {
237  //The iterator has to store two values: The descriptor index (4bit)
238  //and the item loop index (max overall length 256, min item length 16 => max number 128 => 7bit)
239  valid=false;
240 
241  int index=(it.i & 0x780) >> 7; // 0x780 == 1111 000 0000
242  it.i &= 0x7F; //0x7F == 111 1111
243 
244  for (;index<length;index++) {
245  ExtendedEventDescriptor *d=(ExtendedEventDescriptor *)array[index];
246  if (!d)
247  continue;
248 
250  if (d->itemLoop.getNext(item, it)) {
251  item.item.getText(itemDescription, sizeItemDescription);
252  item.itemDescription.getText(itemText, sizeItemText);
253  valid=true;
254  break;
255  } else {
256  it.reset();
257  continue;
258  }
259  }
260 
261  it.i &= 0x7F;
262  it.i |= (index & 0xF) << 7; //0xF == 1111
263 
264  return index<length;
265 }
266 
268  return HILO(s->reference_service_id);
269 }
270 
272  return HILO(s->reference_event_id);
273 }
274 
276  s=data.getData<const descr_time_shifted_event>();
277 }
278 
280  //this descriptor is only a header and a loop
281  nibbleLoop.setData(data+sizeof(descr_content), getLength()-sizeof(descr_content));
282 }
283 
285  return s->content_nibble_level_1;
286 }
287 
289  return s->content_nibble_level_2;
290 }
291 
293  return s->user_nibble_1;
294 }
295 
297  return s->user_nibble_2;
298 }
299 
301  s=data.getData<const nibble_content>();
302 }
303 
305  //this descriptor is only a header and a loop
306  ratingLoop.setData(data+sizeof(descr_parental_rating), getLength()-sizeof(descr_parental_rating));
307 }
308 
310  return s->rating;
311 }
312 
318  languageCode[3]=0;
319 }
320 
322  //this descriptor is only a header and a loop
323  teletextLoop.setData(data+sizeof(descr_teletext), getLength()-sizeof(descr_teletext));
324 }
325 
327  s=data.getData<const item_teletext>();
332 }
333 
335  return s->type;
336 }
337 
339  return s->magazine_number;
340 }
341 
343  return s->page_number;
344 }
345 
346 int CaDescriptor::getCaType() const {
347  return HILO(s->CA_type);
348 }
349 
350 int CaDescriptor::getCaPid() const {
351  return HILO(s->CA_PID);
352 }
353 
354 void CaDescriptor::Parse() {
355  int offset=0;
357  if (checkSize(getLength()-offset))
358  privateData.assign(data.getData(offset), getLength()-offset);
359 }
360 
362  return s->component_tag;
363 }
364 
367 }
368 
370  name.setData(data+sizeof(descr_network_name), getLength()-sizeof(descr_network_name));
371 }
372 
374  identifiers.setData(data+sizeof(descr_ca_identifier), getLength()-sizeof(descr_ca_identifier));
375 }
376 
378  return (HILO(s->carousel_id_hi) << 16) | HILO(s->carousel_id_lo);
379 }
380 
382  return s->FormatId;
383 }
384 
387 }
388 
390  serviceLoop.setData(data+sizeof(descr_service_list), getLength()-sizeof(descr_service_list));
391 }
392 
394  return HILO(s->service_id);
395 }
396 
398  return s->service_type;
399 }
400 
403 }
404 
406  return (HILO(s->frequency_hi) << 16) | HILO(s->frequency_lo);
407 }
408 
410  return HILO(s->orbital_position);
411 }
412 
414  return s->west_east_flag;
415 }
416 
418  return s->polarization;
419 }
420 
422  return s->modulation_system;
423 }
424 
426  return s->modulation_type;
427 }
428 
430  return s->roll_off;
431 }
432 
434  return (HILO(s->symbol_rate_hi) << 12) | (s->symbol_rate_lo_1 << 4) | s->symbol_rate_lo_2;
435 }
436 
438  return s->fec_inner;
439 }
440 
443 }
444 
446  return (HILO(s->frequency_hi) << 16) | HILO(s->frequency_lo);
447 }
448 
450  return s->fec_outer;
451 }
452 
454  return s->modulation;
455 }
456 
458  return (HILO(s->symbol_rate_hi) << 12) | (s->symbol_rate_lo_1 << 4) | s->symbol_rate_lo_2;
459 }
460 
462  return s->fec_inner;
463 }
464 
467 }
468 
470  return (HILO(s->frequency_hi) << 16) | HILO(s->frequency_lo);
471 }
472 
474  return s->priority;
475 }
476 
478  return s->time_slicing_indicator;
479 }
480 
482  return s->mpe_fec_indicator;
483 }
484 
486  return s->bandwidth;
487 }
488 
490  return s->constellation;
491 }
492 
494  return s->hierarchy;
495 }
496 
498  return s->code_rate_HP;
499 }
500 
502  return s->code_rate_LP;
503 }
504 
506  return s->guard_interval;
507 }
508 
510  return s->transmission_mode;
511 }
512 
514  return s->other_frequency_flag;
515 }
516 
519 }
520 
522  return s->service_type;
523 }
524 
526  int offset=0;
528  providerName.setDataAndOffset(data+offset, s->provider_name_length, offset);
529  const descr_service_mid *mid;
530  data.setPointerAndOffset<const descr_service_mid>(mid, offset);
531  serviceName.setData(data+offset, mid->service_name_length);
532 }
533 
535  serviceLoop.setData(data+sizeof(descr_nvod_reference), getLength()-sizeof(descr_nvod_reference));
536 }
537 
539  return HILO(s->transport_stream_id);
540 }
541 
543  return HILO(s->original_network_id);
544 }
545 
547  return HILO(s->service_id);
548 }
549 
552 }
553 
555  return HILO(s->reference_service_id);
556 }
557 
560 }
561 
563  return s->stream_content;
564 }
565 
567  return s->component_type;
568 }
569 
571  return s->component_tag;
572 }
573 
575  int offset=0;
581  description.setData(data+offset, getLength()-offset);
582 }
583 
586 }
587 
589  return (HILO(s->private_data_specifier_hi) << 16) | HILO(s->private_data_specifier_lo);
590 }
591 
593  subtitlingLoop.setData(data+sizeof(descr_subtitling), getLength()-sizeof(descr_subtitling));
594 }
595 
597  return s->subtitling_type;
598 }
599 
601  return HILO(s->composition_page_id);
602 }
603 
605  return HILO(s->ancillary_page_id);
606 }
607 
609  s=data.getData<const item_subtitling>();
613  languageCode[3]=0;
614 }
615 
617  return HILO(s->new_original_network_id);
618 }
619 
621  return HILO(s->new_transport_stream_id);
622 }
623 
625  return HILO(s->new_service_id);
626 }
627 
629  s=data.getData<const descr_service_move>();
630 }
631 
633  return s->coding_type;
634 }
635 
637  int offset=0;
639  frequencies.setData(data+offset, getLength()-offset);
640 }
641 
643  textualServiceIdentifier.setData(data+sizeof(descr_service_identifier), getLength()-sizeof(descr_service_identifier));
644 }
645 
647  identifierLoop.setData(data+sizeof(descr_content_identifier), getLength()-sizeof(descr_content_identifier));
648 }
649 
651  int offset=0;
653  if (s->crid_location == 0) {
654  identifier.setData(data+(offset-1), s->crid_length);
655  }
656  else {
657  identifier.setData(data+(offset-1), 2);
658  }
659 }
660 
662  return s->crid_type;
663 }
664 
666  return s->crid_location;
667 }
668 
670  DefaultAuthority.setData(data+sizeof(descr_default_authority), getLength()-sizeof(descr_default_authority));
671 }
672 
675 }
676 
678  int offset=0;
684  languageCode[3]=0;
685  name.setData(data+offset, s->text_length);
686 }
687 
689  return s->component_tag;
690 }
691 
693  int offset=0;
695  nameLoop.setData(data+sizeof(descr_multilingual_component), getLength()-sizeof(descr_multilingual_component));
696 }
697 
700 }
701 
703  int offset=0;
704  const entry_multilingual_name *s;
709  languageCode[3]=0;
710  providerName.setDataAndOffset(data+offset, s->text_length, offset);
713  name.setData(data+offset, mid->service_name_length);
714 }
715 
717  localTimeOffsetLoop.setData(data+sizeof(descr_local_time_offset), getLength()-sizeof(descr_local_time_offset));
718 }
719 
721  return s->country_region_id;
722 }
723 
725  return s->local_time_offset_polarity;
726 }
727 
729  return (s->local_time_offset_h << 8) | s->local_time_offset_m;
730 }
731 
733  return DVBTime::getTime(s->time_of_change_mjd_hi, s->time_of_change_mjd_lo, s->time_of_change_time_h, s->time_of_change_time_m, s->time_of_change_time_s);
734 }
735 
737  return (s->next_time_offset_h << 8) | s->next_time_offset_m;
738 }
739 
742  countryCode[0]=s->country_code1;
743  countryCode[1]=s->country_code2;
744  countryCode[2]=s->country_code3;
745  countryCode[3]=0;
746 }
747 
749  int offset=0;
750  s1 = NULL;
751  data.setPointerAndOffset<const descr_linkage>(s, offset);
752  if (checkSize(getLength()-offset)) {
753  if (getLinkageType() == LinkageTypeMobileHandover)
754  data.setPointerAndOffset<const descr_linkage_8>(s1, offset);
755  privateData.assign(data.getData(offset), getLength()-offset);
756  }
757 }
758 
760  return HILO(s->transport_stream_id);
761 }
762 
764  return HILO(s->original_network_id);
765 }
766 
768  return HILO(s->service_id);
769 }
770 
772  return (LinkageType)s->linkage_type;
773 }
774 
776  return s1 == NULL ? 0 : s1->hand_over_type;
777 }
778 
780  return s1 == NULL ? 0 : s1->origin_type;
781 }
782 
783 int LinkageDescriptor::getId() const {
784  return s1 == NULL ? 0 : HILO(s1->id);
785 }
786 
788  languageLoop.setData(data+sizeof(descr_iso_639_language), getLength()-sizeof(descr_iso_639_language));
789 
790  //all this is for backwards compatibility only
791  Loop::Iterator it;
792  Language first;
793  if (languageLoop.getNext(first, it)) {
794  languageCode[0]=first.languageCode[0];
795  languageCode[1]=first.languageCode[1];
796  languageCode[2]=first.languageCode[2];
798  } else
799  languageCode[0]=0;
800 }
801 
803  s=data.getData<const descr_iso_639_language_loop>();
807  languageCode[3]=0;
808 }
809 
811  return (AudioType)s->audio_type;
812 }
813 
814 void PDCDescriptor::Parse() {
815  int offset=0;
816  data.setPointerAndOffset<const descr_pdc>(s, offset);
817 }
818 
819 int PDCDescriptor::getDay() const {
820  return ((s->pil0 & 0x0F) << 1) | ((s->pil1 & 0x80) >> 7);
821 }
822 
823 int PDCDescriptor::getMonth() const {
824  return (s->pil1 >> 3) & 0x0F;
825 }
826 
827 int PDCDescriptor::getHour() const {
828  return ((s->pil1 & 0x07) << 2) | ((s->pil2 & 0xC0) >> 6);
829 }
830 
831 int PDCDescriptor::getMinute() const {
832  return s->pil2 & 0x3F;
833 }
834 
836  int offset=0;
838 }
839 
841  return s->ancillary_data_identifier;
842 }
843 
845  int offset=0;
846  input_stream_identifier=0;
848  if (s->scrambling_sequence_selector)
850  if (s->multiple_input_stream_flag)
851  input_stream_identifier = *data.getData(offset++);
852 }
853 
855  return s->scrambling_sequence_selector;
856 }
857 
859  return s->multiple_input_stream_flag;
860 }
861 
863  return s->backwards_compatibility_indicator;
864 }
865 
867  return sss == NULL ? 0 : (sss->scrambling_sequence_index_hi_lo << 16) | HILO(sss->scrambling_sequence_index_lo);
868 }
869 
871  int offset=0;
873  extended_data_flag = s->descriptor_length > 0x04;
874 }
875 
877  return extended_data_flag;
878 }
879 
881  return s->descriptor_tag_extension;
882 }
883 
885  int offset=0;
887  extended_data_flag = s->descriptor_length > 0x04;
888 }
889 
891  return extended_data_flag;
892 }
893 
895  return s->descriptor_tag_extension;
896 }
897 
899  return s->plp_id;
900 }
901 
903  return HILO(s->t2_system_id);
904 }
905 
907  return extended_data_flag ? s->siso_miso : -1;
908 }
909 
911  return extended_data_flag ? s->bandwidth : -1;
912 }
913 
915  return extended_data_flag ? s->guard_interval : -1;
916 }
917 
919  return extended_data_flag ? s->transmission_mode : -1;
920 }
921 
923  return extended_data_flag ? s->other_frequency_flag : -1;
924 }
925 
927  return extended_data_flag ? s->tfs_flag : -1;
928 }
929 
931  //this descriptor is only a header and a loop
932  logicalChannelLoop.setData(data+sizeof(descr_logical_channel), getLength()-sizeof(descr_logical_channel));
933 }
934 
936  return HILO(s->service_id);
937 }
938 
940  return s->visible_service_flag;
941 }
942 
944  return HILO(s->logical_channel_number);
945 }
946 
949 }
950 
952  //this descriptor is only a header and a loop
953  hdSimulcastLogicalChannelLoop.setData(data+sizeof(descr_hd_simulcast_logical_channel), getLength()-sizeof(descr_hd_simulcast_logical_channel));
954 }
955 
957  return HILO(s->service_id);
958 }
959 
961  return s->visible_service_flag;
962 }
963 
965  return HILO(s->logical_channel_number);
966 }
967 
970 }
971 
973  return HILO(s->original_network_id);
974 }
975 
977  return HILO(s->transport_stream_id);
978 }
979 
981  return HILO(s->service_id);
982 }
983 
987 }
988 
990  return HILO(s->mjd);
991 }
992 
994  return s->start_time_loop;
995 }
996 
998  return sizeof(item_premiere_content_transmission_day)+getLoopLength();
999 }
1000 
1003  startTimeLoop.setData(data+sizeof(item_premiere_content_transmission_day), getLoopLength());
1004 }
1005 
1007  return DVBTime::getTime(mjd >> 8, mjd & 0xff, s->start_time_h, s->start_time_m, s->start_time_s);
1008 }
1009 
1012 }
1013 
1015  entryLoop.setData(data+sizeof(descr_application_signalling), getLength()-sizeof(descr_application_signalling));
1017 
1019  return HILO(s->application_type);
1021 
1023  return s->AIT_version_number;
1025 
1029 
1031  return s->service_bound_flag;
1033 
1035  return s->visibility;
1037 
1039  return s->application_priority;
1041 
1043  int offset=0;
1044  const descr_application *dapp;
1045  data.setPointerAndOffset<const descr_application>(dapp, offset);
1046  profileLoop.setDataAndOffset(data+offset, dapp->application_profiles_length, offset);
1048  transportProtocolLabels.setData(data+offset, getLength()-offset);
1049 }
1050 
1052  return HILO(s->application_profile);
1053 }
1054 
1056  return s->version_major;
1057 }
1058 
1060  return s->version_minor;
1062 
1064  return s->version_micro;
1066 
1070 
1072  nameLoop.setData(data+sizeof(descr_application_name), getLength()-sizeof(descr_application_name));
1074 
1078  name.setData(data+sizeof(descr_application_name_entry), s->application_name_length);
1082  languageCode[3]=0;
1083 }
1084 
1086  return HILO(s->protocol_id);
1087 }
1088 
1090  return s->transport_protocol_label;
1091 }
1092 
1094  return remote;
1096 
1098  return componentTag;
1100 
1101 char *MHP_TransportProtocolDescriptor::getUrlBase(char *buffer, int size) {
1102  return UrlBase.getText(buffer, size);
1104 
1106  int offset=0;
1107  remote=false;
1108  componentTag=-1;
1110  if (getProtocolId() == ObjectCarousel) {
1111  const transport_via_oc *oc;
1112  data.setPointerAndOffset<const transport_via_oc>(oc, offset);
1113  remote=oc->remote;
1114  if (remote) {
1117  componentTag=rem->component_tag;
1118  } else {
1119  const transport_via_oc_end *rem;
1120  data.setPointerAndOffset<const transport_via_oc_end>(rem, offset);
1121  componentTag=rem->component_tag;
1122  }
1123  } else if (getProtocolId() == HTTPoverInteractionChannel) {
1124  const transport_via_http *http;
1125  data.setPointerAndOffset<const transport_via_http>(http, offset);
1126  UrlBase.setDataAndOffset(data+offset, http->url_base_length, offset);
1127 
1128  // fill URL Extension,
1129  UrlExtensionLoop.setData(data+offset, getLength()-offset);
1130  } else {
1131  //unimplemented
1132  }
1133 }
1134 
1136  const descr_url_extension_entry *s;
1137  s=data.getData<const descr_url_extension_entry>();
1138  UrlExtension.setData(data, s->url_extension_length);
1139 }
1140 
1142  applicationLoop.setData(data+sizeof(descr_dvbj_application), getLength()-sizeof(descr_dvbj_application));
1143 }
1144 
1147  parameter.setData(data+sizeof(descr_dvbj_application_entry), entry->parameter_length);
1148 }
1149 
1151  int offset=0;
1152  const descr_dvbj_application_location *first;
1154  baseDirectory.setDataAndOffset(data+offset, first->base_directory_length, offset);
1157  classPath.setDataAndOffset(data+offset, mid->classpath_extension_length, offset);
1158  initialClass.setData(data+offset, getLength()-offset);
1159 }
1162  return HILO(s->icon_flags);
1163 }
1164 
1166  int offset=0;
1169  iconLocator.setDataAndOffset(data+offset, first->icon_locator_length, offset);
1172 
1173 char *MHP_SimpleApplicationLocationDescriptor::getLocation(char *buffer, int size) {
1174  return location.getText(buffer, size);
1176 
1178  int offset=0;
1181  location.setDataAndOffset(data+offset, loc->descriptor_length, offset);
1182 }
1185  return HILOHILO(s->format_identifier);
1186 }
1189  int offset=0;
1190  data.setPointerAndOffset<const descr_registration>(s, offset);
1191  if (checkSize(getLength()-offset))
1192  privateData.assign(data.getData(offset), getLength()-offset);
1193 }
1195 int AVCDescriptor::getProfileIdc() const {
1196  return s->profile_idc;
1197 }
1200  return s->constraint_set0_flag;
1201 }
1202 
1204  return s->constraint_set1_flag;
1206 
1208  return s->constraint_set2_flag;
1210 
1212  return s->constraint_set3_flag;
1214 
1216  return s->constraint_set4_flag;
1218 
1220  return s->constraint_set5_flag;
1222 
1224  return s->avc_compatible_flags;
1226 
1227 int AVCDescriptor::getLevelIdc() const {
1228  return s->level_idc;
1230 
1232  return s->avc_still_present;
1234 
1236  return s->avc_24_hour_picture_flag;
1238 
1240  return s->frame_packing_sei_not_present_flag;
1242 
1243 void AVCDescriptor::Parse() {
1244  int offset=0;
1246  if (checkSize(getLength()-offset))
1247  privateData.assign(data.getData(offset), getLength()-offset);
1248 }
1250 } //end of namespace
SI::descr_dvbj_application_location_mid
Definition: headers.h:2076
SI::T2DeliverySystemDescriptor::getOtherFrequencyFlag
int getOtherFrequencyFlag() const
Definition: descriptor.c:932
SI::MHP_TransportProtocolDescriptor::UrlExtensionEntry::Parse
virtual void Parse()
Definition: descriptor.c:1145
SI::PremiereContentTransmissionDescriptor::getServiceId
int getServiceId() const
Definition: descriptor.c:990
SI::ExtendedEventDescriptor::s
const descr_extended_event * s
Definition: descriptor.h:58
SI::LinkageDescriptor::getTransportStreamId
int getTransportStreamId() const
Definition: descriptor.c:769
SI::MHP_DVBJApplicationDescriptor::ApplicationEntry::Parse
virtual void Parse()
Definition: descriptor.c:1155
SI::descr_short_event::lang_code3
u_char lang_code3
Definition: headers.h:1133
SI::descr_extended_event::descriptor_length
u_char descriptor_length
Definition: headers.h:1146
SI::MultilingualComponentDescriptor::getComponentTag
int getComponentTag() const
Definition: descriptor.c:698
SI::ContentDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:289
SI::descr_hd_simulcast_logical_channel
Definition: headers.h:1914
SI::T2DeliverySystemDescriptor::getT2SystemId
int getT2SystemId() const
Definition: descriptor.c:912
SI::MHP_DVBJApplicationLocationDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1160
SI::descr_transport_protocol
Definition: headers.h:1994
SI::TimeShiftedEventDescriptor::getReferenceServiceId
int getReferenceServiceId() const
Definition: descriptor.c:277
SI::MultilingualServiceNameDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:708
SI::CharArray::setPointerAndOffset
void setPointerAndOffset(const T *&p, int &offset) const
Definition: util.h:56
SI::item_hd_simulcast_logical_channel
Definition: headers.h:1920
SI::descr_pdc
Definition: headers.h:1558
SI::ContentIdentifierDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:656
SI::MHP_ApplicationDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1052
SI::CaDescriptor::getCaPid
int getCaPid() const
Definition: descriptor.c:360
SI::SatelliteDeliverySystemDescriptor::getModulationType
int getModulationType() const
Definition: descriptor.c:435
SI::application_signalling_entry
Definition: headers.h:1636
SI::T2DeliverySystemDescriptor::getTransmissionMode
int getTransmissionMode() const
Definition: descriptor.c:928
SI::descr_extended_event_mid::text_length
u_char text_length
Definition: headers.h:1162
SI::Loop::Iterator
Definition: si.h:333
SI::TerrestrialDeliverySystemDescriptor::getPriority
int getPriority() const
Definition: descriptor.c:483
SI::PDCDescriptor::getDay
int getDay() const
Definition: descriptor.c:829
SI::TerrestrialDeliverySystemDescriptor::getFrequency
int getFrequency() const
Definition: descriptor.c:479
SI::item_logical_channel
Definition: headers.h:1896
SI::DVBTime::getTime
time_t getTime(unsigned char date_hi, unsigned char date_lo, unsigned char timehr, unsigned char timemi, unsigned char timese)
Definition: util.c:200
SI::AncillaryDataDescriptor::getAncillaryDataIdentifier
int getAncillaryDataIdentifier() const
Definition: descriptor.c:850
SI::CarouselIdentifierDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:395
SI::SubtitlingDescriptor::Subtitling::getCompositionPageId
int getCompositionPageId() const
Definition: descriptor.c:610
SI::descr_scrambling_sequence_selector
Definition: headers.h:1770
SI::ServiceMoveDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:638
SI::CableDeliverySystemDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:475
SI::ContentIdentifierDescriptor::Identifier::getCridType
int getCridType() const
Definition: descriptor.c:671
SI::transport_via_oc::remote
u_char remote
Definition: headers.h:2012
SI::ISO639LanguageDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:797
SI::StreamIdentifierDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:375
SI::entry_multilingual_service_name_mid
Definition: headers.h:1438
SI::RegistrationDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1198
SI::descr_extended_event::lang_code2
u_char lang_code2
Definition: headers.h:1156
SI::item_premiere_content_transmission_time
Definition: headers.h:2135
SI::parental_rating
Definition: headers.h:1266
SI::HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel::Parse
virtual void Parse()
Definition: descriptor.c:978
SI::ExtendedEventDescriptors::getTextItemized
char * getTextItemized(const char *separation1="\t", const char *separation2="\n")
Definition: descriptor.c:202
SI::T2DeliverySystemDescriptor::getSisoMiso
int getSisoMiso() const
Definition: descriptor.c:916
SI::descr_ca_identifier
Definition: headers.h:1227
SI::descr_application
Definition: headers.h:1939
SI::descr_application_icons_descriptor
Definition: headers.h:2084
SI::LocalTimeOffsetDescriptor::LocalTimeOffset::getLocalTimeOffsetPolarity
int getLocalTimeOffsetPolarity() const
Definition: descriptor.c:734
SI::ParentalRatingDescriptor::Rating::getRating
int getRating() const
Definition: descriptor.c:319
SI::ServiceIdentifierDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:652
SI::ISO639LanguageDescriptor::Language::Parse
virtual void Parse()
Definition: descriptor.c:812
SI::CaIdentifierDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:383
SI::AVCDescriptor::getConstraintSet1Flag
int getConstraintSet1Flag() const
Definition: descriptor.c:1213
SI::PremiereContentTransmissionDescriptor::StartDayEntry::getLength
virtual int getLength()
Definition: descriptor.c:1007
SI::descr_s2_satellite_delivery_system
Definition: headers.h:1754
SI::NVODReferenceDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:544
SI::descr_short_event::lang_code2
u_char lang_code2
Definition: headers.h:1132
SI::item_extended_event_mid::item_length
u_char item_length
Definition: headers.h:1171
SI::AVCDescriptor::getLevelIdc
int getLevelIdc() const
Definition: descriptor.c:1237
SI::MHP_ApplicationNameDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1081
SI::ShortEventDescriptor::text
String text
Definition: descriptor.h:45
SI::TerrestrialDeliverySystemDescriptor::getGuardInterval
int getGuardInterval() const
Definition: descriptor.c:515
SI::SubtitlingDescriptor::Subtitling::getAncillaryPageId
int getAncillaryPageId() const
Definition: descriptor.c:614
SI::descr_extended_event_mid
Definition: headers.h:1161
SI::descr_multilingual_component
Definition: headers.h:1445
SI::ExtendedEventDescriptors::getTextPlain
char * getTextPlain()
Definition: descriptor.c:168
SI::Descriptor::getLength
virtual int getLength()
Definition: si.c:106
SI::CableDeliverySystemDescriptor::getModulation
int getModulation() const
Definition: descriptor.c:463
SI::descr_service_mid
Definition: headers.h:1048
SI::ServiceMoveDescriptor::getNewTransportStreamId
int getNewTransportStreamId() const
Definition: descriptor.c:630
SI::SatelliteDeliverySystemDescriptor::getPolarization
int getPolarization() const
Definition: descriptor.c:427
SI::CaDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:364
SI::descr_extended_event::descriptor_number
u_char descriptor_number
Definition: headers.h:1149
SI::descr_dvbj_application_location_mid::classpath_extension_length
u_char classpath_extension_length
Definition: headers.h:2077
SI::ExtensionDescriptor::getExtendedDataFlag
int getExtendedDataFlag() const
Definition: descriptor.c:886
SI::ExtensionDescriptor::getExtensionDescriptorTag
int getExtensionDescriptorTag() const
Definition: descriptor.c:890
SI::descr_application_signalling
Definition: headers.h:1630
SI::descr_registration
Definition: headers.h:2144
SI::RegistrationDescriptor::getFormatIdentifier
int getFormatIdentifier() const
Definition: descriptor.c:1194
HILO
#define HILO(x)
Definition: util.h:21
SI::AVCDescriptor::getConstraintSet4Flag
int getConstraintSet4Flag() const
Definition: descriptor.c:1225
SI::SatelliteDeliverySystemDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:451
SI::descr_application::application_profiles_length
u_char application_profiles_length
Definition: headers.h:1942
SI::ApplicationSignallingDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1024
SI::TimeShiftedServiceDescriptor::getReferenceServiceId
int getReferenceServiceId() const
Definition: descriptor.c:564
SI::NetworkNameDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:379
SI::TerrestrialDeliverySystemDescriptor::getHierarchy
int getHierarchy() const
Definition: descriptor.c:503
SI::transport_via_oc_end
Definition: headers.h:2037
SI::descr_avc
Definition: headers.h:2156
SI::item_nvod_reference
Definition: headers.h:1106
SI::descr_short_event::event_name_length
u_char event_name_length
Definition: headers.h:1134
SI::ParentalRatingDescriptor::Rating::Parse
virtual void Parse()
Definition: descriptor.c:323
SI::LinkageTypeMobileHandover
@ LinkageTypeMobileHandover
Definition: si.h:221
SI::TimeShiftedServiceDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:568
SI::ExtendedEventDescriptor::Item::Parse
virtual void Parse()
Definition: descriptor.c:63
SI::descr_dvbj_application_location::base_directory_length
u_char base_directory_length
Definition: headers.h:2070
SI::PremiereContentTransmissionDescriptor::StartDayEntry::Parse
virtual void Parse()
Definition: descriptor.c:1011
SI::transport_via_oc
Definition: headers.h:2010
SI::PremiereContentTransmissionDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:994
SI::ContentDescriptor::Nibble::Parse
virtual void Parse()
Definition: descriptor.c:310
SI::LocalTimeOffsetDescriptor::LocalTimeOffset::getCountryId
int getCountryId() const
Definition: descriptor.c:730
SI::ServiceListDescriptor::Service::Parse
virtual void Parse()
Definition: descriptor.c:411
SI::T2DeliverySystemDescriptor::getBandwidth
int getBandwidth() const
Definition: descriptor.c:920
SI::ApplicationSignallingDescriptor::ApplicationEntryDescriptor::getApplicationType
int getApplicationType() const
Definition: descriptor.c:1028
SI::T2DeliverySystemDescriptor::getExtensionDescriptorTag
int getExtensionDescriptorTag() const
Definition: descriptor.c:904
SI::SatelliteDeliverySystemDescriptor::getModulationSystem
int getModulationSystem() const
Definition: descriptor.c:431
SI::ExtendedEventDescriptors::getMaximumTextPlainLength
int getMaximumTextPlainLength()
Definition: descriptor.c:157
SI::descr_extended_event::lang_code1
u_char lang_code1
Definition: headers.h:1155
SI::item_teletext
Definition: headers.h:1282
SI::TerrestrialDeliverySystemDescriptor::getTimeSlicingIndicator
int getTimeSlicingIndicator() const
Definition: descriptor.c:487
SI::LogicalChannelDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:940
SI::ServiceListDescriptor::Service::getServiceType
int getServiceType() const
Definition: descriptor.c:407
SI::TerrestrialDeliverySystemDescriptor::getBandwidth
int getBandwidth() const
Definition: descriptor.c:495
SI::AVCDescriptor::getAVC24HourPictureFlag
int getAVC24HourPictureFlag() const
Definition: descriptor.c:1245
SI::Object::checkSize
bool checkSize(int offset)
Definition: si.c:47
SI::descr_local_time_offset
Definition: headers.h:1308
SI::LocalTimeOffsetDescriptor::LocalTimeOffset::Parse
virtual void Parse()
Definition: descriptor.c:750
SI::MHP_ApplicationDescriptor::Profile::getVersionMinor
int getVersionMinor() const
Definition: descriptor.c:1069
SI::LinkageDescriptor::getHandOverType
int getHandOverType() const
Definition: descriptor.c:785
SI::MHP_ApplicationIconsDescriptor::getIconFlags
int getIconFlags() const
Definition: descriptor.c:1171
SI::PDCDescriptor::getMonth
int getMonth() const
Definition: descriptor.c:833
SI::descr_service_identifier
Definition: headers.h:1650
SI::ComponentDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:584
SI::MHP_TransportProtocolDescriptor::isRemote
bool isRemote() const
Definition: descriptor.c:1103
SI::PremiereContentTransmissionDescriptor::getOriginalNetworkId
int getOriginalNetworkId() const
Definition: descriptor.c:982
SI::descr_dvbj_application_location
Definition: headers.h:2067
SI::LinkageDescriptor::getId
int getId() const
Definition: descriptor.c:793
SI::SatelliteDeliverySystemDescriptor::getOrbitalPosition
int getOrbitalPosition() const
Definition: descriptor.c:419
SI::S2SatelliteDeliverySystemDescriptor::getScramblingSequenceIndex
int getScramblingSequenceIndex() const
Definition: descriptor.c:876
SI::ContentIdentifierDescriptor::Identifier::Parse
virtual void Parse()
Definition: descriptor.c:660
SI::MHP_TransportProtocolDescriptor::getUrlBase
char * getUrlBase(char *buffer, int size)
Definition: descriptor.c:1111
SI::descr_linkage_8
Definition: headers.h:1083
SI::TimeShiftedEventDescriptor::getReferenceEventId
int getReferenceEventId() const
Definition: descriptor.c:281
SI::LinkageType
LinkageType
Definition: si.h:214
SI::NVODReferenceDescriptor::Service::getServiceId
int getServiceId() const
Definition: descriptor.c:556
SI::MHP_TransportProtocolDescriptor::getProtocolId
int getProtocolId() const
Definition: descriptor.c:1095
SI::AVCDescriptor::getConstraintSet3Flag
int getConstraintSet3Flag() const
Definition: descriptor.c:1221
SI::CarouselIdentifierDescriptor::getFormatId
int getFormatId() const
Definition: descriptor.c:391
SI::LinkageDescriptor::getOriginType
int getOriginType() const
Definition: descriptor.c:789
SI::ContentDescriptor::Nibble::getUserNibble1
int getUserNibble1() const
Definition: descriptor.c:302
SI::descr_dvbj_application_entry::parameter_length
u_char parameter_length
Definition: headers.h:2059
SI::descr_application_name
Definition: headers.h:1975
SI::entry_multilingual_name
Definition: headers.h:1415
SI::AVCDescriptor::getConstraintSet0Flag
int getConstraintSet0Flag() const
Definition: descriptor.c:1209
SI::PrivateDataSpecifierDescriptor::getPrivateDataSpecifier
int getPrivateDataSpecifier() const
Definition: descriptor.c:598
SI::MultilingualNameDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:683
SI::ExtendedEventDescriptor::getLastDescriptorNumber
int getLastDescriptorNumber()
Definition: descriptor.c:46
SI::LogicalChannelDescriptor::LogicalChannel::getServiceId
int getServiceId() const
Definition: descriptor.c:945
SI::AVCDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1253
SI::descr_private_data_specifier
Definition: headers.h:1454
SI::ServiceListDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:399
SI::MultilingualServiceNameDescriptor::Name::Parse
virtual void Parse()
Definition: descriptor.c:712
SI::descr_cable_delivery_system
Definition: headers.h:984
SI::MHP_ApplicationDescriptor::getVisibility
int getVisibility() const
Definition: descriptor.c:1044
SI::entry_multilingual_service_name_mid::service_name_length
u_char service_name_length
Definition: headers.h:1439
SI::descr_ca
Definition: headers.h:868
SI::PDCDescriptor::getMinute
int getMinute() const
Definition: descriptor.c:841
SI::nibble_content
Definition: headers.h:1240
SI::descr_network_name
Definition: headers.h:915
SI::SubtitlingDescriptor::Subtitling::getSubtitlingType
int getSubtitlingType() const
Definition: descriptor.c:606
SI::descr_service
Definition: headers.h:1041
SI::descr_extended_event::length_of_items
u_char length_of_items
Definition: headers.h:1158
SI::T2DeliverySystemDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:894
SI::descr_application_icons_descriptor_end
Definition: headers.h:2093
SI::descr_satellite_delivery_system
Definition: headers.h:947
SI::FrequencyListDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:646
SI::TeletextDescriptor::Teletext::getTeletextType
int getTeletextType() const
Definition: descriptor.c:344
SI::CharArray::getData
const unsigned char * getData() const
Definition: util.h:51
SI::TerrestrialDeliverySystemDescriptor::getTransmissionMode
int getTransmissionMode() const
Definition: descriptor.c:519
SI::SatelliteDeliverySystemDescriptor::getRollOff
int getRollOff() const
Definition: descriptor.c:439
SI::AVCDescriptor::getConstraintSet2Flag
int getConstraintSet2Flag() const
Definition: descriptor.c:1217
SI::ExtendedEventDescriptors::getMaximumTextItemizedLength
int getMaximumTextItemizedLength(const char *separation1="\t", const char *separation2="\n")
Definition: descriptor.c:189
SI::descr_service_move
Definition: headers.h:1466
SI::S2SatelliteDeliverySystemDescriptor::getBackwardsCompatibilityIndicator
int getBackwardsCompatibilityIndicator() const
Definition: descriptor.c:872
SI::PrivateDataSpecifierDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:594
SI::MHP_ApplicationDescriptor::Profile::getVersionMicro
int getVersionMicro() const
Definition: descriptor.c:1073
SI::CaDescriptor::getCaType
int getCaType() const
Definition: descriptor.c:356
SI::descr_parental_rating
Definition: headers.h:1260
SI::descr_extended_event
Definition: headers.h:1144
SI::LocalTimeOffsetDescriptor::LocalTimeOffset::getTimeOfChange
time_t getTimeOfChange() const
Definition: descriptor.c:742
SI::ParentalRatingDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:314
SI::TeletextDescriptor::Teletext::getTeletextMagazineNumber
int getTeletextMagazineNumber() const
Definition: descriptor.c:348
SI::LinkageDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:758
SI::SatelliteDeliverySystemDescriptor::getFecInner
int getFecInner() const
Definition: descriptor.c:447
SI::PremiereContentTransmissionDescriptor::StartDayEntry::StartTimeEntry::getStartTime
time_t getStartTime(int mjd) const
Definition: descriptor.c:1016
SI::ContentIdentifierDescriptor::Identifier::getCridLocation
int getCridLocation() const
Definition: descriptor.c:675
SI::PremiereContentTransmissionDescriptor::StartDayEntry::getLoopLength
int getLoopLength() const
Definition: descriptor.c:1003
SI::ExtensionDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:880
SI::transport_via_oc_remote_end::component_tag
u_char component_tag
Definition: headers.h:2032
SI::descr_extension
Definition: headers.h:1850
SI::SatelliteDeliverySystemDescriptor::getFrequency
int getFrequency() const
Definition: descriptor.c:415
SI::StreamIdentifierDescriptor::getComponentTag
int getComponentTag() const
Definition: descriptor.c:371
SI::MHP_DVBJApplicationDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1151
SI::ShortEventDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:28
SI::NVODReferenceDescriptor::Service::getOriginalNetworkId
int getOriginalNetworkId() const
Definition: descriptor.c:552
SI::MultilingualNameDescriptor::Name::Parse
virtual void Parse()
Definition: descriptor.c:687
SI::MHP_ApplicationDescriptor::Profile::getVersionMajor
int getVersionMajor() const
Definition: descriptor.c:1065
SI::content_identifier_entry
Definition: headers.h:1697
SI::T2DeliverySystemDescriptor::getGuardInterval
int getGuardInterval() const
Definition: descriptor.c:924
SI::ServiceDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:535
SI::transport_via_oc_end::component_tag
u_char component_tag
Definition: headers.h:2038
SI::ExtendedEventDescriptor
Definition: descriptor.h:40
SI::descr_multilingual_network_name
Definition: headers.h:1410
SI::descr_extended_event::lang_code3
u_char lang_code3
Definition: headers.h:1157
SI::LocalTimeOffsetDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:726
SI::MHP_ApplicationDescriptor::Profile::Parse
virtual void Parse()
Definition: descriptor.c:1077
SI::transport_via_oc_remote_end
Definition: headers.h:2025
SI::ISO639LanguageDescriptor::Language::getAudioType
AudioType getAudioType()
Definition: descriptor.c:820
SI::MHP_TransportProtocolDescriptor::getComponentTag
int getComponentTag() const
Definition: descriptor.c:1107
SI::SubtitlingDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:602
SI::descr_short_event::lang_code1
u_char lang_code1
Definition: headers.h:1131
SI::LogicalChannelDescriptor::LogicalChannel::getLogicalChannelNumber
int getLogicalChannelNumber() const
Definition: descriptor.c:953
SI::LocalTimeOffsetDescriptor::LocalTimeOffset::getLocalTimeOffset
int getLocalTimeOffset() const
Definition: descriptor.c:738
SI::TeletextDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:331
SI::ShortEventDescriptor::name
String name
Definition: descriptor.h:44
SI::descr_dvbj_application_entry
Definition: headers.h:2058
SI::local_time_offset_entry
Definition: headers.h:1314
SI::descr_default_authority
Definition: headers.h:1671
SI::TimeShiftedEventDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:285
SI::descr_simple_application_location_descriptor
Definition: headers.h:2102
SI::ShortEventDescriptor::languageCode
char languageCode[4]
Definition: descriptor.h:43
SI::LinkageDescriptor::getServiceId
int getServiceId() const
Definition: descriptor.c:777
SI::ServiceMoveDescriptor::getNewOriginalNetworkId
int getNewOriginalNetworkId() const
Definition: descriptor.c:626
SI::ApplicationSignallingDescriptor::ApplicationEntryDescriptor::getAITVersionNumber
int getAITVersionNumber() const
Definition: descriptor.c:1032
SI::Object::data
CharArray data
Definition: si.h:251
SI::MHP_TransportProtocolDescriptor::getProtocolLabel
int getProtocolLabel() const
Definition: descriptor.c:1099
SI::descr_terrestrial_delivery
Definition: headers.h:1361
SI::ExtendedEventDescriptors::getText
char * getText(const char *separation1="\t", const char *separation2="\n")
Definition: descriptor.c:96
SI::descr_service_list_loop
Definition: headers.h:929
SI::LocalTimeOffsetDescriptor::LocalTimeOffset::getNextTimeOffset
int getNextTimeOffset() const
Definition: descriptor.c:746
SI::PDCDescriptor::getHour
int getHour() const
Definition: descriptor.c:837
SI::ExtendedEventDescriptor::Item
Definition: descriptor.h:42
SI::T2DeliverySystemDescriptor::getPlpId
int getPlpId() const
Definition: descriptor.c:908
SI::item_extended_event::item_description_length
u_char item_description_length
Definition: headers.h:1167
SI::T2DeliverySystemDescriptor::getExtendedDataFlag
int getExtendedDataFlag() const
Definition: descriptor.c:900
SI::TerrestrialDeliverySystemDescriptor::getConstellation
int getConstellation() const
Definition: descriptor.c:499
SI::ComponentDescriptor::getStreamContent
int getStreamContent() const
Definition: descriptor.c:572
SI
Definition: descriptor.c:16
SI::descr_application_name_entry
Definition: headers.h:1982
SI::descr_t2_delivery_system
Definition: headers.h:1858
SI::CableDeliverySystemDescriptor::getSymbolRate
int getSymbolRate() const
Definition: descriptor.c:467
SI::ServiceDescriptor::getServiceType
int getServiceType() const
Definition: descriptor.c:531
SI::MHP_ApplicationDescriptor::getApplicationPriority
int getApplicationPriority() const
Definition: descriptor.c:1048
SI::ServiceListDescriptor::Service::getServiceId
int getServiceId() const
Definition: descriptor.c:403
SI::VariableLengthPart::getLength
virtual int getLength()
Definition: si.h:304
SI::S2SatelliteDeliverySystemDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:854
SI::CableDeliverySystemDescriptor::getFrequency
int getFrequency() const
Definition: descriptor.c:455
SI::MHP_ApplicationNameDescriptor::NameEntry::Parse
virtual void Parse()
Definition: descriptor.c:1085
SI::MHP_ApplicationIconsDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1175
SI::descr_stream_identifier
Definition: headers.h:1218
SI::item_premiere_content_transmission_day
Definition: headers.h:2127
SI::TerrestrialDeliverySystemDescriptor::getOtherFrequency
bool getOtherFrequency() const
Definition: descriptor.c:523
SI::descr_short_event_mid::text_length
u_char text_length
Definition: headers.h:1138
SI::descr_ancillary_data
Definition: headers.h:1594
SI::MHP_SimpleApplicationLocationDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1187
SI::TerrestrialDeliverySystemDescriptor::getCodeRateLP
int getCodeRateLP() const
Definition: descriptor.c:511
SI::PremiereContentTransmissionDescriptor::getTransportStreamId
int getTransportStreamId() const
Definition: descriptor.c:986
SI::TerrestrialDeliverySystemDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:527
SI::descr_time_shifted_service
Definition: headers.h:1118
SI::SatelliteDeliverySystemDescriptor::getWestEastFlag
int getWestEastFlag() const
Definition: descriptor.c:423
SI::AVCDescriptor::getAVCCompatibleFlags
int getAVCCompatibleFlags() const
Definition: descriptor.c:1233
SI::descr_short_event
Definition: headers.h:1128
SI::ExtendedEventDescriptor::itemLoop
StructureLoop< Item > itemLoop
Definition: descriptor.h:53
SI::descr_extended_event::last_descriptor_number
u_char last_descriptor_number
Definition: headers.h:1150
SI::MHP_SimpleApplicationLocationDescriptor::getLocation
char * getLocation(char *buffer, int size)
Definition: descriptor.c:1183
SI::descr_content_identifier
Definition: headers.h:1692
SI::S2SatelliteDeliverySystemDescriptor::getScramblingSequenceSelector
int getScramblingSequenceSelector() const
Definition: descriptor.c:864
SI::ExtendedEventDescriptor::getDescriptorNumber
int getDescriptorNumber()
Definition: descriptor.c:42
SI::descr_scrambling_sequence_selector::scrambling_sequence_index_hi_lo
u_char scrambling_sequence_index_hi_lo
Definition: headers.h:1773
SI::ContentDescriptor::Nibble::getContentNibbleLevel1
int getContentNibbleLevel1() const
Definition: descriptor.c:294
SI::ContentDescriptor::Nibble::getUserNibble2
int getUserNibble2() const
Definition: descriptor.c:306
SI::descr_iso_639_language
Definition: headers.h:886
SI::ComponentDescriptor::getComponentTag
int getComponentTag() const
Definition: descriptor.c:580
SI::item_extended_event_mid
Definition: headers.h:1170
SI::ExtendedEventDescriptor::text
String text
Definition: descriptor.h:54
SI::FrequencyListDescriptor::getCodingType
int getCodingType() const
Definition: descriptor.c:642
SI::NVODReferenceDescriptor::Service::Parse
virtual void Parse()
Definition: descriptor.c:560
SI::ExtendedEventDescriptor::languageCode
char languageCode[4]
Definition: descriptor.h:50
SI::SatelliteDeliverySystemDescriptor::getSymbolRate
int getSymbolRate() const
Definition: descriptor.c:443
SI::descr_service_mid::service_name_length
u_char service_name_length
Definition: headers.h:1049
SI::DefaultAuthorityDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:679
SI::descr_service_list
Definition: headers.h:923
SI::CableDeliverySystemDescriptor::getFecOuter
int getFecOuter() const
Definition: descriptor.c:459
SI::descr_teletext
Definition: headers.h:1276
SI::VariableLengthPart::setData
void setData(CharArray d, int l)
Definition: si.h:301
SI::ComponentDescriptor::getComponentType
int getComponentType() const
Definition: descriptor.c:576
SI::ApplicationSignallingDescriptor::ApplicationEntryDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1036
SI::CarouselIdentifierDescriptor::getCarouselId
int getCarouselId() const
Definition: descriptor.c:387
SI::SubtitlingDescriptor::Subtitling::Parse
virtual void Parse()
Definition: descriptor.c:618
SI::VariableLengthPart::setDataAndOffset
void setDataAndOffset(CharArray d, int l, int &offset)
Definition: si.h:303
SI::ExtendedEventDescriptors::getMaximumTextLength
int getMaximumTextLength(const char *separation1="\t", const char *separation2="\n")
Definition: descriptor.c:91
SI::descr_nvod_reference
Definition: headers.h:1100
SI::AncillaryDataDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:845
SI::item_subtitling
Definition: headers.h:1347
SI::MHP_ApplicationDescriptor::isServiceBound
bool isServiceBound() const
Definition: descriptor.c:1040
SI::NVODReferenceDescriptor::Service::getTransportStream
int getTransportStream() const
Definition: descriptor.c:548
SI::AVCDescriptor::getProfileIdc
int getProfileIdc() const
Definition: descriptor.c:1205
SI::TeletextDescriptor::Teletext::getTeletextPageNumber
int getTeletextPageNumber() const
Definition: descriptor.c:352
SI::T2DeliverySystemDescriptor::getTfsFlag
int getTfsFlag() const
Definition: descriptor.c:936
SI::descr_frequency_list
Definition: headers.h:1489
SI::descr_linkage
Definition: headers.h:1070
SI::AVCDescriptor::getAVCStillPresent
int getAVCStillPresent() const
Definition: descriptor.c:1241
SI::descr_premiere_content_transmission
Definition: headers.h:2114
SI::descr_short_event_mid
Definition: headers.h:1137
SI::descr_application_icons_descriptor::icon_locator_length
u_char icon_locator_length
Definition: headers.h:2087
SI::PDCDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:824
SI::ExtendedEventDescriptor::Item::itemDescription
String itemDescription
Definition: descriptor.h:46
SI::String::getText
char * getText()
Definition: si.c:232
SI::MultilingualComponentDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:702
SI::ContentDescriptor::Nibble::getContentNibbleLevel2
int getContentNibbleLevel2() const
Definition: descriptor.c:298
SI::PremiereContentTransmissionDescriptor::StartDayEntry::StartTimeEntry::Parse
virtual void Parse()
Definition: descriptor.c:1020
SI::AVCDescriptor::getConstraintSet5Flag
int getConstraintSet5Flag() const
Definition: descriptor.c:1229
SI::TerrestrialDeliverySystemDescriptor::getMpeFecIndicator
int getMpeFecIndicator() const
Definition: descriptor.c:491
SI::descr_simple_application_location_descriptor::descriptor_length
u_char descriptor_length
Definition: headers.h:2104
SI::item_extended_event
Definition: headers.h:1166
SI::ExtendedEventDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:50
SI::ServiceMoveDescriptor::getNewServiceId
int getNewServiceId() const
Definition: descriptor.c:634
SI::descr_application_end
Definition: headers.h:1947
SI::LogicalChannelDescriptor::LogicalChannel::Parse
virtual void Parse()
Definition: descriptor.c:957
SI::ExtendedEventDescriptor::Item::item
String item
Definition: descriptor.h:45
HILOHILO
#define HILOHILO(x)
Definition: util.h:22
SI::MHP_ApplicationDescriptor::Profile::getApplicationProfile
int getApplicationProfile() const
Definition: descriptor.c:1061
SI::HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel::getServiceId
int getServiceId() const
Definition: descriptor.c:966
SI::PremiereContentTransmissionDescriptor::StartDayEntry::getMJD
int getMJD() const
Definition: descriptor.c:999
SI::LinkageDescriptor::getOriginalNetworkId
int getOriginalNetworkId() const
Definition: descriptor.c:773
SI::application_profile_entry
Definition: headers.h:1963
SI::HdSimulcastLogicalChannelDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:961
SI::AVCDescriptor::getFramePackingSEINotPresentFlag
int getFramePackingSEINotPresentFlag() const
Definition: descriptor.c:1249
SI::descr_logical_channel
Definition: headers.h:1890
SI::HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel::getLogicalChannelNumber
int getLogicalChannelNumber() const
Definition: descriptor.c:974
SI::S2SatelliteDeliverySystemDescriptor::getMultipleInputStreamFlag
int getMultipleInputStreamFlag() const
Definition: descriptor.c:868
descriptor.h
SI::CableDeliverySystemDescriptor::getFecInner
int getFecInner() const
Definition: descriptor.c:471
SI::TerrestrialDeliverySystemDescriptor::getCodeRateHP
int getCodeRateHP() const
Definition: descriptor.c:507
SI::AudioType
AudioType
Definition: si.h:227
SI::descr_content
Definition: headers.h:1235
SI::LogicalChannelDescriptor::LogicalChannel::getVisibleServiceFlag
int getVisibleServiceFlag() const
Definition: descriptor.c:949
SI::HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel::getVisibleServiceFlag
int getVisibleServiceFlag() const
Definition: descriptor.c:970
SI::MHP_TransportProtocolDescriptor::Parse
virtual void Parse()
Definition: descriptor.c:1115
SI::descr_component
Definition: headers.h:1189
SI::TeletextDescriptor::Teletext::Parse
virtual void Parse()
Definition: descriptor.c:336
SI::LinkageDescriptor::getLinkageType
LinkageType getLinkageType() const
Definition: descriptor.c:781