From 8d8294b4b354436adde202604fffb55c181d686c Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Fri, 30 Sep 2005 19:32:54 +0000 Subject: [PATCH] use libdvbsi++ from tuxbox-cvs, please add http://ghost.dream-multimedia-tv.de/libdvbsi++.bb to your bitbake/openembedded/packages/tuxbox directory and exectute "bitbake -b ../openembedded/packages/tuxbox/libdvbsi++.bb" then install the libdvbsi++...ipk --- acinclude.m4 | 2 +- configure.ac | 4 +- lib/Makefile.am | 2 +- lib/dvb/db.cpp | 8 +- lib/dvb/db.h | 2 +- lib/dvb/demux.h | 2 + lib/dvb/dvbtime.cpp | 6 +- lib/dvb/dvbtime.h | 2 +- lib/dvb/eit.cpp | 4 +- lib/dvb/eit.h | 4 +- lib/dvb/frontend.cpp | 6 +- lib/dvb/idvb.h | 1 + lib/dvb/pmt.cpp | 12 +- lib/dvb/pmt.h | 8 +- lib/dvb/scan.cpp | 34 +-- lib/dvb/scan.h | 14 +- lib/dvb/specs.h | 46 ++-- lib/dvb_si/.cvsignore | 0 lib/dvb_si/Makefile.am | 0 lib/dvb_si/ac3_descriptor.cpp | 102 -------- lib/dvb_si/ac3_descriptor.h | 59 ----- lib/dvb_si/ait.cpp | 94 ------- lib/dvb_si/ait.h | 86 ------ lib/dvb_si/ancillary_data_descriptor.cpp | 33 --- lib/dvb_si/ancillary_data_descriptor.h | 38 --- lib/dvb_si/announcement_support_descriptor.cpp | 107 -------- lib/dvb_si/announcement_support_descriptor.h | 67 ----- lib/dvb_si/application_signalling_descriptor.cpp | 57 ---- lib/dvb_si/application_signalling_descriptor.h | 57 ---- lib/dvb_si/audio_stream_descriptor.cpp | 52 ---- lib/dvb_si/audio_stream_descriptor.h | 45 ---- lib/dvb_si/bat.cpp | 55 ---- lib/dvb_si/bat.h | 66 ----- lib/dvb_si/bouquet_name_descriptor.cpp | 33 --- lib/dvb_si/bouquet_name_descriptor.h | 39 --- lib/dvb_si/ca_descriptor.cpp | 50 ---- lib/dvb_si/ca_descriptor.h | 51 ---- lib/dvb_si/ca_identifier_descriptor.cpp | 34 --- lib/dvb_si/ca_identifier_descriptor.h | 42 --- lib/dvb_si/ca_system_descriptor.cpp | 33 --- lib/dvb_si/ca_system_descriptor.h | 38 --- lib/dvb_si/cable_delivery_system_descriptor.cpp | 80 ------ lib/dvb_si/cable_delivery_system_descriptor.h | 47 ---- lib/dvb_si/camt.cpp | 29 --- lib/dvb_si/camt.h | 43 --- lib/dvb_si/capmt.cpp | 124 --------- lib/dvb_si/capmt.h | 87 ------- lib/dvb_si/cat.cpp | 29 --- lib/dvb_si/cat.h | 42 --- lib/dvb_si/cell_frequency_link_descriptor.cpp | 87 ------- lib/dvb_si/cell_frequency_link_descriptor.h | 78 ------ lib/dvb_si/cell_list_descriptor.cpp | 124 --------- lib/dvb_si/cell_list_descriptor.h | 89 ------- lib/dvb_si/component_descriptor.cpp | 60 ----- lib/dvb_si/component_descriptor.h | 47 ---- lib/dvb_si/container.cpp | 289 --------------------- lib/dvb_si/container.h | 39 --- lib/dvb_si/content_descriptor.cpp | 68 ----- lib/dvb_si/content_descriptor.h | 60 ----- lib/dvb_si/copyright_descriptor.h | 44 ---- lib/dvb_si/country_availability_descriptor.cpp | 47 ---- lib/dvb_si/country_availability_descriptor.h | 45 ---- lib/dvb_si/data_broadcast_descriptor.cpp | 62 ----- lib/dvb_si/data_broadcast_descriptor.h | 52 ---- lib/dvb_si/data_broadcast_id_descriptor.cpp | 44 ---- lib/dvb_si/data_broadcast_id_descriptor.h | 44 ---- lib/dvb_si/data_stream_alignment_descriptor.h | 38 --- lib/dvb_si/descriptor.cpp | 39 --- lib/dvb_si/descriptor.h | 46 ---- lib/dvb_si/descriptor_tag.h | 127 --------- lib/dvb_si/dsng_descriptor.h | 42 --- lib/dvb_si/eit.cpp | 109 -------- lib/dvb_si/eit.h | 83 ------ lib/dvb_si/element_descriptor.h | 34 --- lib/dvb_si/extended_event_descriptor.cpp | 90 ------- lib/dvb_si/extended_event_descriptor.h | 70 ----- lib/dvb_si/frequency_list_descriptor.cpp | 44 ---- lib/dvb_si/frequency_list_descriptor.h | 45 ---- lib/dvb_si/group_descriptor.h | 34 --- lib/dvb_si/hierarchy_descriptor.h | 48 ---- lib/dvb_si/ibp_descriptor.h | 42 --- lib/dvb_si/ippv_booking_descriptor.h | 34 --- lib/dvb_si/ippv_descriptor.h | 62 ----- lib/dvb_si/iso639_language_descriptor.cpp | 56 ---- lib/dvb_si/iso639_language_descriptor.h | 56 ---- lib/dvb_si/linkage_descriptor.cpp | 107 -------- lib/dvb_si/linkage_descriptor.h | 59 ----- lib/dvb_si/local_time_offset_descriptor.cpp | 88 ------- lib/dvb_si/local_time_offset_descriptor.h | 67 ----- lib/dvb_si/long_crc_table.cpp | 36 --- lib/dvb_si/long_crc_table.h | 44 ---- lib/dvb_si/long_table.cpp | 88 ------- lib/dvb_si/long_table.h | 60 ----- lib/dvb_si/maximum_bitrate_descriptor.h | 39 --- lib/dvb_si/mosaic_descriptor.cpp | 171 ------------ lib/dvb_si/mosaic_descriptor.h | 96 ------- .../multilingual_bouquet_name_descriptor.cpp | 57 ---- lib/dvb_si/multilingual_bouquet_name_descriptor.h | 57 ---- lib/dvb_si/multilingual_component_descriptor.cpp | 64 ----- lib/dvb_si/multilingual_component_descriptor.h | 59 ----- .../multilingual_network_name_descriptor.cpp | 57 ---- lib/dvb_si/multilingual_network_name_descriptor.h | 57 ---- .../multilingual_service_name_descriptor.cpp | 68 ----- lib/dvb_si/multilingual_service_name_descriptor.h | 62 ----- .../multiplex_buffer_utilization_descriptor.h | 43 --- lib/dvb_si/network_name_descriptor.cpp | 33 --- lib/dvb_si/network_name_descriptor.h | 38 --- lib/dvb_si/nit.cpp | 70 ----- lib/dvb_si/nit.h | 71 ----- lib/dvb_si/nvod_reference_descriptor.cpp | 63 ----- lib/dvb_si/nvod_reference_descriptor.h | 58 ----- lib/dvb_si/packet_id.h | 45 ---- lib/dvb_si/parental_rating_descriptor.cpp | 56 ---- lib/dvb_si/parental_rating_descriptor.h | 56 ---- lib/dvb_si/partial_transport_stream_descriptor.h | 45 ---- lib/dvb_si/pat.cpp | 81 ------ lib/dvb_si/pat.h | 84 ------ lib/dvb_si/pdc_descriptor.cpp | 34 --- lib/dvb_si/pdc_descriptor.h | 39 --- lib/dvb_si/pmt.cpp | 75 ------ lib/dvb_si/pmt.h | 77 ------ lib/dvb_si/private_data_indicator_descriptor.h | 38 --- lib/dvb_si/private_data_specifier_descriptor.cpp | 33 --- lib/dvb_si/private_data_specifier_descriptor.h | 38 --- lib/dvb_si/registration_descriptor.h | 44 ---- .../satellite_delivery_system_descriptor.cpp | 91 ------- lib/dvb_si/satellite_delivery_system_descriptor.h | 50 ---- lib/dvb_si/sdt.cpp | 87 ------- lib/dvb_si/sdt.h | 77 ------ lib/dvb_si/service_descriptor.cpp | 47 ---- lib/dvb_si/service_descriptor.h | 44 ---- lib/dvb_si/service_list_descriptor.cpp | 56 ---- lib/dvb_si/service_list_descriptor.h | 56 ---- lib/dvb_si/service_move_descriptor.cpp | 45 ---- lib/dvb_si/service_move_descriptor.h | 42 --- lib/dvb_si/service_type.h | 50 ---- lib/dvb_si/short_crc_table.cpp | 36 --- lib/dvb_si/short_crc_table.h | 44 ---- lib/dvb_si/short_event_descriptor.cpp | 47 ---- lib/dvb_si/short_event_descriptor.h | 44 ---- lib/dvb_si/short_smoothing_buffer_descriptor.h | 41 --- lib/dvb_si/short_table.cpp | 47 ---- lib/dvb_si/short_table.h | 58 ----- lib/dvb_si/smoothing_buffer_descriptor.h | 42 --- lib/dvb_si/std_descriptor.h | 39 --- lib/dvb_si/stream_identifier_descriptor.cpp | 33 --- lib/dvb_si/stream_identifier_descriptor.h | 38 --- lib/dvb_si/stream_type.h | 51 ---- lib/dvb_si/stuffing_descriptor.cpp | 29 --- lib/dvb_si/stuffing_descriptor.h | 36 --- lib/dvb_si/subtitling_descriptor.cpp | 68 ----- lib/dvb_si/subtitling_descriptor.h | 60 ----- lib/dvb_si/system_clock_descriptor.h | 44 ---- lib/dvb_si/table_id.h | 123 --------- lib/dvb_si/target_background_grid_descriptor.cpp | 45 ---- lib/dvb_si/target_background_grid_descriptor.h | 42 --- lib/dvb_si/tdt.cpp | 39 --- lib/dvb_si/tdt.h | 48 ---- lib/dvb_si/telephone_descriptor.cpp | 83 ------ lib/dvb_si/telephone_descriptor.h | 58 ----- lib/dvb_si/teletext_descriptor.cpp | 27 -- lib/dvb_si/teletext_descriptor.h | 33 --- .../terrestrial_delivery_system_descriptor.cpp | 83 ------ .../terrestrial_delivery_system_descriptor.h | 56 ---- lib/dvb_si/time_shifted_event_descriptor.h | 40 --- lib/dvb_si/time_shifted_service_descriptor.cpp | 33 --- lib/dvb_si/time_shifted_service_descriptor.h | 38 --- lib/dvb_si/tot.cpp | 44 ---- lib/dvb_si/tot.h | 51 ---- lib/dvb_si/transport_stream_descriptor.h | 38 --- lib/dvb_si/url_descriptor.h | 34 --- lib/dvb_si/vbi_data_descriptor.cpp | 98 ------- lib/dvb_si/vbi_data_descriptor.h | 77 ------ lib/dvb_si/vbi_teletext_descriptor.cpp | 68 ----- lib/dvb_si/vbi_teletext_descriptor.h | 60 ----- lib/dvb_si/video_stream_descriptor.cpp | 73 ------ lib/dvb_si/video_stream_descriptor.h | 53 ---- lib/dvb_si/video_window_descriptor.cpp | 45 ---- lib/dvb_si/video_window_descriptor.h | 42 --- lib/network/serversocket.lo | Bin 191634 -> 0 bytes lib/network/socket.lo | Bin 224321 -> 224317 bytes lib/service/event.cpp | 6 +- main/Makefile.am | 5 +- main/enigma-dvbtest.cpp | 10 +- main/enigma-playlist.cpp | 2 +- main/enigma-scan.cpp | 2 +- 186 files changed, 92 insertions(+), 9477 deletions(-) delete mode 100644 lib/dvb_si/.cvsignore delete mode 100644 lib/dvb_si/Makefile.am delete mode 100644 lib/dvb_si/ac3_descriptor.cpp delete mode 100644 lib/dvb_si/ac3_descriptor.h delete mode 100644 lib/dvb_si/ait.cpp delete mode 100644 lib/dvb_si/ait.h delete mode 100644 lib/dvb_si/ancillary_data_descriptor.cpp delete mode 100644 lib/dvb_si/ancillary_data_descriptor.h delete mode 100644 lib/dvb_si/announcement_support_descriptor.cpp delete mode 100644 lib/dvb_si/announcement_support_descriptor.h delete mode 100644 lib/dvb_si/application_signalling_descriptor.cpp delete mode 100644 lib/dvb_si/application_signalling_descriptor.h delete mode 100644 lib/dvb_si/audio_stream_descriptor.cpp delete mode 100644 lib/dvb_si/audio_stream_descriptor.h delete mode 100644 lib/dvb_si/bat.cpp delete mode 100644 lib/dvb_si/bat.h delete mode 100644 lib/dvb_si/bouquet_name_descriptor.cpp delete mode 100644 lib/dvb_si/bouquet_name_descriptor.h delete mode 100644 lib/dvb_si/ca_descriptor.cpp delete mode 100644 lib/dvb_si/ca_descriptor.h delete mode 100644 lib/dvb_si/ca_identifier_descriptor.cpp delete mode 100644 lib/dvb_si/ca_identifier_descriptor.h delete mode 100644 lib/dvb_si/ca_system_descriptor.cpp delete mode 100644 lib/dvb_si/ca_system_descriptor.h delete mode 100644 lib/dvb_si/cable_delivery_system_descriptor.cpp delete mode 100644 lib/dvb_si/cable_delivery_system_descriptor.h delete mode 100644 lib/dvb_si/camt.cpp delete mode 100644 lib/dvb_si/camt.h delete mode 100644 lib/dvb_si/capmt.cpp delete mode 100644 lib/dvb_si/capmt.h delete mode 100644 lib/dvb_si/cat.cpp delete mode 100644 lib/dvb_si/cat.h delete mode 100644 lib/dvb_si/cell_frequency_link_descriptor.cpp delete mode 100644 lib/dvb_si/cell_frequency_link_descriptor.h delete mode 100644 lib/dvb_si/cell_list_descriptor.cpp delete mode 100644 lib/dvb_si/cell_list_descriptor.h delete mode 100644 lib/dvb_si/component_descriptor.cpp delete mode 100644 lib/dvb_si/component_descriptor.h delete mode 100644 lib/dvb_si/container.cpp delete mode 100644 lib/dvb_si/container.h delete mode 100644 lib/dvb_si/content_descriptor.cpp delete mode 100644 lib/dvb_si/content_descriptor.h delete mode 100644 lib/dvb_si/copyright_descriptor.h delete mode 100644 lib/dvb_si/country_availability_descriptor.cpp delete mode 100644 lib/dvb_si/country_availability_descriptor.h delete mode 100644 lib/dvb_si/data_broadcast_descriptor.cpp delete mode 100644 lib/dvb_si/data_broadcast_descriptor.h delete mode 100644 lib/dvb_si/data_broadcast_id_descriptor.cpp delete mode 100644 lib/dvb_si/data_broadcast_id_descriptor.h delete mode 100644 lib/dvb_si/data_stream_alignment_descriptor.h delete mode 100644 lib/dvb_si/descriptor.cpp delete mode 100644 lib/dvb_si/descriptor.h delete mode 100644 lib/dvb_si/descriptor_tag.h delete mode 100644 lib/dvb_si/dsng_descriptor.h delete mode 100644 lib/dvb_si/eit.cpp delete mode 100644 lib/dvb_si/eit.h delete mode 100644 lib/dvb_si/element_descriptor.h delete mode 100644 lib/dvb_si/extended_event_descriptor.cpp delete mode 100644 lib/dvb_si/extended_event_descriptor.h delete mode 100644 lib/dvb_si/frequency_list_descriptor.cpp delete mode 100644 lib/dvb_si/frequency_list_descriptor.h delete mode 100644 lib/dvb_si/group_descriptor.h delete mode 100644 lib/dvb_si/hierarchy_descriptor.h delete mode 100644 lib/dvb_si/ibp_descriptor.h delete mode 100644 lib/dvb_si/ippv_booking_descriptor.h delete mode 100644 lib/dvb_si/ippv_descriptor.h delete mode 100644 lib/dvb_si/iso639_language_descriptor.cpp delete mode 100644 lib/dvb_si/iso639_language_descriptor.h delete mode 100644 lib/dvb_si/linkage_descriptor.cpp delete mode 100644 lib/dvb_si/linkage_descriptor.h delete mode 100644 lib/dvb_si/local_time_offset_descriptor.cpp delete mode 100644 lib/dvb_si/local_time_offset_descriptor.h delete mode 100644 lib/dvb_si/long_crc_table.cpp delete mode 100644 lib/dvb_si/long_crc_table.h delete mode 100644 lib/dvb_si/long_table.cpp delete mode 100644 lib/dvb_si/long_table.h delete mode 100644 lib/dvb_si/maximum_bitrate_descriptor.h delete mode 100644 lib/dvb_si/mosaic_descriptor.cpp delete mode 100644 lib/dvb_si/mosaic_descriptor.h delete mode 100644 lib/dvb_si/multilingual_bouquet_name_descriptor.cpp delete mode 100644 lib/dvb_si/multilingual_bouquet_name_descriptor.h delete mode 100644 lib/dvb_si/multilingual_component_descriptor.cpp delete mode 100644 lib/dvb_si/multilingual_component_descriptor.h delete mode 100644 lib/dvb_si/multilingual_network_name_descriptor.cpp delete mode 100644 lib/dvb_si/multilingual_network_name_descriptor.h delete mode 100644 lib/dvb_si/multilingual_service_name_descriptor.cpp delete mode 100644 lib/dvb_si/multilingual_service_name_descriptor.h delete mode 100644 lib/dvb_si/multiplex_buffer_utilization_descriptor.h delete mode 100644 lib/dvb_si/network_name_descriptor.cpp delete mode 100644 lib/dvb_si/network_name_descriptor.h delete mode 100644 lib/dvb_si/nit.cpp delete mode 100644 lib/dvb_si/nit.h delete mode 100644 lib/dvb_si/nvod_reference_descriptor.cpp delete mode 100644 lib/dvb_si/nvod_reference_descriptor.h delete mode 100644 lib/dvb_si/packet_id.h delete mode 100644 lib/dvb_si/parental_rating_descriptor.cpp delete mode 100644 lib/dvb_si/parental_rating_descriptor.h delete mode 100644 lib/dvb_si/partial_transport_stream_descriptor.h delete mode 100644 lib/dvb_si/pat.cpp delete mode 100644 lib/dvb_si/pat.h delete mode 100644 lib/dvb_si/pdc_descriptor.cpp delete mode 100644 lib/dvb_si/pdc_descriptor.h delete mode 100644 lib/dvb_si/pmt.cpp delete mode 100644 lib/dvb_si/pmt.h delete mode 100644 lib/dvb_si/private_data_indicator_descriptor.h delete mode 100644 lib/dvb_si/private_data_specifier_descriptor.cpp delete mode 100644 lib/dvb_si/private_data_specifier_descriptor.h delete mode 100644 lib/dvb_si/registration_descriptor.h delete mode 100644 lib/dvb_si/satellite_delivery_system_descriptor.cpp delete mode 100644 lib/dvb_si/satellite_delivery_system_descriptor.h delete mode 100644 lib/dvb_si/sdt.cpp delete mode 100644 lib/dvb_si/sdt.h delete mode 100644 lib/dvb_si/service_descriptor.cpp delete mode 100644 lib/dvb_si/service_descriptor.h delete mode 100644 lib/dvb_si/service_list_descriptor.cpp delete mode 100644 lib/dvb_si/service_list_descriptor.h delete mode 100644 lib/dvb_si/service_move_descriptor.cpp delete mode 100644 lib/dvb_si/service_move_descriptor.h delete mode 100644 lib/dvb_si/service_type.h delete mode 100644 lib/dvb_si/short_crc_table.cpp delete mode 100644 lib/dvb_si/short_crc_table.h delete mode 100644 lib/dvb_si/short_event_descriptor.cpp delete mode 100644 lib/dvb_si/short_event_descriptor.h delete mode 100644 lib/dvb_si/short_smoothing_buffer_descriptor.h delete mode 100644 lib/dvb_si/short_table.cpp delete mode 100644 lib/dvb_si/short_table.h delete mode 100644 lib/dvb_si/smoothing_buffer_descriptor.h delete mode 100644 lib/dvb_si/std_descriptor.h delete mode 100644 lib/dvb_si/stream_identifier_descriptor.cpp delete mode 100644 lib/dvb_si/stream_identifier_descriptor.h delete mode 100644 lib/dvb_si/stream_type.h delete mode 100644 lib/dvb_si/stuffing_descriptor.cpp delete mode 100644 lib/dvb_si/stuffing_descriptor.h delete mode 100644 lib/dvb_si/subtitling_descriptor.cpp delete mode 100644 lib/dvb_si/subtitling_descriptor.h delete mode 100644 lib/dvb_si/system_clock_descriptor.h delete mode 100644 lib/dvb_si/table_id.h delete mode 100644 lib/dvb_si/target_background_grid_descriptor.cpp delete mode 100644 lib/dvb_si/target_background_grid_descriptor.h delete mode 100644 lib/dvb_si/tdt.cpp delete mode 100644 lib/dvb_si/tdt.h delete mode 100644 lib/dvb_si/telephone_descriptor.cpp delete mode 100644 lib/dvb_si/telephone_descriptor.h delete mode 100644 lib/dvb_si/teletext_descriptor.cpp delete mode 100644 lib/dvb_si/teletext_descriptor.h delete mode 100644 lib/dvb_si/terrestrial_delivery_system_descriptor.cpp delete mode 100644 lib/dvb_si/terrestrial_delivery_system_descriptor.h delete mode 100644 lib/dvb_si/time_shifted_event_descriptor.h delete mode 100644 lib/dvb_si/time_shifted_service_descriptor.cpp delete mode 100644 lib/dvb_si/time_shifted_service_descriptor.h delete mode 100644 lib/dvb_si/tot.cpp delete mode 100644 lib/dvb_si/tot.h delete mode 100644 lib/dvb_si/transport_stream_descriptor.h delete mode 100644 lib/dvb_si/url_descriptor.h delete mode 100644 lib/dvb_si/vbi_data_descriptor.cpp delete mode 100644 lib/dvb_si/vbi_data_descriptor.h delete mode 100644 lib/dvb_si/vbi_teletext_descriptor.cpp delete mode 100644 lib/dvb_si/vbi_teletext_descriptor.h delete mode 100644 lib/dvb_si/video_stream_descriptor.cpp delete mode 100644 lib/dvb_si/video_stream_descriptor.h delete mode 100644 lib/dvb_si/video_window_descriptor.cpp delete mode 100644 lib/dvb_si/video_window_descriptor.h diff --git a/acinclude.m4 b/acinclude.m4 index 0dcafde..b92d02f 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -125,7 +125,7 @@ TUXBOX_APPS_DIRECTORY_ONE(fontdir,FONTDIR,datadir,/share,/fonts, TUXBOX_APPS_DIRECTORY_ONE(gamesdir,GAMESDIR,localstatedir,/var,/tuxbox/games, [--with-gamesdir=PATH ],[where games data is stored]) -TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,, +TUXBOX_APPS_DIRECTORY_ONE(libdir,LIBDIR,libdir,/lib,/tuxbox, [--with-libdir=PATH ],[where to find the internal libs]) TUXBOX_APPS_DIRECTORY_ONE(plugindir,PLUGINDIR,libdir,/lib,/tuxbox/plugins, diff --git a/configure.ac b/configure.ac index eacbf2d..e598b76 100644 --- a/configure.ac +++ b/configure.ac @@ -29,6 +29,7 @@ TUXBOX_APPS_LIB_PKGCONFIG(MAD,mad) #TUXBOX_APPS_LIB_PKGCONFIG(PLUGINS,tuxbox-plugins) TUXBOX_APPS_LIB_PKGCONFIG(PNG,libpng) TUXBOX_APPS_LIB_PKGCONFIG(SIGC,sigc++-1.2) +TUXBOX_APPS_LIB_PKGCONFIG(DVBSI,libdvbsi++) #TUXBOX_APPS_LIB_PKGCONFIG(XMLTREE,tuxbox-xmltree) if test "$withsdl" = "yes" ; then TUXBOX_APPS_LIB_CONFIG(SDL,sdl-config) @@ -36,7 +37,7 @@ if test "$withsdl" = "yes" ; then fi # fixme: decent python stuff -CPPFLAGS="$CPPFLAGS $MD5SUM_CFLAGS $FREETYPE_CFLAGS $FRIBIDI_CFLAGS $ID3TAG_CFLAGS $MAD_CFLAGS $PLUGINS_CFLAGS $PNG_CFLAGS $SIGC_CFLAGS $XMLTREE_CFLAGS -I$PYTHON_INCDIR -DHAVE_CPP_FILT -DMEMLEAK_CHECK" +CPPFLAGS="$CPPFLAGS $MD5SUM_CFLAGS $FREETYPE_CFLAGS $FRIBIDI_CFLAGS $ID3TAG_CFLAGS $MAD_CFLAGS $PLUGINS_CFLAGS $PNG_CFLAGS $SIGC_CFLAGS $XMLTREE_CFLAGS $DVBSI_CFLAGS -I$PYTHON_INCDIR -DHAVE_CPP_FILT -DMEMLEAK_CHECK" CXXFLAGS="$CXXFLAGS -fno-rtti -fno-exceptions -Wall" LDFLAGS="$LDFLAGS -rdynamic" @@ -51,7 +52,6 @@ lib/base/Makefile lib/driver/Makefile lib/dvb/Makefile lib/dvb_ci/Makefile -lib/dvb_si/Makefile lib/gdi/Makefile lib/gui/Makefile lib/nav/Makefile diff --git a/lib/Makefile.am b/lib/Makefile.am index 8d07ec9..4372ccb 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1 +1 @@ -SUBDIRS = actions base components dvb dvb_ci dvb_si gdi network service driver nav gui python +SUBDIRS = actions base components dvb dvb_ci gdi network service driver nav gui python diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp index 13bb900..fdcd428 100644 --- a/lib/dvb/db.cpp +++ b/lib/dvb/db.cpp @@ -3,10 +3,10 @@ #include #include #include -#include -#include -#include -#include +#include +#include +#include +#include DEFINE_REF(eDVBService); diff --git a/lib/dvb/db.h b/lib/dvb/db.h index 3db7228..084c877 100644 --- a/lib/dvb/db.h +++ b/lib/dvb/db.h @@ -4,7 +4,7 @@ #include #include -class ServiceDescriptionTable; +class ServiceDescriptionSection; struct eDVBBouquet { diff --git a/lib/dvb/demux.h b/lib/dvb/demux.h index 23aef0f..a01cf60 100644 --- a/lib/dvb/demux.h +++ b/lib/dvb/demux.h @@ -14,6 +14,7 @@ class eDVBDemux: public iDVBDemux friend class eDVBVideo; friend class eDVBPCR; friend class eDVBTSRecorder; + friend class eDVBCAService; public: DECLARE_REF(eDVBDemux); eDVBDemux(int adapter, int demux); @@ -22,6 +23,7 @@ public: RESULT createTSRecorder(ePtr &recorder); RESULT getMPEGDecoder(ePtr &reader); RESULT getSTC(pts_t &pts); + RESULT getCADemuxID(uint8_t &id) { id = demux; return 0; } }; class eDVBSectionReader: public iDVBSectionReader, public Object diff --git a/lib/dvb/dvbtime.cpp b/lib/dvb/dvbtime.cpp index 795b524..82ceffd 100644 --- a/lib/dvb/dvbtime.cpp +++ b/lib/dvb/dvbtime.cpp @@ -97,10 +97,10 @@ void TDT::start() if ( chan ) { eDVBTableSpec spec; - spec.pid = TimeAndDateTable::PID; - spec.tid = TimeAndDateTable::TID; + spec.pid = TimeAndDateSection::PID; + spec.tid = TimeAndDateSection::TID; spec.tid_mask = 0xFC; - spec.timeout = TimeAndDateTable::TIMEOUT; + spec.timeout = TimeAndDateSection::TIMEOUT; spec.flags= eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfHaveTIDMask | diff --git a/lib/dvb/dvbtime.h b/lib/dvb/dvbtime.h index 3b92fd1..fbc82f0 100644 --- a/lib/dvb/dvbtime.h +++ b/lib/dvb/dvbtime.h @@ -3,7 +3,7 @@ #include #include -#include +#include class eDVBChannel; diff --git a/lib/dvb/eit.cpp b/lib/dvb/eit.cpp index 2462d33..b78b227 100644 --- a/lib/dvb/eit.cpp +++ b/lib/dvb/eit.cpp @@ -7,11 +7,11 @@ void eDVBServiceEITHandler::EITready(int error) { if (!error) { - ePtr > ptr; + ePtr > ptr; if (!m_EIT.getCurrent(ptr)) { int a = 0; - for (EventInformationTableConstIterator i = ptr->getSections().begin(); + for (std::vector::const_iterator i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i) { for (EventConstIterator ev = (*i)->getEvents()->begin(); ev != (*i)->getEvents()->end(); ++ev) diff --git a/lib/dvb/eit.h b/lib/dvb/eit.h index a026773..43bdb6b 100644 --- a/lib/dvb/eit.h +++ b/lib/dvb/eit.h @@ -3,13 +3,13 @@ #include #include -#include +#include #include class eDVBServiceEITHandler: public Object { ePtr m_demux; - eAUTable > m_EIT; + eAUTable > m_EIT; void EITready(int error); RESULT parseEvent(ePtr &serviceevent, const Event &dvbevent); diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index d4704a9..6951983 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -23,9 +23,9 @@ #include #endif -#include -#include -#include +#include +#include +#include void eDVBFrontendParametersSatellite::set(const SatelliteDeliverySystemDescriptor &descriptor) { diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index 683a7b7..add9ba8 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -476,6 +476,7 @@ public: virtual RESULT createTSRecorder(ePtr &recorder)=0; virtual RESULT getMPEGDecoder(ePtr &reader)=0; virtual RESULT getSTC(pts_t &pts)=0; + virtual RESULT getCADemuxID(uint8_t &id)=0; }; class iTSMPEGDecoder: public iObject diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index e62de9b..57e617c 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -50,14 +50,14 @@ void eDVBServicePMTHandler::PMTready(int error) void eDVBServicePMTHandler::PATready(int) { eDebug("got PAT"); - ePtr > ptr; + ePtr > ptr; if (!m_PAT.getCurrent(ptr)) { int pmtpid = -1; - ProgramAssociationTableConstIterator i; + std::vector::const_iterator i; for (i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i) { - const ProgramAssociationTable &pat = **i; + const ProgramAssociationSection &pat = **i; ProgramAssociationConstIterator program; for (program = pat.getPrograms()->begin(); program != pat.getPrograms()->end(); ++program) if (eServiceID((*program)->getProgramNumber()) == m_reference.getServiceID()) @@ -74,7 +74,7 @@ void eDVBServicePMTHandler::PATready(int) int eDVBServicePMTHandler::getProgramInfo(struct program &program) { eDebug("got PMT"); - ePtr > ptr; + ePtr > ptr; program.videoStreams.clear(); program.audioStreams.clear(); @@ -82,10 +82,10 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program) if (!m_PMT.getCurrent(ptr)) { - ProgramMapTableConstIterator i; + std::vector::const_iterator i; for (i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i) { - const ProgramMapTable &pmt = **i; + const ProgramMapSection &pmt = **i; program.pcrPid = pmt.getPcrPid(); ElementaryStreamInfoConstIterator es; diff --git a/lib/dvb/pmt.h b/lib/dvb/pmt.h index efe54ee..2d47852 100644 --- a/lib/dvb/pmt.h +++ b/lib/dvb/pmt.h @@ -5,8 +5,8 @@ #include #include #include -#include -#include +#include +#include class eDVBServicePMTHandler: public Object { @@ -15,8 +15,8 @@ class eDVBServicePMTHandler: public Object int m_last_channel_state; - eAUTable > m_PMT; - eAUTable > m_PAT; + eAUTable > m_PMT; + eAUTable > m_PAT; eUsePtr m_channel; eUsePtr m_pvr_channel; diff --git a/lib/dvb/scan.cpp b/lib/dvb/scan.cpp index 7e60331..11b4e7c 100644 --- a/lib/dvb/scan.cpp +++ b/lib/dvb/scan.cpp @@ -1,11 +1,11 @@ #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -119,18 +119,18 @@ RESULT eDVBScan::startFilter() { assert(m_demux); - m_SDT = new eTable(); + m_SDT = new eTable(); if (m_SDT->start(m_demux, eDVBSDTSpec())) return -1; CONNECT(m_SDT->tableReady, eDVBScan::SDTready); m_NIT = 0; - m_NIT = new eTable(); + m_NIT = new eTable(); if (m_NIT->start(m_demux, eDVBNITSpec())) return -1; CONNECT(m_NIT->tableReady, eDVBScan::NITready); - m_BAT = new eTable(); + m_BAT = new eTable(); if (m_BAT->start(m_demux, eDVBBATSpec())) return -1; CONNECT(m_BAT->tableReady, eDVBScan::BATready); @@ -222,7 +222,7 @@ void eDVBScan::channelDone() hash); SCAN_eDebug("SDT: "); - ServiceDescriptionTableConstIterator i; + std::vector::const_iterator i; for (i = m_SDT->getSections().begin(); i != m_SDT->getSections().end(); ++i) processSDT(dvbnamespace, **i); m_ready &= ~validSDT; @@ -231,10 +231,10 @@ void eDVBScan::channelDone() if (m_ready & validNIT) { SCAN_eDebug("dumping NIT"); - NetworkInformationTableConstIterator i; + std::vector::const_iterator i; for (i = m_NIT->getSections().begin(); i != m_NIT->getSections().end(); ++i) { - const TransportStreamInfoVector &tsinfovec = *(*i)->getTsInfo(); + const TransportStreamInfoList &tsinfovec = *(*i)->getTsInfo(); for (TransportStreamInfoConstIterator tsinfo(tsinfovec.begin()); tsinfo != tsinfovec.end(); ++tsinfo) @@ -353,9 +353,9 @@ void eDVBScan::insertInto(iDVBChannelList *db) } } -RESULT eDVBScan::processSDT(eDVBNamespace dvbnamespace, const ServiceDescriptionTable &sdt) +RESULT eDVBScan::processSDT(eDVBNamespace dvbnamespace, const ServiceDescriptionSection &sdt) { - const ServiceDescriptionVector &services = *sdt.getDescriptions(); + const ServiceDescriptionList &services = *sdt.getDescriptions(); SCAN_eDebug("ONID: %04x", sdt.getOriginalNetworkId()); eDVBChannelID chid(dvbnamespace, sdt.getTransportStreamId(), sdt.getOriginalNetworkId()); @@ -394,9 +394,9 @@ RESULT eDVBScan::processSDT(eDVBNamespace dvbnamespace, const ServiceDescription case CA_IDENTIFIER_DESCRIPTOR: { CaIdentifierDescriptor &d = (CaIdentifierDescriptor&)**desc; - const CaSystemIdVector &caids = *d.getCaSystemIds(); + const CaSystemIdList &caids = *d.getCaSystemIds(); SCAN_eDebugNoNewLine("CA "); - for (CaSystemIdVector::const_iterator i(caids.begin()); i != caids.end(); ++i) + for (CaSystemIdList::const_iterator i(caids.begin()); i != caids.end(); ++i) { SCAN_eDebugNoNewLine("%04x ", *i); service->m_ca.insert(*i); diff --git a/lib/dvb/scan.h b/lib/dvb/scan.h index 743ea8d..6abc1d0 100644 --- a/lib/dvb/scan.h +++ b/lib/dvb/scan.h @@ -1,9 +1,9 @@ #ifndef __lib_dvb_scan_h #define __lib_dvb_scan_h -#include -#include -#include +#include +#include +#include #include #include #include @@ -45,9 +45,9 @@ private: ePtr m_ch_current; eDVBChannelID m_chid_current; - ePtr > m_SDT; - ePtr > m_NIT; - ePtr > m_BAT; + ePtr > m_SDT; + ePtr > m_NIT; + ePtr > m_BAT; void SDTready(int err); void NITready(int err); @@ -60,7 +60,7 @@ private: void channelDone(); Signal1 m_event; - RESULT processSDT(eDVBNamespace dvbnamespace, const ServiceDescriptionTable &sdt); + RESULT processSDT(eDVBNamespace dvbnamespace, const ServiceDescriptionSection &sdt); public: eDVBScan(iDVBChannel *channel); ~eDVBScan(); diff --git a/lib/dvb/specs.h b/lib/dvb/specs.h index 2e2eed9..23ef2ce 100644 --- a/lib/dvb/specs.h +++ b/lib/dvb/specs.h @@ -3,12 +3,12 @@ #include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include struct eDVBPMTSpec { @@ -17,9 +17,9 @@ public: eDVBPMTSpec(int pid, int sid) { m_spec.pid = pid; - m_spec.tid = ProgramMapTable::TID; + m_spec.tid = ProgramMapSection::TID; m_spec.tidext = sid; - m_spec.timeout = 20000; // ProgramMapTable::TIMEOUT; + m_spec.timeout = 20000; // ProgramMapSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfHaveTIDExt | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; @@ -36,9 +36,9 @@ struct eDVBSDTSpec public: eDVBSDTSpec() { - m_spec.pid = ServiceDescriptionTable::PID; - m_spec.tid = ServiceDescriptionTable::TID; - m_spec.timeout = 20000; // ServiceDescriptionTable::TIMEOUT; + m_spec.pid = ServiceDescriptionSection::PID; + m_spec.tid = ServiceDescriptionSection::TID; + m_spec.timeout = 20000; // ServiceDescriptionSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; @@ -55,9 +55,9 @@ struct eDVBNITSpec public: eDVBNITSpec() { - m_spec.pid = NetworkInformationTable::PID; - m_spec.tid = NetworkInformationTable::TID; - m_spec.timeout = NetworkInformationTable::TIMEOUT; + m_spec.pid = NetworkInformationSection::PID; + m_spec.tid = NetworkInformationSection::TID; + m_spec.timeout = NetworkInformationSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; @@ -74,9 +74,9 @@ struct eDVBBATSpec public: eDVBBATSpec() { - m_spec.pid = BouquetAssociationTable::PID; - m_spec.tid = BouquetAssociationTable::TID; - m_spec.timeout = BouquetAssociationTable::TIMEOUT; + m_spec.pid = BouquetAssociationSection::PID; + m_spec.tid = BouquetAssociationSection::TID; + m_spec.timeout = BouquetAssociationSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; @@ -93,9 +93,9 @@ struct eDVBPATSpec public: eDVBPATSpec() { - m_spec.pid = ProgramAssociationTable::PID; - m_spec.tid = ProgramAssociationTable::TID; - m_spec.timeout = 20000; // ProgramAssociationTable::TIMEOUT; + m_spec.pid = ProgramAssociationSection::PID; + m_spec.tid = ProgramAssociationSection::TID; + m_spec.timeout = 20000; // ProgramAssociationSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; @@ -113,10 +113,10 @@ public: /* this is for now&next on actual transponder. */ eDVBEITSpec(int sid) { - m_spec.pid = EventInformationTable::PID; - m_spec.tid = EventInformationTable::TID; + m_spec.pid = EventInformationSection::PID; + m_spec.tid = EventInformationSection::TID; m_spec.tidext = sid; - m_spec.timeout = EventInformationTable::TIMEOUT; + m_spec.timeout = EventInformationSection::TIMEOUT; m_spec.flags = eDVBTableSpec::tfAnyVersion | eDVBTableSpec::tfHaveTID | eDVBTableSpec::tfHaveTIDExt | eDVBTableSpec::tfCheckCRC | eDVBTableSpec::tfHaveTimeout; diff --git a/lib/dvb_si/.cvsignore b/lib/dvb_si/.cvsignore deleted file mode 100644 index e69de29..0000000 diff --git a/lib/dvb_si/Makefile.am b/lib/dvb_si/Makefile.am deleted file mode 100644 index e69de29..0000000 diff --git a/lib/dvb_si/ac3_descriptor.cpp b/lib/dvb_si/ac3_descriptor.cpp deleted file mode 100644 index a4f5d63..0000000 --- a/lib/dvb_si/ac3_descriptor.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* - * $Id: ac3_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -Ac3Descriptor::Ac3Descriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - if (buffer[1] >= 1) - { - ac3TypeFlag = (buffer[2] >> 7) & 0x01; - bsidFlag = (buffer[2] >> 6) & 0x01; - mainidFlag = (buffer[2] >> 5) & 0x01; - asvcFlag = (buffer[2] >> 4) & 0x01; - reserved = buffer[2] & 0x0F; - if (ac3TypeFlag == 1) - ac3Type = buffer[3]; - - if (bsidFlag == 1) - bsid = buffer[ac3TypeFlag + 3]; - - if (mainidFlag == 1) - mainid = buffer[ac3TypeFlag + mainidFlag + 3]; - - if (asvcFlag == 1) - avsc = buffer[ac3TypeFlag + bsidFlag + mainidFlag + 3]; - - if (descriptorLength > ac3TypeFlag + bsidFlag + mainidFlag + asvcFlag) - for (uint16_t i = 0; i < descriptorLength - ac3TypeFlag - bsidFlag - mainidFlag - asvcFlag - 1; ++i) - additionalInfo.push_back(buffer[ac3TypeFlag + bsidFlag + mainidFlag + asvcFlag + i + 3]); - } else - { - ac3TypeFlag = 0; - bsidFlag = 0; - mainidFlag = 0; - asvcFlag = 0; - reserved = 0; - } -} - -uint8_t Ac3Descriptor::getAc3TypeFlag(void) const -{ - return ac3TypeFlag; -} - -uint8_t Ac3Descriptor::getBsidFlag(void) const -{ - return bsidFlag; -} - -uint8_t Ac3Descriptor::getMainidFlag(void) const -{ - return mainidFlag; -} - -uint8_t Ac3Descriptor::getAsvcFlag(void) const -{ - return asvcFlag; -} - -uint8_t Ac3Descriptor::getAc3Type(void) const -{ - return ac3Type; -} - -uint8_t Ac3Descriptor::getBsid(void) const -{ - return bsid; -} - -uint8_t Ac3Descriptor::getMainid(void) const -{ - return mainid; -} - -uint8_t Ac3Descriptor::getAvsc(void) const -{ - return avsc; -} - -const AdditionalInfoVector *Ac3Descriptor::getAdditionalInfo(void) const -{ - return &additionalInfo; -} - diff --git a/lib/dvb_si/ac3_descriptor.h b/lib/dvb_si/ac3_descriptor.h deleted file mode 100644 index d5eaf83..0000000 --- a/lib/dvb_si/ac3_descriptor.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * $Id: ac3_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_ac3_descriptor_h__ -#define __dvb_descriptor_ac3_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector AdditionalInfoVector; -typedef AdditionalInfoVector::iterator AdditionalInfoIterator; -typedef AdditionalInfoVector::const_iterator AdditionalInfoConstIterator; - -class Ac3Descriptor : public Descriptor -{ - protected: - unsigned ac3TypeFlag : 1; - unsigned bsidFlag : 1; - unsigned mainidFlag : 1; - unsigned asvcFlag : 1; - unsigned reserved : 4; - unsigned ac3Type : 8; - unsigned bsid : 8; - unsigned mainid : 8; - unsigned avsc : 8; - AdditionalInfoVector additionalInfo; - - public: - Ac3Descriptor(const uint8_t * const buffer); - - uint8_t getAc3TypeFlag(void) const; - uint8_t getBsidFlag(void) const; - uint8_t getMainidFlag(void) const; - uint8_t getAsvcFlag(void) const; - uint8_t getAc3Type(void) const; - uint8_t getBsid(void) const; - uint8_t getMainid(void) const; - uint8_t getAvsc(void) const; - const AdditionalInfoVector *getAdditionalInfo(void) const; -}; - -#endif /* __dvb_descriptor_ac3_descriptor_h__ */ diff --git a/lib/dvb_si/ait.cpp b/lib/dvb_si/ait.cpp deleted file mode 100644 index 74e38ca..0000000 --- a/lib/dvb_si/ait.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - * $Id: ait.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ApplicationIdentifier::ApplicationIdentifier(const uint8_t * const buffer) -{ - organisationId = (buffer[0] << 24) | (buffer[1] << 16) | (buffer[2] << 8) | buffer[3]; - applicationId = (buffer[4] << 8) | buffer[5]; -} - -uint32_t ApplicationIdentifier::getOrganisationId(void) const -{ - return organisationId; -} - -uint16_t ApplicationIdentifier::getApplicationId(void) const -{ - return applicationId; -} - -ApplicationInformation::ApplicationInformation(const uint8_t * const buffer) -{ - applicationIdentifier = new ApplicationIdentifier(&buffer[0]); - applicationControlCode = buffer[6]; - reserved = (buffer[7] >> 4) & 0x0f; - applicationDescriptorsLoopLength = ((buffer[7] & 0x0f) << 8) | buffer[8]; - - for (uint16_t i = 0; i < applicationDescriptorsLoopLength; i += buffer[i + 10] + 2) - descriptor(&buffer[i + 9]); -} - -ApplicationInformation::~ApplicationInformation(void) -{ - delete applicationIdentifier; -} - -const ApplicationIdentifier *ApplicationInformation::getApplicationIdentifier(void) const -{ - return applicationIdentifier; -} - -uint8_t ApplicationInformation::getApplicationControlCode(void) const -{ - return applicationControlCode; -} - -ApplicationInformationTable::ApplicationInformationTable(const uint8_t * const buffer) : LongCrcTable(buffer) -{ - reserved4 = (buffer[8] >> 4) & 0x0f; - commonDescriptorsLength = ((buffer[8] & 0x0f) << 8) | buffer[9]; - - for (uint16_t i = 0; i < commonDescriptorsLength; i += buffer[i + 11] + 2) - descriptor(&buffer[i + 10]); - - reserved5 = (buffer[commonDescriptorsLength + 10] >> 4) & 0x0f; - applicationLoopLength = ((buffer[commonDescriptorsLength + 10] & 0x0f) << 8) | buffer[commonDescriptorsLength + 11]; - - for (uint16_t i = 0; i < applicationLoopLength; i += 9) { - ApplicationInformation *a = new ApplicationInformation(&buffer[commonDescriptorsLength + 12]); - applicationInformation.push_back(a); - i += a->applicationDescriptorsLoopLength; - } -} - -ApplicationInformationTable::~ApplicationInformationTable(void) -{ - for (ApplicationInformationIterator i = applicationInformation.begin(); i != applicationInformation.end(); ++i) - delete *i; -} - -const ApplicationInformationVector *ApplicationInformationTable::getApplicationInformation(void) const -{ - return &applicationInformation; -} - diff --git a/lib/dvb_si/ait.h b/lib/dvb_si/ait.h deleted file mode 100644 index 8dd71f6..0000000 --- a/lib/dvb_si/ait.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * $Id: ait.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_ait_h__ -#define __dvb_table_ait_h__ - -#include -#include "long_crc_table.h" - -class ApplicationIdentifier -{ - protected: - unsigned organisationId : 32; - unsigned applicationId : 16; - - public: - ApplicationIdentifier(const uint8_t * const buffer); - - uint32_t getOrganisationId(void) const; - uint16_t getApplicationId(void) const; -}; - -class ApplicationInformation : public DescriptorContainer -{ - protected: - ApplicationIdentifier *applicationIdentifier; - unsigned applicationControlCode : 8; - unsigned reserved : 4; - unsigned applicationDescriptorsLoopLength : 12; - - public: - ApplicationInformation(const uint8_t * const buffer); - ~ApplicationInformation(void); - - const ApplicationIdentifier *getApplicationIdentifier(void) const; - uint8_t getApplicationControlCode(void) const; - - friend class ApplicationInformationTable; -}; - -typedef std::vector ApplicationInformationVector; -typedef ApplicationInformationVector::iterator ApplicationInformationIterator; -typedef ApplicationInformationVector::const_iterator ApplicationInformationConstIterator; - -class ApplicationInformationTable : public LongCrcTable, public DescriptorContainer -{ - protected: - unsigned reserved4 : 4; - unsigned commonDescriptorsLength : 12; - unsigned reserved5 : 4; - unsigned applicationLoopLength : 12; - ApplicationInformationVector applicationInformation; - - public: - ApplicationInformationTable(const uint8_t * const buffer); - ~ApplicationInformationTable(void); - - static const enum TableId TID = TID_AIT; - static const uint32_t TIMEOUT = 12000; - - const ApplicationInformationVector *getApplicationInformation(void) const; -}; - -typedef std::vector ApplicationInformationTableVector; -typedef ApplicationInformationTableVector::iterator ApplicationInformationTableIterator; -typedef ApplicationInformationTableVector::const_iterator ApplicationInformationTableConstIterator; - -#endif /* __dvb_table_ait_h__ */ diff --git a/lib/dvb_si/ancillary_data_descriptor.cpp b/lib/dvb_si/ancillary_data_descriptor.cpp deleted file mode 100644 index 33cb85c..0000000 --- a/lib/dvb_si/ancillary_data_descriptor.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id: ancillary_data_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -AncillaryDataDescriptor::AncillaryDataDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - ancillaryDataIdentifier = buffer[2]; -} - -uint8_t AncillaryDataDescriptor::getAncillaryDataIdentifier(void) const -{ - return ancillaryDataIdentifier; -} - diff --git a/lib/dvb_si/ancillary_data_descriptor.h b/lib/dvb_si/ancillary_data_descriptor.h deleted file mode 100644 index f6ddd11..0000000 --- a/lib/dvb_si/ancillary_data_descriptor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: ancillary_data_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_ancillary_data_descriptor_h__ -#define __dvb_descriptor_ancillary_data_descriptor_h__ - -#include "descriptor.h" - -class AncillaryDataDescriptor : public Descriptor -{ - protected: - unsigned ancillaryDataIdentifier : 8; - - public: - AncillaryDataDescriptor(const uint8_t * const buffer); - - uint8_t getAncillaryDataIdentifier(void) const; -}; - -#endif /* __dvb_descriptor_ancillary_data_descriptor_h__ */ diff --git a/lib/dvb_si/announcement_support_descriptor.cpp b/lib/dvb_si/announcement_support_descriptor.cpp deleted file mode 100644 index 5cc13f7..0000000 --- a/lib/dvb_si/announcement_support_descriptor.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* - * $Id: announcement_support_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -Announcement::Announcement(const uint8_t * const buffer) -{ - announcementType = (buffer[0] >> 4) & 0x0f; - reserved = (buffer[0] >> 3) & 0x01; - referenceType = buffer[0] & 0x07; - - if ((referenceType >= 0x01) && (referenceType <= 0x03)) { - originalNetworkId = (buffer[1] << 8) | buffer[2]; - transportStreamId = (buffer[3] << 8) | buffer[4]; - serviceId = (buffer[5] << 8) | buffer[6]; - componentTag = buffer[7]; - } -} - -uint8_t Announcement::getAnnouncementType(void) const -{ - return announcementType; -} - -uint8_t Announcement::getReferenceType(void) const -{ - return referenceType; -} - -uint16_t Announcement::getOriginalNetworkId(void) const -{ - return originalNetworkId; -} - -uint16_t Announcement::getTransportStreamId(void) const -{ - return transportStreamId; -} - -uint16_t Announcement::getServiceId(void) const -{ - return serviceId; -} - -uint8_t Announcement::getComponentTag(void) const -{ - return componentTag; -} - -AnnouncementSupportDescriptor::AnnouncementSupportDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - Announcement *a; - - announcementSupportIndicator = (buffer[2] << 8) | buffer[3]; - - if (descriptorLength < 2) - return; - - for (uint16_t i = 0; i < descriptorLength - 2; ++i) { - a = new Announcement(&buffer[i + 4]); - announcements.push_back(a); - switch (a->getReferenceType()) { - case 0x01: - case 0x02: - case 0x03: - i += 7; - break; - default: - break; - } - } -} - -AnnouncementSupportDescriptor::~AnnouncementSupportDescriptor(void) -{ - for (AnnouncementIterator i = announcements.begin(); i != announcements.end(); ++i) - delete *i; -} - -uint16_t AnnouncementSupportDescriptor::getAnnouncementSupportIndicator(void) const -{ - return announcementSupportIndicator; -} - -const AnnouncementVector *AnnouncementSupportDescriptor::getAnnouncements(void) const -{ - return &announcements; -} - diff --git a/lib/dvb_si/announcement_support_descriptor.h b/lib/dvb_si/announcement_support_descriptor.h deleted file mode 100644 index ce80cbe..0000000 --- a/lib/dvb_si/announcement_support_descriptor.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * $Id: announcement_support_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_announcement_support_descriptor_h__ -#define __dvb_descriptor_announcement_support_descriptor_h__ - -#include "descriptor.h" - -class Announcement -{ - protected: - unsigned announcementType : 4; - unsigned reserved : 1; - unsigned referenceType : 3; - unsigned originalNetworkId : 16; - unsigned transportStreamId : 16; - unsigned serviceId : 16; - unsigned componentTag : 8; - - public: - Announcement(const uint8_t * const buffer); - - uint8_t getAnnouncementType(void) const; - uint8_t getReferenceType(void) const; - uint16_t getOriginalNetworkId(void) const; - uint16_t getTransportStreamId(void) const; - uint16_t getServiceId(void) const; - uint8_t getComponentTag(void) const; -}; - -typedef std::vector AnnouncementVector; -typedef AnnouncementVector::iterator AnnouncementIterator; -typedef AnnouncementVector::const_iterator AnnouncementConstIterator; - -class AnnouncementSupportDescriptor : public Descriptor -{ - protected: - unsigned announcementSupportIndicator : 16; - AnnouncementVector announcements; - - public: - AnnouncementSupportDescriptor(const uint8_t * const buffer); - ~AnnouncementSupportDescriptor(void); - - uint16_t getAnnouncementSupportIndicator(void) const; - const AnnouncementVector *getAnnouncements(void) const; -}; - -#endif /* __dvb_descriptor_announcement_support_descriptor_h__ */ diff --git a/lib/dvb_si/application_signalling_descriptor.cpp b/lib/dvb_si/application_signalling_descriptor.cpp deleted file mode 100644 index 978780f..0000000 --- a/lib/dvb_si/application_signalling_descriptor.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * $Id: application_signalling_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ApplicationSignalling::ApplicationSignalling(const uint8_t * const buffer) -{ - applicationType = (buffer[0] << 8) | buffer[1]; - reserved = (buffer[2] >> 5) & 0x07; - aitVersionNumber = buffer[2] & 0x1f; -} - -uint16_t ApplicationSignalling::getApplicationType(void) const -{ - return applicationType; -} - -uint8_t ApplicationSignalling::getAitVersionNumber(void) const -{ - return aitVersionNumber; -} - -ApplicationSignallingDescriptor::ApplicationSignallingDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += 3) - applicationSignallings.push_back(new ApplicationSignalling(&buffer[i + 2])); -} - -ApplicationSignallingDescriptor::~ApplicationSignallingDescriptor(void) -{ - for (ApplicationSignallingIterator i = applicationSignallings.begin(); i != applicationSignallings.end(); ++i) - delete *i; -} - -const ApplicationSignallingVector *ApplicationSignallingDescriptor::getApplicationSignallings(void) const -{ - return &applicationSignallings; -} - diff --git a/lib/dvb_si/application_signalling_descriptor.h b/lib/dvb_si/application_signalling_descriptor.h deleted file mode 100644 index c4533e1..0000000 --- a/lib/dvb_si/application_signalling_descriptor.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * $Id: application_signalling_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_application_signalling_descriptor_h__ -#define __dvb_descriptor_application_signalling_descriptor_h__ - -#include "descriptor.h" - -class ApplicationSignalling -{ - protected: - unsigned applicationType : 16; - unsigned reserved : 3; - unsigned aitVersionNumber : 5; - - public: - ApplicationSignalling(const uint8_t * const buffer); - - uint16_t getApplicationType(void) const; - uint8_t getAitVersionNumber(void) const; -}; - -typedef std::vector ApplicationSignallingVector; -typedef ApplicationSignallingVector::iterator ApplicationSignallingIterator; -typedef ApplicationSignallingVector::const_iterator ApplicationSignallingConstIterator; - -class ApplicationSignallingDescriptor : public Descriptor -{ - protected: - ApplicationSignallingVector applicationSignallings; - - public: - ApplicationSignallingDescriptor(const uint8_t * const buffer); - ~ApplicationSignallingDescriptor(void); - - const ApplicationSignallingVector *getApplicationSignallings(void) const; -}; - -#endif /* __dvb_descriptor_application_signalling_descriptor_h__ */ diff --git a/lib/dvb_si/audio_stream_descriptor.cpp b/lib/dvb_si/audio_stream_descriptor.cpp deleted file mode 100644 index 6a27af1..0000000 --- a/lib/dvb_si/audio_stream_descriptor.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: audio_stream_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -AudioStreamDescriptor::AudioStreamDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - freeFormatFlag = (buffer[2] >> 7) & 0x01; - id = (buffer[2] >> 6) & 0x01; - layer = (buffer[2] >> 4) & 0x03; - variableRateAudioIndicator = (buffer[2] >> 3) & 0x01; - reserved = buffer[2] & 0x07; -} - -uint8_t AudioStreamDescriptor::getFreeFormatFlag(void) const -{ - return freeFormatFlag; -} - -uint8_t AudioStreamDescriptor::getId(void) const -{ - return id; -} - -uint8_t AudioStreamDescriptor::getLayer(void) const -{ - return layer; -} - -uint8_t AudioStreamDescriptor::getVariableRateAudioIndicator(void) const -{ - return variableRateAudioIndicator; -} - diff --git a/lib/dvb_si/audio_stream_descriptor.h b/lib/dvb_si/audio_stream_descriptor.h deleted file mode 100644 index 17876b7..0000000 --- a/lib/dvb_si/audio_stream_descriptor.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * $Id: audio_stream_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_audio_stream_descriptor_h__ -#define __dvb_descriptor_audio_stream_descriptor_h__ - -#include "descriptor.h" - -class AudioStreamDescriptor : public Descriptor -{ - protected: - unsigned freeFormatFlag : 1; - unsigned id : 1; - unsigned layer : 2; - unsigned variableRateAudioIndicator : 1; - unsigned reserved : 3; - - public: - AudioStreamDescriptor(const uint8_t * const buffer); - - uint8_t getFreeFormatFlag(void) const; - uint8_t getId(void) const; - uint8_t getLayer(void) const; - uint8_t getVariableRateAudioIndicator(void) const; -}; - -#endif /* __dvb_descriptor_audio_stream_descriptor_h__ */ diff --git a/lib/dvb_si/bat.cpp b/lib/dvb_si/bat.cpp deleted file mode 100644 index a3763f7..0000000 --- a/lib/dvb_si/bat.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * $Id: bat.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -BouquetAssociation::BouquetAssociation(const uint8_t * const buffer) -{ - transportStreamId = (buffer[0] << 8) | buffer[1]; - originalNetworkId = (buffer[2] << 8) | buffer[3]; - reserved = (buffer[4] >> 4) & 0x0f; - transportStreamLoopLength = ((buffer[4] & 0x0f) << 8) | buffer[5]; - - for (uint16_t i = 6; i < transportStreamLoopLength + 6; i += buffer[i + 1] + 2) - descriptor(&buffer[i]); -} - -BouquetAssociationTable::BouquetAssociationTable(const uint8_t * const buffer) : LongCrcTable(buffer) -{ - reserved4 = (buffer[8] >> 4) & 0x0f; - bouquetDescriptorsLength = ((buffer[8] & 0x0f) << 8) | buffer[9]; - - for (uint16_t i = 10; i < bouquetDescriptorsLength + 10; i += buffer[i + 1] + 2) - descriptor(&buffer[i]); - - reserved5 = (buffer[bouquetDescriptorsLength + 10] >> 4) & 0x0f; - transportStreamLoopLength = ((buffer[bouquetDescriptorsLength + 10] & 0x0f) << 8) | buffer[bouquetDescriptorsLength + 11]; - - for (uint16_t i = bouquetDescriptorsLength + 12; i < sectionLength - 1; i += ((buffer[i + 4] & 0x0f) | buffer[i + 5]) + 6) - bouquet.push_back(new BouquetAssociation(&buffer[i])); -} - -BouquetAssociationTable::~BouquetAssociationTable(void) -{ - for (BouquetAssociationIterator b = bouquet.begin(); b != bouquet.end(); ++b) - delete *b; -} - diff --git a/lib/dvb_si/bat.h b/lib/dvb_si/bat.h deleted file mode 100644 index 41fd97f..0000000 --- a/lib/dvb_si/bat.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * $Id: bat.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_bat_h__ -#define __dvb_table_bat_h__ - -#include -#include "long_crc_table.h" - -class BouquetAssociation : public DescriptorContainer -{ - protected: - unsigned transportStreamId : 16; - unsigned originalNetworkId : 16; - unsigned reserved : 4; - unsigned transportStreamLoopLength : 12; - - public: - BouquetAssociation(const uint8_t * const buffer); -}; - -typedef std::vector BouquetAssociationVector; -typedef BouquetAssociationVector::iterator BouquetAssociationIterator; -typedef BouquetAssociationVector::const_iterator BouquetAssociationConstIterator; - -class BouquetAssociationTable : public LongCrcTable , public DescriptorContainer -{ - protected: - unsigned reserved4 : 4; - unsigned bouquetDescriptorsLength : 12; - unsigned reserved5 : 4; - unsigned transportStreamLoopLength : 12; - BouquetAssociationVector bouquet; - - public: - BouquetAssociationTable(const uint8_t * const buffer); - ~BouquetAssociationTable(void); - - static const enum PacketId PID = PID_BAT; - static const enum TableId TID = TID_BAT; - static const uint32_t TIMEOUT = 12000; -}; - -typedef std::vector BouquetAssociationTableVector; -typedef BouquetAssociationTableVector::iterator BouquetAssociationTableIterator; -typedef BouquetAssociationTableVector::const_iterator BouquetAssociationTableConstIterator; - -#endif /* __dvb_table_bat_h__ */ diff --git a/lib/dvb_si/bouquet_name_descriptor.cpp b/lib/dvb_si/bouquet_name_descriptor.cpp deleted file mode 100644 index e11a208..0000000 --- a/lib/dvb_si/bouquet_name_descriptor.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id: bouquet_name_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -BouquetNameDescriptor::BouquetNameDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - bouquetName.assign((char *)&buffer[2], descriptorLength); -} - -std::string BouquetNameDescriptor::getBouquetName(void) const -{ - return bouquetName; -} - diff --git a/lib/dvb_si/bouquet_name_descriptor.h b/lib/dvb_si/bouquet_name_descriptor.h deleted file mode 100644 index 5f608bc..0000000 --- a/lib/dvb_si/bouquet_name_descriptor.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * $Id: bouquet_name_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_bouquet_name_descriptor_h__ -#define __dvb_descriptor_bouquet_name_descriptor_h__ - -#include "descriptor.h" - -class BouquetNameDescriptor : public Descriptor -{ - protected: - std::string bouquetName; - - public: - BouquetNameDescriptor(const uint8_t * const buffer); - ~BouquetNameDescriptor(void); - - std::string getBouquetName(void) const; -}; - -#endif /* __dvb_descriptor_bouquet_name_descriptor_h__ */ diff --git a/lib/dvb_si/ca_descriptor.cpp b/lib/dvb_si/ca_descriptor.cpp deleted file mode 100644 index 019855d..0000000 --- a/lib/dvb_si/ca_descriptor.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* - * $Id: ca_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -CaDescriptor::CaDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - caSystemId = (buffer[2] << 8) | buffer[3]; - reserved = buffer[4] >> 5; - caPid = ((buffer[4] & 0x1F) << 8) | buffer[5]; - - if (descriptorLength < 4) - return; - for (uint16_t i = 0; i < descriptorLength - 4; ++i) - privateDataBytes.push_back(buffer[i + 6]); -} - -uint16_t CaDescriptor::getCaSystemId(void) const -{ - return caSystemId; -} - -uint16_t CaDescriptor::getCaPid(void) const -{ - return caPid; -} - -const PrivateDataByteVector *CaDescriptor::getPrivateDataBytes(void) const -{ - return &privateDataBytes; -} - diff --git a/lib/dvb_si/ca_descriptor.h b/lib/dvb_si/ca_descriptor.h deleted file mode 100644 index b02add9..0000000 --- a/lib/dvb_si/ca_descriptor.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * $Id: ca_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_ca_descriptor_h__ -#define __dvb_descriptor_ca_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector PrivateDataByteVector; -typedef PrivateDataByteVector::iterator PrivateDataByteIterator; -typedef PrivateDataByteVector::const_iterator PrivateDataByteConstIterator; - -class CaDescriptor : public Descriptor -{ - protected: - unsigned caSystemId : 16; - unsigned reserved : 3; - unsigned caPid : 13; - PrivateDataByteVector privateDataBytes; - - public: - CaDescriptor(const uint8_t * const buffer); - - uint16_t getCaSystemId(void) const; - uint16_t getCaPid(void) const; - const PrivateDataByteVector *getPrivateDataBytes(void) const; -}; - -typedef std::vector CaDescriptorVector; -typedef CaDescriptorVector::iterator CaDescriptorIterator; -typedef CaDescriptorVector::const_iterator CaDescriptorConstIterator; - -#endif /* __dvb_descriptor_ca_descriptor_h__ */ diff --git a/lib/dvb_si/ca_identifier_descriptor.cpp b/lib/dvb_si/ca_identifier_descriptor.cpp deleted file mode 100644 index 5804c5d..0000000 --- a/lib/dvb_si/ca_identifier_descriptor.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - * $Id: ca_identifier_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -CaIdentifierDescriptor::CaIdentifierDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += 2) - caSystemIds.push_back((buffer[i + 2] << 8) | buffer[i + 3]); -} - -const CaSystemIdVector *CaIdentifierDescriptor::getCaSystemIds(void) const -{ - return &caSystemIds; -} - diff --git a/lib/dvb_si/ca_identifier_descriptor.h b/lib/dvb_si/ca_identifier_descriptor.h deleted file mode 100644 index 432d8d5..0000000 --- a/lib/dvb_si/ca_identifier_descriptor.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * $Id: ca_identifier_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_ca_identifier_descriptor_h__ -#define __dvb_descriptor_ca_identifier_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector CaSystemIdVector; -typedef CaSystemIdVector::iterator CaSystemIdIterator; -typedef CaSystemIdVector::const_iterator CaSystemIdConstIterator; - -class CaIdentifierDescriptor : public Descriptor -{ - protected: - CaSystemIdVector caSystemIds; - - public: - CaIdentifierDescriptor(const uint8_t * const buffer); - - const CaSystemIdVector *getCaSystemIds(void) const; -}; - -#endif /* __dvb_descriptor_ca_identifier_descriptor_h__ */ diff --git a/lib/dvb_si/ca_system_descriptor.cpp b/lib/dvb_si/ca_system_descriptor.cpp deleted file mode 100644 index acae51f..0000000 --- a/lib/dvb_si/ca_system_descriptor.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id: ca_system_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -CaSystemDescriptor::CaSystemDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - scramblingCode = buffer[2]; -} - -uint8_t CaSystemDescriptor::getScramblingCode(void) const -{ - return scramblingCode; -} - diff --git a/lib/dvb_si/ca_system_descriptor.h b/lib/dvb_si/ca_system_descriptor.h deleted file mode 100644 index 0149197..0000000 --- a/lib/dvb_si/ca_system_descriptor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: ca_system_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_ca_system_descriptor_h__ -#define __dvb_descriptor_ca_system_descriptor_h__ - -#include "descriptor.h" - -class CaSystemDescriptor : public Descriptor -{ - protected: - unsigned scramblingCode : 8; - - public: - CaSystemDescriptor(const uint8_t * const buffer); - - uint8_t getScramblingCode(void) const; -}; - -#endif /* __dvb_descriptor_ca_system_descriptor_h__ */ diff --git a/lib/dvb_si/cable_delivery_system_descriptor.cpp b/lib/dvb_si/cable_delivery_system_descriptor.cpp deleted file mode 100644 index 4d07080..0000000 --- a/lib/dvb_si/cable_delivery_system_descriptor.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* - * $Id: cable_delivery_system_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -CableDeliverySystemDescriptor::CableDeliverySystemDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - frequency = - ( - ((buffer[2] >> 4) * 10000000) + - ((buffer[2] & 0x0F) * 1000000) + - ((buffer[3] >> 4) * 100000) + - ((buffer[3] & 0x0F) * 10000) + - ((buffer[4] >> 4) * 1000) + - ((buffer[4] & 0x0F) * 100) + - ((buffer[5] >> 4) * 10) + - ((buffer[5] & 0x0F) * 1) - ); - - reserved = (buffer[6] << 4) | ((buffer[7] >> 4) & 0x0F); - fecOuter = buffer[7] & 0x0F; - modulation = buffer[8]; - - symbolRate = - ( - ((buffer[9] >> 4) * 1000000) + - ((buffer[9] & 0x0F) * 100000) + - ((buffer[10] >> 4) * 10000) + - ((buffer[10] & 0x0F) * 1000) + - ((buffer[11] >> 4) * 100) + - ((buffer[11] & 0x0F) * 10) + - ((buffer[12] >> 4) * 1) - ); - - fecInner = buffer[12] & 0x0F; -} - -uint32_t CableDeliverySystemDescriptor::getFrequency(void) const -{ - return frequency; -} - -uint8_t CableDeliverySystemDescriptor::getFecOuter(void) const -{ - return fecOuter; -} - -uint8_t CableDeliverySystemDescriptor::getModulation(void) const -{ - return modulation; -} - -uint32_t CableDeliverySystemDescriptor::getSymbolRate(void) const -{ - return symbolRate; -} - -uint8_t CableDeliverySystemDescriptor::getFecInner(void) const -{ - return fecInner; -} - diff --git a/lib/dvb_si/cable_delivery_system_descriptor.h b/lib/dvb_si/cable_delivery_system_descriptor.h deleted file mode 100644 index c063222..0000000 --- a/lib/dvb_si/cable_delivery_system_descriptor.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * $Id: cable_delivery_system_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_cable_delivery_system_descriptor_h__ -#define __dvb_descriptor_cable_delivery_system_descriptor_h__ - -#include "descriptor.h" - -class CableDeliverySystemDescriptor : public Descriptor -{ - protected: - unsigned frequency : 32; - unsigned reserved : 12; - unsigned fecOuter : 4; - unsigned modulation : 8; - unsigned symbolRate : 28; - unsigned fecInner : 4; - - public: - CableDeliverySystemDescriptor(const uint8_t * const buffer); - - uint32_t getFrequency(void) const; - uint8_t getFecOuter(void) const; - uint8_t getModulation(void) const; - uint32_t getSymbolRate(void) const; - uint8_t getFecInner(void) const; -}; - -#endif /* __dvb_descriptor_cable_delivery_system_descriptor_h__ */ diff --git a/lib/dvb_si/camt.cpp b/lib/dvb_si/camt.cpp deleted file mode 100644 index 7383a21..0000000 --- a/lib/dvb_si/camt.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* - * $Id: camt.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ConditionalAccessMessageTable::ConditionalAccessMessageTable(const uint8_t * const buffer) : ShortTable(buffer) -{ - for (uint16_t i = 8; i < sectionLength - 1; ++i) - caDataByte.push_back(buffer[i]); -} - diff --git a/lib/dvb_si/camt.h b/lib/dvb_si/camt.h deleted file mode 100644 index e01b806..0000000 --- a/lib/dvb_si/camt.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * $Id: camt.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_camt_h__ -#define __dvb_table_camt_h__ - -#include "short_table.h" - -class ConditionalAccessMessageTable : public ShortTable -{ - protected: - std::vector caDataByte; - - public: - ConditionalAccessMessageTable(const uint8_t * const buffer); - - static const uint16_t LENGTH = 256; - static const enum TableId TID = TID_CAMT_ECM_0; -}; - -typedef std::vector ConditionalAccessMessageTableVector; -typedef ConditionalAccessMessageTableVector::iterator ConditionalAccessMessageTableIterator; -typedef ConditionalAccessMessageTableVector::const_iterator ConditionalAccessMessageTableConstIterator; - -#endif /* __dvb_table_camt_h__ */ diff --git a/lib/dvb_si/capmt.cpp b/lib/dvb_si/capmt.cpp deleted file mode 100644 index c5a6ab9..0000000 --- a/lib/dvb_si/capmt.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/* - * $Id: capmt.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include -#include - -CaLengthField::CaLengthField(const uint64_t length) -{ - if (length < 0x80) { - sizeIndicator = 0; - lengthValue = length; - } - - else { - uint64_t mask = 0xFF; - - sizeIndicator = 1; - lengthFieldSize = 1; - - while ((length & mask) != length) { - lengthFieldSize++; - mask = ((uint64_t)(mask << 8)) | ((uint64_t)0xFFULL); - } - - for (uint8_t i = lengthFieldSize; i > 0; i--) - lengthValueByte.push_back((length >> ((i - 1) << 3)) & 0xFF); - } -} - -CaElementaryStreamInfo::CaElementaryStreamInfo(const ElementaryStreamInfo * const info, const uint8_t cmdId) -{ - streamType = info->streamType; - reserved1 = info->reserved1; - elementaryPid = info->elementaryPid; - reserved2 = info->reserved2; - esInfoLength = 0; - - for (DescriptorConstIterator i = info->getDescriptors()->begin(); i != info->getDescriptors()->end(); ++i) - if ((*i)->getTag() == CA_DESCRIPTOR) { - descriptors.push_back(new CaDescriptor(*(CaDescriptor *)*i)); - esInfoLength += (*i)->getLength() + 2; - } - - if (esInfoLength) { - caPmtCmdId = cmdId; - esInfoLength++; - } -} - -CaElementaryStreamInfo::~CaElementaryStreamInfo(void) -{ - for (CaDescriptorIterator i = descriptors.begin(); i != descriptors.end(); ++i) - delete *i; -} - -uint16_t CaElementaryStreamInfo::getLength(void) const -{ - return esInfoLength + 5; -} - -CaProgramMapTable::CaProgramMapTable(const ProgramMapTable * const pmt, const uint8_t listManagement, const uint8_t cmdId) -{ - uint64_t length = 6; - - caPmtTag = 0x9F80C3; - caPmtListManagement = listManagement; - - programNumber = pmt->tableIdExtension; - reserved1 = pmt->reserved3; - versionNumber = pmt->versionNumber; - currentNextIndicator = pmt->currentNextIndicator; - reserved2 = pmt->reserved5; - programInfoLength = 0; - - for (DescriptorConstIterator i = pmt->getDescriptors()->begin(); i != pmt->getDescriptors()->end(); ++i) - if ((*i)->getTag() == CA_DESCRIPTOR) { - descriptors.push_back(new CaDescriptor(*(CaDescriptor *)*i)); - programInfoLength += (*i)->getLength() + 2; - } - - if (programInfoLength) { - caPmtCmdId = cmdId; - programInfoLength++; - length += programInfoLength; - } - - for (ElementaryStreamInfoConstIterator i = pmt->esInfo.begin(); i != pmt->esInfo.end(); ++i) { - CaElementaryStreamInfo *info = new CaElementaryStreamInfo(*i, cmdId); - esInfo.push_back(info); - length += info->getLength(); - } - - lengthField = new CaLengthField(length); -} - -CaProgramMapTable::~CaProgramMapTable(void) -{ - for (CaDescriptorIterator i = descriptors.begin(); i != descriptors.end(); ++i) - delete *i; - - for (CaElementaryStreamInfoIterator i = esInfo.begin(); i != esInfo.end(); ++i) - delete *i; - - delete lengthField; -} - diff --git a/lib/dvb_si/capmt.h b/lib/dvb_si/capmt.h deleted file mode 100644 index 6d8dc43..0000000 --- a/lib/dvb_si/capmt.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * $Id: capmt.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_capmt_h__ -#define __dvb_table_capmt_h__ - -#include -#include "pmt.h" - -class CaLengthField -{ - protected: - unsigned sizeIndicator : 1; - unsigned lengthValue : 7; - unsigned lengthFieldSize : 7; - std::vector lengthValueByte; - - public: - CaLengthField(const uint64_t length); -}; - -class CaElementaryStreamInfo -{ - protected: - unsigned streamType : 8; - unsigned reserved1 : 3; - unsigned elementaryPid : 13; - unsigned reserved2 : 4; - unsigned esInfoLength : 12; - unsigned caPmtCmdId : 8; - CaDescriptorVector descriptors; - - public: - CaElementaryStreamInfo(const ElementaryStreamInfo * const info, const uint8_t cmdId); - ~CaElementaryStreamInfo(void); - - uint16_t getLength(void) const; -}; - -typedef std::vector CaElementaryStreamInfoVector; -typedef CaElementaryStreamInfoVector::iterator CaElementaryStreamInfoIterator; -typedef CaElementaryStreamInfoVector::const_iterator CaElementaryStreamInfoConstIterator; - -class CaProgramMapTable -{ - protected: - unsigned caPmtTag : 24; - CaLengthField *lengthField; - unsigned caPmtListManagement : 8; - unsigned programNumber : 16; - unsigned reserved1 : 2; - unsigned versionNumber : 5; - unsigned currentNextIndicator : 1; - unsigned reserved2 : 4; - unsigned programInfoLength : 12; - unsigned caPmtCmdId : 8; - CaDescriptorVector descriptors; - CaElementaryStreamInfoVector esInfo; - - public: - CaProgramMapTable(const ProgramMapTable * const pmt, const uint8_t listManagement, const uint8_t cmdId); - ~CaProgramMapTable(void); -}; - -typedef std::vector CaProgramMapTableVector; -typedef CaProgramMapTableVector::iterator CaProgramMapTableIterator; -typedef CaProgramMapTableVector::const_iterator CaProgramMapTableConstIterator; - -#endif /* __dvb_table_capmt_h__ */ diff --git a/lib/dvb_si/cat.cpp b/lib/dvb_si/cat.cpp deleted file mode 100644 index de69230..0000000 --- a/lib/dvb_si/cat.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* - * $Id: cat.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ConditionalAccessTable::ConditionalAccessTable(const uint8_t * const buffer) : LongCrcTable(buffer) -{ - for (uint16_t i = 8; i < sectionLength - 1; i += buffer[i + 1] + 2) - descriptor(&buffer[i]); -} - diff --git a/lib/dvb_si/cat.h b/lib/dvb_si/cat.h deleted file mode 100644 index 3c3e3cd..0000000 --- a/lib/dvb_si/cat.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * $Id: cat.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_cat_h__ -#define __dvb_table_cat_h__ - -#include -#include "long_crc_table.h" - -class ConditionalAccessTable : public LongCrcTable, public DescriptorContainer -{ - public: - ConditionalAccessTable(const uint8_t * const buffer); - - static const enum PacketId PID = PID_CAT; - static const enum TableId TID = TID_CAT; - static const uint32_t TIMEOUT = 200; -}; - -typedef std::vector ConditionalAccessTableVector; -typedef ConditionalAccessTableVector::iterator ConditionalAccessTableIterator; -typedef ConditionalAccessTableVector::const_iterator ConditionalAccessTableConstIterator; - -#endif /* __dvb_table_cat_h__ */ diff --git a/lib/dvb_si/cell_frequency_link_descriptor.cpp b/lib/dvb_si/cell_frequency_link_descriptor.cpp deleted file mode 100644 index f4c4451..0000000 --- a/lib/dvb_si/cell_frequency_link_descriptor.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* - * $Id: cell_frequency_link_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -SubcellInfo::SubcellInfo(const uint8_t * const buffer) -{ - cellIdExtenstion = buffer[0]; - transposerFrequency = (buffer[1] << 24) | (buffer[2] << 16) | (buffer[3] << 8) | buffer[4]; -} - -uint8_t SubcellInfo::getCellIdExtension(void) const -{ - return cellIdExtenstion; -} - -uint32_t SubcellInfo::getTransposerFrequency(void) const -{ - return transposerFrequency; -} - -CellFrequencyLink::CellFrequencyLink(const uint8_t * const buffer) -{ - cellId = (buffer[0] << 8) | buffer[1]; - frequency = (buffer[2] << 24) | (buffer[3] << 16) | (buffer[4] << 8) | buffer[5]; - subcellInfoLoopLength = buffer[6]; - - for (uint16_t i = 0; i < subcellInfoLoopLength; i += 5) - subcells.push_back(new SubcellInfo(&buffer[i + 7])); -} - -CellFrequencyLink::~CellFrequencyLink(void) -{ - for (SubcellInfoIterator i = subcells.begin(); i != subcells.end(); ++i) - delete *i; -} - -uint16_t CellFrequencyLink::getCellId(void) const -{ - return cellId; -} - -uint32_t CellFrequencyLink::getFrequency(void) const -{ - return frequency; -} - -const SubcellInfoVector *CellFrequencyLink::getSubcells(void) const -{ - return &subcells; -} - -CellFrequencyLinkDescriptor::CellFrequencyLinkDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += buffer[i + 10] + 6) - cellFrequencyLinks.push_back(new CellFrequencyLink(&buffer[i + 2])); -} - -CellFrequencyLinkDescriptor::~CellFrequencyLinkDescriptor(void) -{ - for (CellFrequencyLinkIterator i = cellFrequencyLinks.begin(); i != cellFrequencyLinks.end(); ++i) - delete *i; -} - -const CellFrequencyLinkVector *CellFrequencyLinkDescriptor::getCellFrequencyLinks(void) const -{ - return &cellFrequencyLinks; -} - diff --git a/lib/dvb_si/cell_frequency_link_descriptor.h b/lib/dvb_si/cell_frequency_link_descriptor.h deleted file mode 100644 index 29395eb..0000000 --- a/lib/dvb_si/cell_frequency_link_descriptor.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * $Id: cell_frequency_link_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_cell_frequency_link_descriptor_h__ -#define __dvb_descriptor_cell_frequency_link_descriptor_h__ - -#include "descriptor.h" - -class SubcellInfo -{ - protected: - unsigned cellIdExtenstion : 8; - unsigned transposerFrequency : 32; - - public: - SubcellInfo(const uint8_t * const buffer); - - uint8_t getCellIdExtension(void) const; - uint32_t getTransposerFrequency(void) const; -}; - -typedef std::vector SubcellInfoVector; -typedef SubcellInfoVector::iterator SubcellInfoIterator; -typedef SubcellInfoVector::const_iterator SubcellInfoConstIterator; - -class CellFrequencyLink -{ - protected: - unsigned cellId : 16; - unsigned frequency : 32; - unsigned subcellInfoLoopLength : 8; - SubcellInfoVector subcells; - - public: - CellFrequencyLink(const uint8_t * const buffer); - ~CellFrequencyLink(void); - - uint16_t getCellId(void) const; - uint32_t getFrequency(void) const; - const SubcellInfoVector *getSubcells(void) const; - -}; - -typedef std::vector CellFrequencyLinkVector; -typedef CellFrequencyLinkVector::iterator CellFrequencyLinkIterator; -typedef CellFrequencyLinkVector::const_iterator CellFrequencyLinkConstIterator; - -class CellFrequencyLinkDescriptor : public Descriptor -{ - protected: - CellFrequencyLinkVector cellFrequencyLinks; - - public: - CellFrequencyLinkDescriptor(const uint8_t * const buffer); - ~CellFrequencyLinkDescriptor(void); - - const CellFrequencyLinkVector *getCellFrequencyLinks(void) const; -}; - -#endif /* __dvb_descriptor_cell_frequency_link_descriptor_h__ */ diff --git a/lib/dvb_si/cell_list_descriptor.cpp b/lib/dvb_si/cell_list_descriptor.cpp deleted file mode 100644 index c8588ae..0000000 --- a/lib/dvb_si/cell_list_descriptor.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/* - * $Id: cell_list_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - - -#include - -Subcell::Subcell(const uint8_t * const buffer) -{ - cellIdExtension = buffer[0]; - subcellLatitude = (buffer[1] << 8) | buffer[2]; - subcellLongitude = (buffer[3] << 8) | buffer[4]; - subcellExtendOfLatitude = (buffer[5] << 4) | ((buffer[6] >> 4) & 0x0f); - subcellExtendOfLongitude = ((buffer[6] & 0x0f) << 8) | buffer[7]; -} - -uint8_t Subcell::getCellIdExtension(void) const -{ - return cellIdExtension; -} - -uint16_t Subcell::getSubcellLatitude(void) const -{ - return subcellLatitude; -} - -uint16_t Subcell::getSubcellLongtitude(void) const -{ - return subcellLongitude; -} - -uint16_t Subcell::getSubcellExtendOfLatitude(void) const -{ - return subcellExtendOfLatitude; -} - -uint16_t Subcell::getSubcellExtendOfLongtitude(void) const -{ - return subcellExtendOfLongitude; -} - -Cell::Cell(const uint8_t * const buffer) -{ - cellId = (buffer[0] << 8) | buffer[1]; - cellLatitude = (buffer[2] << 8) | buffer[3]; - cellLongtitude = (buffer[4] << 8) | buffer[5]; - cellExtendOfLatitude = (buffer[6] << 4) | ((buffer[7] >> 4) & 0x0f); - cellExtendOfLongtitude = ((buffer[7] & 0x0f) << 8) | buffer[8]; - subcellInfoLoopLength = buffer[9]; - - for (uint16_t i = 0; i < subcellInfoLoopLength; i += 8) - subcells.push_back(new Subcell(&buffer[i + 10])); -} - -Cell::~Cell(void) -{ - for (SubcellIterator i = subcells.begin(); i != subcells.end(); ++i) - delete *i; -} - -uint16_t Cell::getCellId(void) const -{ - return cellId; -} - -uint16_t Cell::getCellLatitude(void) const -{ - return cellLatitude; -} - -uint16_t Cell::getCellLongtitude(void) const -{ - return cellLongtitude; -} - -uint16_t Cell::getCellExtendOfLatitude(void) const -{ - return cellExtendOfLatitude; -} - -uint16_t Cell::getCellExtendOfLongtitude(void) const -{ - return cellExtendOfLongtitude; -} - -const SubcellVector *Cell::getSubcells(void) const -{ - return &subcells; -} - -CellListDescriptor::CellListDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += buffer[i + 11] + 10) - cells.push_back(new Cell(&buffer[i + 2])); -} - -CellListDescriptor::~CellListDescriptor(void) -{ - for (CellIterator i = cells.begin(); i != cells.end(); ++i) - delete *i; -} - -const CellVector *CellListDescriptor::getCells(void) const -{ - return &cells; -} - diff --git a/lib/dvb_si/cell_list_descriptor.h b/lib/dvb_si/cell_list_descriptor.h deleted file mode 100644 index cfe93d9..0000000 --- a/lib/dvb_si/cell_list_descriptor.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * $Id: cell_list_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_cell_list_descriptor_h__ -#define __dvb_descriptor_cell_list_descriptor_h__ - -#include "descriptor.h" - -class Subcell -{ - protected: - unsigned cellIdExtension : 8; - unsigned subcellLatitude : 16; - unsigned subcellLongitude : 16; - unsigned subcellExtendOfLatitude : 12; - unsigned subcellExtendOfLongitude : 12; - - public: - Subcell(const uint8_t * const buffer); - - uint8_t getCellIdExtension(void) const; - uint16_t getSubcellLatitude(void) const; - uint16_t getSubcellLongtitude(void) const; - uint16_t getSubcellExtendOfLatitude(void) const; - uint16_t getSubcellExtendOfLongtitude(void) const; -}; - -typedef std::vector SubcellVector; -typedef SubcellVector::iterator SubcellIterator; -typedef SubcellVector::const_iterator SubcellConstIterator; - -class Cell -{ - protected: - unsigned cellId : 16; - unsigned cellLatitude : 16; - unsigned cellLongtitude : 16; - unsigned cellExtendOfLatitude : 12; - unsigned cellExtendOfLongtitude : 12; - unsigned subcellInfoLoopLength : 8; - SubcellVector subcells; - - public: - Cell(const uint8_t * const buffer); - ~Cell(void); - - uint16_t getCellId(void) const; - uint16_t getCellLatitude(void) const; - uint16_t getCellLongtitude(void) const; - uint16_t getCellExtendOfLatitude(void) const; - uint16_t getCellExtendOfLongtitude(void) const; - const SubcellVector *getSubcells(void) const; -}; - -typedef std::vector CellVector; -typedef CellVector::iterator CellIterator; -typedef CellVector::const_iterator CellConstIterator; - -class CellListDescriptor : public Descriptor -{ - protected: - CellVector cells; - - public: - CellListDescriptor(const uint8_t * const buffer); - ~CellListDescriptor(void); - - const CellVector *getCells(void) const; -}; - -#endif /* __dvb_descriptor_cell_list_descriptor_h__ */ diff --git a/lib/dvb_si/component_descriptor.cpp b/lib/dvb_si/component_descriptor.cpp deleted file mode 100644 index 8b043e1..0000000 --- a/lib/dvb_si/component_descriptor.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* - * $Id: component_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ComponentDescriptor::ComponentDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - reserved = (buffer[2] >> 4) & 0x0f; - streamContent = buffer[2] & 0x0f; - componentType = buffer[3]; - componentTag = buffer[4]; - iso639LanguageCode.assign((char *) &buffer[5], 3); - if (descriptorLength < 6) - return; - text.assign((char *) &buffer[8], descriptorLength - 6); -} - -uint8_t ComponentDescriptor::getStreamContent(void) const -{ - return streamContent; -} - -uint8_t ComponentDescriptor::getComponentType(void) const -{ - return componentType; -} - -uint8_t ComponentDescriptor::getComponentTag(void) const -{ - return componentTag; -} - -std::string ComponentDescriptor::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -std::string ComponentDescriptor::getText(void) const -{ - return text; -} - diff --git a/lib/dvb_si/component_descriptor.h b/lib/dvb_si/component_descriptor.h deleted file mode 100644 index c910ad4..0000000 --- a/lib/dvb_si/component_descriptor.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * $Id: component_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_component_descriptor_h__ -#define __dvb_descriptor_component_descriptor_h__ - -#include "descriptor.h" - -class ComponentDescriptor : public Descriptor -{ - protected: - unsigned reserved : 4; - unsigned streamContent : 4; - unsigned componentType : 8; - unsigned componentTag : 8; - std::string iso639LanguageCode; - std::string text; - - public: - ComponentDescriptor(const uint8_t * const buffer); - - uint8_t getStreamContent(void) const; - uint8_t getComponentType(void) const; - uint8_t getComponentTag(void) const; - std::string getIso639LanguageCode(void) const; - std::string getText(void) const; -}; - -#endif /* __dvb_descriptor_component_descriptor_h__ */ diff --git a/lib/dvb_si/container.cpp b/lib/dvb_si/container.cpp deleted file mode 100644 index 1c14c2f..0000000 --- a/lib/dvb_si/container.cpp +++ /dev/null @@ -1,289 +0,0 @@ -/* - * $Id: container.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -DescriptorContainer::~DescriptorContainer(void) -{ - for (DescriptorIterator i = descriptorVector.begin(); i != descriptorVector.end(); ++i) - delete *i; -} - -void DescriptorContainer::descriptor(const uint8_t * const buffer) -{ - switch (buffer[0]) { - case VIDEO_STREAM_DESCRIPTOR: - descriptorVector.push_back(new VideoStreamDescriptor(buffer)); - break; - - case AUDIO_STREAM_DESCRIPTOR: - descriptorVector.push_back(new AudioStreamDescriptor(buffer)); - break; - - case TARGET_BACKGROUND_GRID_DESCRIPTOR: - descriptorVector.push_back(new TargetBackgroundGridDescriptor(buffer)); - break; - - case VIDEO_WINDOW_DESCRIPTOR: - descriptorVector.push_back(new VideoWindowDescriptor(buffer)); - break; - - case CA_DESCRIPTOR: - descriptorVector.push_back(new CaDescriptor(buffer)); - break; - - case ISO_639_LANGUAGE_DESCRIPTOR: - descriptorVector.push_back(new Iso639LanguageDescriptor(buffer)); - break; - - case NETWORK_NAME_DESCRIPTOR: - descriptorVector.push_back(new NetworkNameDescriptor(buffer)); - break; - - case SERVICE_LIST_DESCRIPTOR: - descriptorVector.push_back(new ServiceListDescriptor(buffer)); - break; - - case STUFFING_DESCRIPTOR: - descriptorVector.push_back(new StuffingDescriptor(buffer)); - break; - - case SATELLITE_DELIVERY_SYSTEM_DESCRIPTOR: - descriptorVector.push_back(new SatelliteDeliverySystemDescriptor(buffer)); - break; - - case CABLE_DELIVERY_SYSTEM_DESCRIPTOR: - descriptorVector.push_back(new CableDeliverySystemDescriptor(buffer)); - break; - - case VBI_DATA_DESCRIPTOR: - descriptorVector.push_back(new VbiDataDescriptor(buffer)); - break; - - case VBI_TELETEXT_DESCRIPTOR: - descriptorVector.push_back(new VbiTeletextDescriptor(buffer)); - break; - - case BOUQUET_NAME_DESCRIPTOR: - descriptorVector.push_back(new BouquetNameDescriptor(buffer)); - break; - - case SERVICE_DESCRIPTOR: - descriptorVector.push_back(new ServiceDescriptor(buffer)); - break; - - case COUNTRY_AVAILABILITY_DESCRIPTOR: - descriptorVector.push_back(new CountryAvailabilityDescriptor(buffer)); - break; - - case LINKAGE_DESCRIPTOR: - descriptorVector.push_back(new LinkageDescriptor(buffer)); - break; - - case NVOD_REFERENCE_DESCRIPTOR: - descriptorVector.push_back(new NvodReferenceDescriptor(buffer)); - break; - - case TIME_SHIFTED_SERVICE_DESCRIPTOR: - descriptorVector.push_back(new TimeShiftedServiceDescriptor(buffer)); - break; - - case SHORT_EVENT_DESCRIPTOR: - descriptorVector.push_back(new ShortEventDescriptor(buffer)); - break; - - case EXTENDED_EVENT_DESCRIPTOR: - descriptorVector.push_back(new ExtendedEventDescriptor(buffer)); - break; - - case COMPONENT_DESCRIPTOR: - descriptorVector.push_back(new ComponentDescriptor(buffer)); - break; - - case MOSAIC_DESCRIPTOR: - descriptorVector.push_back(new MosaicDescriptor(buffer)); - break; - - case STREAM_IDENTIFIER_DESCRIPTOR: - descriptorVector.push_back(new StreamIdentifierDescriptor(buffer)); - break; - - case CA_IDENTIFIER_DESCRIPTOR: - descriptorVector.push_back(new CaIdentifierDescriptor(buffer)); - break; - - case CONTENT_DESCRIPTOR: - descriptorVector.push_back(new ContentDescriptor(buffer)); - break; - - case PARENTAL_RATING_DESCRIPTOR: - descriptorVector.push_back(new ParentalRatingDescriptor(buffer)); - break; - - case TELETEXT_DESCRIPTOR: - descriptorVector.push_back(new TeletextDescriptor(buffer)); - break; - - case TELEPHONE_DESCRIPTOR: - descriptorVector.push_back(new TelephoneDescriptor(buffer)); - break; - - case LOCAL_TIME_OFFSET_DESCRIPTOR: - descriptorVector.push_back(new LocalTimeOffsetDescriptor(buffer)); - break; - - case SUBTITLING_DESCRIPTOR: - descriptorVector.push_back(new SubtitlingDescriptor(buffer)); - break; - - case TERRESTRIAL_DELIVERY_SYSTEM_DESCRIPTOR: - descriptorVector.push_back(new TerrestrialDeliverySystemDescriptor(buffer)); - break; - - case MULTILINGUAL_NETWORK_NAME_DESCRIPTOR: - descriptorVector.push_back(new MultilingualNetworkNameDescriptor(buffer)); - break; - - case MULTILINGUAL_BOUQUET_NAME_DESCRIPTOR: - descriptorVector.push_back(new MultilingualBouquetNameDescriptor(buffer)); - break; - - case MULTILINGUAL_SERVICE_NAME_DESCRIPTOR: - descriptorVector.push_back(new MultilingualServiceNameDescriptor(buffer)); - break; - - case MULTILINGUAL_COMPONENT_DESCRIPTOR: - descriptorVector.push_back(new MultilingualComponentDescriptor(buffer)); - break; - - case PRIVATE_DATA_SPECIFIER_DESCRIPTOR: - descriptorVector.push_back(new PrivateDataSpecifierDescriptor(buffer)); - break; - - case SERVICE_MOVE_DESCRIPTOR: - descriptorVector.push_back(new ServiceMoveDescriptor(buffer)); - break; - - case FREQUENCY_LIST_DESCRIPTOR: - descriptorVector.push_back(new FrequencyListDescriptor(buffer)); - break; - - case DATA_BROADCAST_DESCRIPTOR: - descriptorVector.push_back(new DataBroadcastDescriptor(buffer)); - break; - - case CA_SYSTEM_DESCRIPTOR: - descriptorVector.push_back(new CaSystemDescriptor(buffer)); - break; - - case DATA_BROADCAST_ID_DESCRIPTOR: - descriptorVector.push_back(new DataBroadcastIdDescriptor(buffer)); - break; - - case PDC_DESCRIPTOR: - descriptorVector.push_back(new PdcDescriptor(buffer)); - break; - - case AC3_DESCRIPTOR: - descriptorVector.push_back(new Ac3Descriptor(buffer)); - break; - - case ANCILLARY_DATA_DESCRIPTOR: - descriptorVector.push_back(new AncillaryDataDescriptor(buffer)); - break; - - case CELL_LIST_DESCRIPTOR: - descriptorVector.push_back(new CellListDescriptor(buffer)); - break; - - case CELL_FREQUENCY_LINK_DESCRIPTOR: - descriptorVector.push_back(new CellFrequencyLinkDescriptor(buffer)); - break; - - case ANNOUNCEMENT_SUPPORT_DESCRIPTOR: - descriptorVector.push_back(new AnnouncementSupportDescriptor(buffer)); - break; - - case APPLICATION_SIGNALLING_DESCRIPTOR: - descriptorVector.push_back(new ApplicationSignallingDescriptor(buffer)); - break; - - default: - descriptorVector.push_back(new Descriptor(buffer)); - break; - } -} - -const DescriptorVector *DescriptorContainer::getDescriptors(void) const -{ - return &descriptorVector; -} - diff --git a/lib/dvb_si/container.h b/lib/dvb_si/container.h deleted file mode 100644 index 9d1d5e3..0000000 --- a/lib/dvb_si/container.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * $Id: container.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_container_h__ -#define __dvb_descriptor_container_h__ - -#include "descriptor.h" - -class DescriptorContainer -{ - protected: - void descriptor(const uint8_t * const buffer); - DescriptorVector descriptorVector; - - public: - ~DescriptorContainer(void); - - const DescriptorVector *getDescriptors(void) const; -}; - -#endif /* __dvb_descriptor_container_h__ */ diff --git a/lib/dvb_si/content_descriptor.cpp b/lib/dvb_si/content_descriptor.cpp deleted file mode 100644 index b8996a4..0000000 --- a/lib/dvb_si/content_descriptor.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * $Id: content_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ContentClassification::ContentClassification(const uint8_t * const buffer) -{ - contentNibbleLevel1 = (buffer[0] >> 4) & 0x0f; - contentNibbleLevel2 = buffer[0] & 0x0f; - userNibble1 = (buffer[1] >> 4) & 0x0f; - userNibble2 = buffer[1] & 0x0f; -} - -uint8_t ContentClassification::getContentNibbleLevel1(void) const -{ - return contentNibbleLevel1; -} - -uint8_t ContentClassification::getContentNibbleLevel2(void) const -{ - return contentNibbleLevel2; -} - -uint8_t ContentClassification::getUserNibble1(void) const -{ - return userNibble1; -} - -uint8_t ContentClassification::getUserNibble2(void) const -{ - return userNibble2; -} - -ContentDescriptor::ContentDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += 2) - classifications.push_back(new ContentClassification(&buffer[i + 2])); -} - -ContentDescriptor::~ContentDescriptor(void) -{ - for (ContentClassificationVector::iterator i = classifications.begin(); i != classifications.end(); ++i) - delete *i; -} - -const ContentClassificationVector *ContentDescriptor::getClassifications(void) const -{ - return &classifications; -} - diff --git a/lib/dvb_si/content_descriptor.h b/lib/dvb_si/content_descriptor.h deleted file mode 100644 index 31f4e71..0000000 --- a/lib/dvb_si/content_descriptor.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * $Id: content_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_content_descriptor_h__ -#define __dvb_descriptor_content_descriptor_h__ - -#include "descriptor.h" - -class ContentClassification -{ - protected: - unsigned contentNibbleLevel1 : 4; - unsigned contentNibbleLevel2 : 4; - unsigned userNibble1 : 4; - unsigned userNibble2 : 4; - - public: - ContentClassification(const uint8_t * const buffer); - - uint8_t getContentNibbleLevel1(void) const; - uint8_t getContentNibbleLevel2(void) const; - uint8_t getUserNibble1(void) const; - uint8_t getUserNibble2(void) const; -}; - -typedef std::vector ContentClassificationVector; -typedef ContentClassificationVector::iterator ContentClassificationIterator; -typedef ContentClassificationVector::const_iterator ContentClassificationConstIterator; - -class ContentDescriptor : public Descriptor -{ - protected: - ContentClassificationVector classifications; - - public: - ContentDescriptor(const uint8_t * const buffer); - ~ContentDescriptor(void); - - const ContentClassificationVector *getClassifications(void) const; -}; - -#endif /* __dvb_descriptor_content_descriptor_h__ */ diff --git a/lib/dvb_si/copyright_descriptor.h b/lib/dvb_si/copyright_descriptor.h deleted file mode 100644 index 89d0c28..0000000 --- a/lib/dvb_si/copyright_descriptor.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: copyright_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_copyright_descriptor_h__ -#define __dvb_descriptor_copyright_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector AdditionalCopyrightInfoVector; -typedef AdditionalCopyrightInfoVector::iterator AdditionalCopyrightInfoIterator; -typedef AdditionalCopyrightInfoVector::const_iterator AdditionalCopyrightInfoConstIterator; - -class CopyrightDescriptor : public Descriptor -{ - protected: - unsigned copyrightIdentifier : 32; - AdditionalCopyrightInfoVector additionalCopyrightInfo; - - public: - CopyrightDescriptor(const uint8_t * const buffer); - - uint32_t getCopyrightIdentifier(void) const; - const AdditionalCopyrightInfoVector *getAdditionalCopyrightInfo(void) const; -}; - -#endif /* __dvb_descriptor_copyright_descriptor_h__ */ diff --git a/lib/dvb_si/country_availability_descriptor.cpp b/lib/dvb_si/country_availability_descriptor.cpp deleted file mode 100644 index 7aa37ff..0000000 --- a/lib/dvb_si/country_availability_descriptor.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * $Id: country_availability_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -CountryAvailabilityDescriptor::CountryAvailabilityDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - std::string countryCode; - countryAvailabilityFlag = (buffer[2] >> 7) & 0x01; - - if (descriptorLength < 1) - return; - - for (uint16_t i = 0; i < descriptorLength - 1; i += 3) { - countryCode.assign((char *)&buffer[i + 3], 3); - countryCodes.push_back(countryCode); - } -} - -uint8_t CountryAvailabilityDescriptor::getCountryAvailabilityFlag(void) const -{ - return countryAvailabilityFlag; -} - -const CountryCodeVector *CountryAvailabilityDescriptor::getCountryCodes(void) const -{ - return &countryCodes; -} - diff --git a/lib/dvb_si/country_availability_descriptor.h b/lib/dvb_si/country_availability_descriptor.h deleted file mode 100644 index baa0b84..0000000 --- a/lib/dvb_si/country_availability_descriptor.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * $Id: country_availability_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_country_availability_descriptor_h__ -#define __dvb_descriptor_country_availability_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector CountryCodeVector; -typedef CountryCodeVector::iterator CountryCodeIterator; -typedef CountryCodeVector::const_iterator CountryCodeConstIterator; - -class CountryAvailabilityDescriptor : public Descriptor -{ - protected: - unsigned countryAvailabilityFlag : 1; - unsigned reserved : 7; - CountryCodeVector countryCodes; - - public: - CountryAvailabilityDescriptor(const uint8_t * const buffer); - - uint8_t getCountryAvailabilityFlag(void) const; - const CountryCodeVector *getCountryCodes(void) const; -}; - -#endif /* __dvb_descriptor_country_availability_descriptor_h__ */ diff --git a/lib/dvb_si/data_broadcast_descriptor.cpp b/lib/dvb_si/data_broadcast_descriptor.cpp deleted file mode 100644 index b5f8b2a..0000000 --- a/lib/dvb_si/data_broadcast_descriptor.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/* - * $Id: data_broadcast_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -DataBroadcastDescriptor::DataBroadcastDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - dataBroadcastId = (buffer[2] << 8) | buffer[3]; - componentTag = buffer[3]; - selectorLength = buffer[4]; - - for (uint16_t i = 0; i < selectorLength; ++i) - selectorBytes.push_back(buffer[i + 5]); - - iso639LanguageCode.assign((char *)&buffer[selectorLength + 5], 3); - textLength = buffer[selectorLength + 8]; - text.assign((char *)&buffer[selectorLength + 9], textLength); -} - -uint16_t DataBroadcastDescriptor::getDataBroadcastId(void) const -{ - return dataBroadcastId; -} - -uint8_t DataBroadcastDescriptor::getComponentTag(void) const -{ - return componentTag; -} - -const selectorByteVector *DataBroadcastDescriptor::getSelectorBytes(void) const -{ - return &selectorBytes; -} - -std::string DataBroadcastDescriptor::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -std::string DataBroadcastDescriptor::getText(void) const -{ - return text; -} - diff --git a/lib/dvb_si/data_broadcast_descriptor.h b/lib/dvb_si/data_broadcast_descriptor.h deleted file mode 100644 index aa5bb5d..0000000 --- a/lib/dvb_si/data_broadcast_descriptor.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: data_broadcast_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_data_broadcast_descriptor_h__ -#define __dvb_descriptor_data_broadcast_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector selectorByteVector; -typedef selectorByteVector::iterator selectorByteIterator; -typedef selectorByteVector::const_iterator selectorByteConstIterator; - -class DataBroadcastDescriptor : public Descriptor -{ - protected: - unsigned dataBroadcastId : 16; - unsigned componentTag : 8; - unsigned selectorLength : 8; - selectorByteVector selectorBytes; - std::string iso639LanguageCode; - unsigned textLength : 8; - std::string text; - - public: - DataBroadcastDescriptor(const uint8_t * const buffer); - - uint16_t getDataBroadcastId(void) const; - uint8_t getComponentTag(void) const; - const selectorByteVector *getSelectorBytes(void) const; - std::string getIso639LanguageCode(void) const; - std::string getText(void) const; -}; - -#endif /* __dvb_descriptor_data_broadcast_descriptor_h__ */ diff --git a/lib/dvb_si/data_broadcast_id_descriptor.cpp b/lib/dvb_si/data_broadcast_id_descriptor.cpp deleted file mode 100644 index 2e058c4..0000000 --- a/lib/dvb_si/data_broadcast_id_descriptor.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: data_broadcast_id_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -DataBroadcastIdDescriptor::DataBroadcastIdDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - if (descriptorLength < 2) - return; - - dataBroadcastId = (buffer[2] << 8) | buffer[3]; - - for (uint16_t i = 0; i < descriptorLength - 2; ++i) - idSelectorBytes.push_back(buffer[i + 4]); -} - -uint16_t DataBroadcastIdDescriptor::getDataBroadcastId(void) const -{ - return dataBroadcastId; -} - -const IdSelectorByteVector *DataBroadcastIdDescriptor::getIdSelectorBytes(void) const -{ - return &idSelectorBytes; -} - diff --git a/lib/dvb_si/data_broadcast_id_descriptor.h b/lib/dvb_si/data_broadcast_id_descriptor.h deleted file mode 100644 index a933c6e..0000000 --- a/lib/dvb_si/data_broadcast_id_descriptor.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: data_broadcast_id_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_data_broadcast_id_descriptor_h__ -#define __dvb_descriptor_data_broadcast_id_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector IdSelectorByteVector; -typedef IdSelectorByteVector::iterator IdSelectorByteIterator; -typedef IdSelectorByteVector::const_iterator IdSelectorByteConstIterator; - -class DataBroadcastIdDescriptor : public Descriptor -{ - protected: - unsigned dataBroadcastId : 16; - IdSelectorByteVector idSelectorBytes; - - public: - DataBroadcastIdDescriptor(const uint8_t * const buffer); - - uint16_t getDataBroadcastId(void) const; - const IdSelectorByteVector *getIdSelectorBytes(void) const; -}; - -#endif /* __dvb_descriptor_data_broadcast_id_descriptor_h__ */ diff --git a/lib/dvb_si/data_stream_alignment_descriptor.h b/lib/dvb_si/data_stream_alignment_descriptor.h deleted file mode 100644 index 988cb6d..0000000 --- a/lib/dvb_si/data_stream_alignment_descriptor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: data_stream_alignment_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_data_stream_alignment_descriptor_h__ -#define __dvb_descriptor_data_stream_alignment_descriptor_h__ - -#include "descriptor.h" - -class DataStreamAlignmentDescriptor : public Descriptor -{ - protected: - unsigned alignmentType : 8; - - private: - DataStreamAlignmentDescriptor(const uint8_t * const buffer); - - uint8_t getAlignmentType(void) const; -}; - -#endif /* __dvb_descriptor_data_stream_alignment_descriptor_h__ */ diff --git a/lib/dvb_si/descriptor.cpp b/lib/dvb_si/descriptor.cpp deleted file mode 100644 index f81ed9a..0000000 --- a/lib/dvb_si/descriptor.cpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * $Id: descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -Descriptor::Descriptor(const uint8_t * const buffer) -{ - descriptorTag = buffer[0]; - descriptorLength = buffer[1]; -} - -uint8_t Descriptor::getTag(void) const -{ - return descriptorTag; -} - -uint8_t Descriptor::getLength(void) const -{ - return descriptorLength; -} - diff --git a/lib/dvb_si/descriptor.h b/lib/dvb_si/descriptor.h deleted file mode 100644 index 3572cce..0000000 --- a/lib/dvb_si/descriptor.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * $Id: descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_descriptor_h__ -#define __dvb_descriptor_descriptor_h__ - -#include -#include -#include - -class Descriptor -{ - protected: - unsigned descriptorTag : 8; - unsigned descriptorLength : 8; - - public: - Descriptor(const uint8_t * const buffer); - - uint8_t getTag(void) const; - uint8_t getLength(void) const; -}; - -typedef std::vector DescriptorVector; -typedef DescriptorVector::iterator DescriptorIterator; -typedef DescriptorVector::const_iterator DescriptorConstIterator; - -#endif /* __dvb_descriptor_descriptor_h__ */ diff --git a/lib/dvb_si/descriptor_tag.h b/lib/dvb_si/descriptor_tag.h deleted file mode 100644 index c3f8327..0000000 --- a/lib/dvb_si/descriptor_tag.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * $Id: descriptor_tag.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_id_descriptor_tag_h__ -#define __dvb_id_descriptor_tag_h__ - -enum DescriptorTag { - /* 0x00 - 0x3F: ITU-T Rec. H.222.0 | ISO/IEC 13818-1 */ - VIDEO_STREAM_DESCRIPTOR = 0x02, - AUDIO_STREAM_DESCRIPTOR = 0x03, - HIERARCHY_DESCRIPTOR = 0x04, - REGISTRATION_DESCRIPTOR = 0x05, - DATA_STREAM_ALIGNMENT_DESCRIPTOR = 0x06, - TARGET_BACKGROUND_GRID_DESCRIPTOR = 0x07, - VIDEO_WINDOW_DESCRIPTOR = 0x08, - CA_DESCRIPTOR = 0x09, - ISO_639_LANGUAGE_DESCRIPTOR = 0x0A, - SYSTEM_CLOCK_DESCRIPTOR = 0x0B, - MULTIPLEX_BUFFER_UTILIZATION_DESCRIPTOR = 0x0C, - COPYRIGHT_DESCRIPTOR = 0x0D, - MAXIMUM_BITRATE_DESCRIPTOR = 0x0E, - PRIVATE_DATA_INDICATOR_DESCRIPTOR = 0x0F, - SMOOTHING_BUFFER_DESCRIPTOR = 0x10, - STD_DESCRIPTOR = 0x11, - IBP_DESCRIPTOR = 0x12, - CAROUSEL_IDENTIFIER_DESCRIPTOR = 0x13, - /* 0x40 - 0x7F: ETSI EN 300 468 V1.5.1 (2003-01) */ - NETWORK_NAME_DESCRIPTOR = 0x40, - SERVICE_LIST_DESCRIPTOR = 0x41, - STUFFING_DESCRIPTOR = 0x42, - SATELLITE_DELIVERY_SYSTEM_DESCRIPTOR = 0x43, - CABLE_DELIVERY_SYSTEM_DESCRIPTOR = 0x44, - VBI_DATA_DESCRIPTOR = 0x45, - VBI_TELETEXT_DESCRIPTOR = 0x46, - BOUQUET_NAME_DESCRIPTOR = 0x47, - SERVICE_DESCRIPTOR = 0x48, - COUNTRY_AVAILABILITY_DESCRIPTOR = 0x49, - LINKAGE_DESCRIPTOR = 0x4A, - NVOD_REFERENCE_DESCRIPTOR = 0x4B, - TIME_SHIFTED_SERVICE_DESCRIPTOR = 0x4C, - SHORT_EVENT_DESCRIPTOR = 0x4D, - EXTENDED_EVENT_DESCRIPTOR = 0x4E, - TIME_SHIFTED_EVENT_DESCRIPTOR = 0x4F, - COMPONENT_DESCRIPTOR = 0x50, - MOSAIC_DESCRIPTOR = 0x51, - STREAM_IDENTIFIER_DESCRIPTOR = 0x52, - CA_IDENTIFIER_DESCRIPTOR = 0x53, - CONTENT_DESCRIPTOR = 0x54, - PARENTAL_RATING_DESCRIPTOR = 0x55, - TELETEXT_DESCRIPTOR = 0x56, - TELEPHONE_DESCRIPTOR = 0x57, - LOCAL_TIME_OFFSET_DESCRIPTOR = 0x58, - SUBTITLING_DESCRIPTOR = 0x59, - TERRESTRIAL_DELIVERY_SYSTEM_DESCRIPTOR = 0x5A, - MULTILINGUAL_NETWORK_NAME_DESCRIPTOR = 0x5B, - MULTILINGUAL_BOUQUET_NAME_DESCRIPTOR = 0x5C, - MULTILINGUAL_SERVICE_NAME_DESCRIPTOR = 0x5D, - MULTILINGUAL_COMPONENT_DESCRIPTOR = 0x5E, - PRIVATE_DATA_SPECIFIER_DESCRIPTOR = 0x5F, - SERVICE_MOVE_DESCRIPTOR = 0x60, - SHORT_SMOOTHING_BUFFER_DESCRIPTOR = 0x61, - FREQUENCY_LIST_DESCRIPTOR = 0x62, - PARTIAL_TRANSPORT_STREAM_DESCRIPTOR = 0x63, - DATA_BROADCAST_DESCRIPTOR = 0x64, - CA_SYSTEM_DESCRIPTOR = 0x65, - DATA_BROADCAST_ID_DESCRIPTOR = 0x66, - TRANSPORT_STREAM_DESCRIPTOR = 0x67, - DSNG_DESCRIPTOR = 0x68, - PDC_DESCRIPTOR = 0x69, - AC3_DESCRIPTOR = 0x6A, - ANCILLARY_DATA_DESCRIPTOR = 0x6B, - CELL_LIST_DESCRIPTOR = 0x6C, - CELL_FREQUENCY_LINK_DESCRIPTOR = 0x6D, - ANNOUNCEMENT_SUPPORT_DESCRIPTOR = 0x6E, - APPLICATION_SIGNALLING_DESCRIPTOR = 0x6F, - ADAPTATION_FIELD_DATA_DESCRIPTOR = 0x70, - SERVICE_IDENTIFIER_DESCRIPTOR = 0x71, - SERVICE_AVAILABILITY_DESCRIPTOR = 0x72, - /* 0x80 - 0xFE: user defined */ - VIASAT_LOGIC_CHANNEL_DESCRIPTOR = 0x82, - NORDIG_LOGIC_CHANNEL_DESCRIPTOR = 0x83, - EACEM_LOGIC_CHANNEL_DESCRIPTOR = 0x83, - EACEM_PREFERRED_NAME_LIST_DESCRIPTOR = 0x84, - EACEM_PREFERRED_NAME_IDENTIFIER_DESCRIPTOR = 0x85, - EACEM_STREAM_IDENTIFIER_DESCRIPTOR = 0x86, - SENDA_CHANNEL_LIST_DESCRIPTOR = 0xF1, - /* 0xFF: Forbidden */ - FORBIDDEN_DESCRIPTOR = 0xFF -}; - -enum MhpDescriptorTag { - /* ETSI TS 101 812 V1.2.1 (2002-06) */ - APPLICATION_DESCRIPTOR = 0x00, - APPLICATION_NAME_DESCRIPTOR = 0x01, - TRANSPORT_PROTOCOL_DESCRIPTOR = 0x02, - DVB_J_APPLICATION_DESCRIPTOR = 0x03, - DVB_J_APPLICATION_LOCATION_DESCRIPTOR = 0x04, - EXTERNAL_APPLICATION_AUTHORISATION_DESCRIPTOR = 0x05, - ROUTING_DESCRIPTOR_IP4 = 0x06, - ROUTING_DESCRIPTOR_IP6 = 0x07, - DVB_HTML_APPLICATION_DESCRIPTOR = 0x08, - DVB_HTML_APPLICATION_LOCATION_DESCRIPTOR = 0x09, - DVB_HTML_APPLICATION_BOUNDARY_DESCRIPTOR = 0x0A, - APPLICATION_ICONS_DESCRIPTOR = 0x0B, - PREFETCH_DESCRIPTOR = 0x0C, - DII_LOCATION_DESCRIPTOR = 0x0D, -}; - -#endif /* __dvb_id_descriptor_tag_h__ */ diff --git a/lib/dvb_si/dsng_descriptor.h b/lib/dvb_si/dsng_descriptor.h deleted file mode 100644 index f12d554..0000000 --- a/lib/dvb_si/dsng_descriptor.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * $Id: dsng_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_dsng_descriptor_h__ -#define __dvb_descriptor_dsng_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector ByteVector; -typedef ByteVector::iterator ByteIterator; -typedef ByteVector::const_iterator ByteConstIterator; - -class DsngDescriptor : public Descriptor -{ - protected: - ByteVector bytes; - - public: - DsngDescriptor(const uint8_t * const buffer); - - const ByteVector *getBytes(void) const; -}; - -#endif /* __dvb_descriptor_dsng_descriptor_h__ */ diff --git a/lib/dvb_si/eit.cpp b/lib/dvb_si/eit.cpp deleted file mode 100644 index cf7c02b..0000000 --- a/lib/dvb_si/eit.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/* - * $Id: eit.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -Event::Event(const uint8_t * const buffer) -{ - eventId = (buffer[0] << 8) | buffer[1]; - startTimeMjd = (buffer[2] << 8) | buffer[3]; - startTimeBcd = (buffer[4] << 16) | (buffer[5] << 8) | buffer[6]; - duration = (buffer[7] << 16) | (buffer[8] << 8) | buffer[9]; - runningStatus = (buffer[10] >> 5) & 0x07; - freeCaMode = (buffer[10] >> 4) & 0x01; - descriptorsLoopLength = ((buffer[10] & 0x0f) << 8) | buffer[11]; - - for (uint16_t i = 12; i < descriptorsLoopLength + 12; i += buffer[i + 1] + 2) - descriptor(&buffer[i]); -} - -uint16_t Event::getEventId(void) const -{ - return eventId; -} - -uint16_t Event::getStartTimeMjd(void) const -{ - return startTimeMjd; -} - -uint32_t Event::getStartTimeBcd(void) const -{ - return startTimeBcd; -} - -uint32_t Event::getDuration(void) const -{ - return duration; -} - -uint8_t Event::getRunningStatus(void) const -{ - return runningStatus; -} - -uint8_t Event::getFreeCaMode(void) const -{ - return freeCaMode; -} - -EventInformationTable::EventInformationTable(const uint8_t * const buffer) : LongCrcTable(buffer) -{ - transportStreamId = (buffer[8] << 8) | buffer[9]; - originalNetworkId = (buffer[10] << 8) | buffer[11]; - segmentLastSectionNumber = buffer[12]; - lastTableId = buffer[13]; - - for (uint16_t i = 14; i < sectionLength - 1; i += (((buffer[i + 10] & 0x0f) << 8) | buffer[i + 11]) + 12) - events.push_back(new Event(&buffer[i])); -} - -EventInformationTable::~EventInformationTable(void) -{ - for (EventIterator i = events.begin(); i != events.end(); ++i) - delete *i; -} - -uint16_t EventInformationTable::getTransportStreamId(void) const -{ - return transportStreamId; -} - -uint16_t EventInformationTable::getOriginalNetworkId(void) const -{ - return originalNetworkId; -} - -uint8_t EventInformationTable::getLastSectionNumber(void) const -{ - return lastSectionNumber; -} - -uint8_t EventInformationTable::getLastTableId(void) const -{ - return lastTableId; -} - -const EventVector *EventInformationTable::getEvents(void) const -{ - return &events; -} - diff --git a/lib/dvb_si/eit.h b/lib/dvb_si/eit.h deleted file mode 100644 index 1b278ca..0000000 --- a/lib/dvb_si/eit.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * $Id: eit.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_eit_h__ -#define __dvb_table_eit_h__ - -#include -#include "long_crc_table.h" - -class Event : public DescriptorContainer -{ - protected: - unsigned eventId : 16; - unsigned startTimeMjd : 16; - unsigned startTimeBcd : 24; - unsigned duration : 24; - unsigned runningStatus : 3; - unsigned freeCaMode : 1; - unsigned descriptorsLoopLength : 12; - - public: - Event(const uint8_t * const buffer); - - uint16_t getEventId(void) const; - uint16_t getStartTimeMjd(void) const; - uint32_t getStartTimeBcd(void) const; - uint32_t getDuration(void) const; - uint8_t getRunningStatus(void) const; - uint8_t getFreeCaMode(void) const; -}; - -typedef std::vector EventVector; -typedef EventVector::iterator EventIterator; -typedef EventVector::const_iterator EventConstIterator; - -class EventInformationTable : public LongCrcTable -{ - protected: - unsigned transportStreamId : 16; - unsigned originalNetworkId : 16; - unsigned segmentLastSectionNumber : 8; - unsigned lastTableId : 8; - EventVector events; - - public: - EventInformationTable(const uint8_t * const buffer); - ~EventInformationTable(void); - - static const uint16_t LENGTH = 4096; - static const enum PacketId PID = PID_EIT; - static const enum TableId TID = TID_EIT_ACTUAL; - static const uint32_t TIMEOUT = 3000; - - uint16_t getTransportStreamId(void) const; - uint16_t getOriginalNetworkId(void) const; - uint8_t getLastSectionNumber(void) const; - uint8_t getLastTableId(void) const; - const EventVector *getEvents(void) const; -}; - -typedef std::vector EventInformationTableVector; -typedef EventInformationTableVector::iterator EventInformationTableIterator; -typedef EventInformationTableVector::const_iterator EventInformationTableConstIterator; - -#endif /* __dvb_table_eit_h__ */ diff --git a/lib/dvb_si/element_descriptor.h b/lib/dvb_si/element_descriptor.h deleted file mode 100644 index 3587569..0000000 --- a/lib/dvb_si/element_descriptor.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * $Id: element_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_element_descriptor_h__ -#define __dvb_descriptor_element_descriptor_h__ - -#include "descriptor.h" - -/* 0x92 */ -class ElementDescriptor : public Descriptor -{ - public: - ElementDescriptor(const uint8_t * const buffer); -}; - -#endif /* __dvb_descriptor_element_descriptor_h__ */ diff --git a/lib/dvb_si/extended_event_descriptor.cpp b/lib/dvb_si/extended_event_descriptor.cpp deleted file mode 100644 index 11b639a..0000000 --- a/lib/dvb_si/extended_event_descriptor.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/* - * $Id: extended_event_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ExtendedEvent::ExtendedEvent(const uint8_t * const buffer) -{ - itemDescriptionLength = buffer[0]; - itemDescription.assign((char *)&buffer[1], itemDescriptionLength); - itemLength = buffer[itemDescriptionLength + 1]; - item.assign((char *)&buffer[itemDescriptionLength + 2], itemLength); -} - -std::string ExtendedEvent::getItemDescription(void) const -{ - return itemDescription; -} - -std::string ExtendedEvent::getItem(void) const -{ - return item; -} - -ExtendedEventDescriptor::ExtendedEventDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - descriptorNumber = (buffer[2] >> 4) & 0x0f; - lastDescriptorNumber = buffer[2] & 0x0f; - iso639LanguageCode.assign((char *)&buffer[3], 3); - lengthOfItems = buffer[6]; - - ExtendedEvent *e; - - for (uint16_t i = 0; i < lengthOfItems; i += e->itemDescriptionLength + e->itemLength + 2) { - e = new ExtendedEvent(&buffer[i + 7]); - items.push_back(e); - } - - textLength = buffer[lengthOfItems + 7]; - text.assign((char *)&buffer[lengthOfItems + 8], textLength); -} - -ExtendedEventDescriptor::~ExtendedEventDescriptor(void) -{ - for (ExtendedEventIterator i = items.begin(); i != items.end(); ++i) - delete *i; -} - -uint8_t ExtendedEventDescriptor::getDescriptorNumber(void) const -{ - return descriptorNumber; -} - -uint8_t ExtendedEventDescriptor::getLastDescriptorNumber(void) const -{ - return lastDescriptorNumber; -} - -std::string ExtendedEventDescriptor::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -const ExtendedEventVector *ExtendedEventDescriptor::getItems(void) const -{ - return &items; -} - -std::string ExtendedEventDescriptor::getText(void) const -{ - return text; -} - diff --git a/lib/dvb_si/extended_event_descriptor.h b/lib/dvb_si/extended_event_descriptor.h deleted file mode 100644 index 9b170d0..0000000 --- a/lib/dvb_si/extended_event_descriptor.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * $Id: extended_event_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_extended_event_descriptor_h__ -#define __dvb_descriptor_extended_event_descriptor_h__ - -#include "descriptor.h" - -class ExtendedEvent -{ - protected: - unsigned itemDescriptionLength : 8; - std::string itemDescription; - unsigned itemLength : 8; - std::string item; - - public: - ExtendedEvent(const uint8_t * const buffer); - - std::string getItemDescription(void) const; - std::string getItem(void) const; - - friend class ExtendedEventDescriptor; -}; - -typedef std::vector ExtendedEventVector; -typedef ExtendedEventVector::iterator ExtendedEventIterator; -typedef ExtendedEventVector::const_iterator ExtendedEventConstIterator; - -class ExtendedEventDescriptor : public Descriptor -{ - protected: - unsigned descriptorNumber : 4; - unsigned lastDescriptorNumber : 4; - std::string iso639LanguageCode; - unsigned lengthOfItems : 8; - ExtendedEventVector items; - unsigned textLength : 8; - std::string text; - - public: - ExtendedEventDescriptor(const uint8_t * const buffer); - ~ExtendedEventDescriptor(void); - - uint8_t getDescriptorNumber(void) const; - uint8_t getLastDescriptorNumber(void) const; - std::string getIso639LanguageCode(void) const; - const ExtendedEventVector *getItems(void) const; - std::string getText(void) const; -}; - -#endif /* __dvb_descriptor_extended_event_descriptor_h__ */ diff --git a/lib/dvb_si/frequency_list_descriptor.cpp b/lib/dvb_si/frequency_list_descriptor.cpp deleted file mode 100644 index fe6ea32..0000000 --- a/lib/dvb_si/frequency_list_descriptor.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: frequency_list_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -FrequencyListDescriptor::FrequencyListDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - if (descriptorLength < 1) - return; - reserved = (buffer[2] >> 2) & 0x3f; - codingType = buffer[2] & 0x03; - - for (uint16_t i = 0; i < descriptorLength - 1; i += 4) - centreFrequencies.push_back((buffer[i + 3] << 24) | (buffer[i + 4] << 16) | (buffer[i + 5] << 8) | buffer[i + 6]); -} - -uint8_t FrequencyListDescriptor::getCodingType(void) const -{ - return codingType; -} - -const CentreFrequencyVector *FrequencyListDescriptor::getCentreFrequencies(void) const -{ - return ¢reFrequencies; -} - diff --git a/lib/dvb_si/frequency_list_descriptor.h b/lib/dvb_si/frequency_list_descriptor.h deleted file mode 100644 index 83fdf92..0000000 --- a/lib/dvb_si/frequency_list_descriptor.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * $Id: frequency_list_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_frequency_list_descriptor_h__ -#define __dvb_descriptor_frequency_list_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector CentreFrequencyVector; -typedef CentreFrequencyVector::iterator CentreFrequencyIterator; -typedef CentreFrequencyVector::const_iterator CentreFrequencyConstIterator; - -class FrequencyListDescriptor : public Descriptor -{ - protected: - unsigned reserved : 6; - unsigned codingType : 2; - CentreFrequencyVector centreFrequencies; - - public: - FrequencyListDescriptor(const uint8_t * const buffer); - - uint8_t getCodingType(void) const; - const CentreFrequencyVector *getCentreFrequencies(void) const; -}; - -#endif /* __dvb_descriptor_frequency_list_descriptor_h__ */ diff --git a/lib/dvb_si/group_descriptor.h b/lib/dvb_si/group_descriptor.h deleted file mode 100644 index fd3292d..0000000 --- a/lib/dvb_si/group_descriptor.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * $Id: group_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_group_descriptor_h__ -#define __dvb_descriptor_group_descriptor_h__ - -#include "descriptor.h" - -/* 0x91 */ -class GroupDescriptor : public Descriptor -{ - public: - GroupDescriptor(const uint8_t * const buffer); -}; - -#endif /* __dvb_descriptor_group_descriptor_h__ */ diff --git a/lib/dvb_si/hierarchy_descriptor.h b/lib/dvb_si/hierarchy_descriptor.h deleted file mode 100644 index 3c990fc..0000000 --- a/lib/dvb_si/hierarchy_descriptor.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * $Id: hierarchy_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_hierarchy_descriptor_h__ -#define __dvb_descriptor_hierarchy_descriptor_h__ - -#include "descriptor.h" - -class HierarchyDescriptor : public Descriptor -{ - protected: - unsigned reserved : 4; - unsigned hierarchyType : 4; - unsigned reserved2 : 2; - unsigned hierarchyLayerIndex : 6; - unsigned reserved3 : 2; - unsigned hierarchyEmbeddedLayerIndex : 6; - unsigned reserved4 : 2; - unsigned hierarchyChannel : 6; - - private: - HierarchyDescriptor(const uint8_t * const buffer); - - uint8_t getHierarchyType(void) const; - uint8_t getHierarchyLayerIndex(void) const; - uint8_t getHierarchyEmbeddedLayerIndex(void) const; - uint8_t getHierarchyChannel(void) const; -}; - -#endif /* __dvb_descriptor_hierarchy_descriptor_h__ */ diff --git a/lib/dvb_si/ibp_descriptor.h b/lib/dvb_si/ibp_descriptor.h deleted file mode 100644 index d601fe4..0000000 --- a/lib/dvb_si/ibp_descriptor.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * $Id: ibp_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_ibp_descriptor_h__ -#define __dvb_descriptor_ibp_descriptor_h__ - -#include "descriptor.h" - -class IbpDescriptor : public Descriptor -{ - protected: - unsigned closedGopFlag : 1; - unsigned identicalGopFlag : 1; - unsigned maxGopLength : 14; - - public: - IbpDescriptor(const uint8_t * const buffer); - - uint8_t getClosedGopFlag(void) const; - uint8_t getIdenticalGopFlag(void) const; - uint16_t getMaxGopLength(void) const; -}; - -#endif /* __dvb_descriptor_ibp_descriptor_h__ */ diff --git a/lib/dvb_si/ippv_booking_descriptor.h b/lib/dvb_si/ippv_booking_descriptor.h deleted file mode 100644 index 950bb45..0000000 --- a/lib/dvb_si/ippv_booking_descriptor.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * $Id: ippv_booking_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_ippv_booking_descriptor_h__ -#define __dvb_descriptor_ippv_booking_descriptor_h__ - -#include "descriptor.h" - -/* 0x81 */ -class IppvBookingDescriptor : public Descriptor -{ - public: - IppvBookingDescriptor(const uint8_t * const buffer); -}; - -#endif /* __dvb_descriptor_ippv_booking_descriptor_h__ */ diff --git a/lib/dvb_si/ippv_descriptor.h b/lib/dvb_si/ippv_descriptor.h deleted file mode 100644 index 967c9b5..0000000 --- a/lib/dvb_si/ippv_descriptor.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * $Id: ippv_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_ippv_descriptor_h__ -#define __dvb_descriptor_ippv_descriptor_h__ - -#include "descriptor.h" - -/* 0xF0 */ -class CurrencyEntry -{ - public: - CurrencyEntry(const uint8_t * const buffer); -}; - -class CountryEntry -{ - protected: - unsigned country : 24; - unsigned unknown : 5; - unsigned currencyAndCostDetail : 3; - // if (currencyAndCostDetail & 1) - unsigned bcdCost : 32; - unsigned length : 8; - std::vector currency; - - public: - CountryEntry(const uint8_t * const buffer); -}; - -class IppvDescriptor : public Descriptor -{ - protected: - unsigned unknown1 : 16; - unsigned unknown2 : 16; - unsigned unknown3 : 16; - unsigned IppvEventId : 16; - std::vector country; - - private: - IppvDescriptor(const uint8_t * const buffer); -}; - -#endif /* __dvb_descriptor_ippv_descriptor_h__ */ diff --git a/lib/dvb_si/iso639_language_descriptor.cpp b/lib/dvb_si/iso639_language_descriptor.cpp deleted file mode 100644 index 26ca1e0..0000000 --- a/lib/dvb_si/iso639_language_descriptor.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id: iso639_language_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -Iso639Language::Iso639Language(const uint8_t * const buffer) -{ - iso639LanguageCode.assign((char *)&buffer[0], 3); - audioType = buffer[3]; -} - -std::string Iso639Language::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -uint8_t Iso639Language::getAudioType(void) const -{ - return audioType; -} - -Iso639LanguageDescriptor::Iso639LanguageDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += 4) - iso639Languages.push_back(new Iso639Language(&buffer[i + 2])); -} - -Iso639LanguageDescriptor::~Iso639LanguageDescriptor(void) -{ - for (Iso639LanguageIterator i = iso639Languages.begin(); i != iso639Languages.end(); ++i) - delete *i; -} - -const Iso639LanguageVector *Iso639LanguageDescriptor::getIso639Languages(void) const -{ - return &iso639Languages; -} - diff --git a/lib/dvb_si/iso639_language_descriptor.h b/lib/dvb_si/iso639_language_descriptor.h deleted file mode 100644 index 8983639..0000000 --- a/lib/dvb_si/iso639_language_descriptor.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id: iso639_language_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_iso639_language_descriptor_h__ -#define __dvb_descriptor_iso639_language_descriptor_h__ - -#include "descriptor.h" - -class Iso639Language -{ - protected: - std::string iso639LanguageCode; - unsigned audioType : 8; - - public: - Iso639Language(const uint8_t * const buffer); - - std::string getIso639LanguageCode(void) const; - uint8_t getAudioType(void) const; -}; - -typedef std::vector Iso639LanguageVector; -typedef Iso639LanguageVector::iterator Iso639LanguageIterator; -typedef Iso639LanguageVector::const_iterator Iso639LanguageConstIterator; - -class Iso639LanguageDescriptor : public Descriptor -{ - protected: - Iso639LanguageVector iso639Languages; - - public: - Iso639LanguageDescriptor(const uint8_t * const buffer); - ~Iso639LanguageDescriptor(void); - - const Iso639LanguageVector *getIso639Languages(void) const; -}; - -#endif /* __dvb_descriptor_iso639_language_descriptor_h__ */ diff --git a/lib/dvb_si/linkage_descriptor.cpp b/lib/dvb_si/linkage_descriptor.cpp deleted file mode 100644 index 77b991e..0000000 --- a/lib/dvb_si/linkage_descriptor.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* - * $Id: linkage_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -LinkageDescriptor::LinkageDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - transportStreamId = (buffer[2] << 8) | buffer[3]; - originalNetworkId = (buffer[4] << 8) | buffer[5]; - serviceId = (buffer[6] << 8) | buffer[7]; - linkageType = buffer[8]; - - if (linkageType != 0x08) - { - if (descriptorLength < 7) - return; - - for (uint16_t i = 0; i < descriptorLength - 7; ++i) - privateDataBytes.push_back(buffer[i + 9]); - } - - else { - handOverType = (buffer[9] >> 4) & 0x0f; - reserved = (buffer[9] >> 1) & 0x07; - originType = buffer[9] & 0x01; - - uint8_t offset = 0; - - if ((handOverType >= 0x01) && (handOverType <= 0x03)) { - networkId = (buffer[10] << 8) | buffer[11]; - offset += 2; - } - - if (originType == 0x00) { - initialServiceId = (buffer[offset + 10] << 8) | buffer[offset + 11]; - offset += 2; - } - - if (descriptorLength >= (unsigned)(offset+8)) - for (uint16_t i = 0; i < descriptorLength - (offset + 8); ++i) - privateDataBytes.push_back(buffer[i + offset + 10]); - } -} - -uint16_t LinkageDescriptor::getTransportStreamId(void) const -{ - return transportStreamId; -} - -uint16_t LinkageDescriptor::getOriginalNetworkId(void) const -{ - return originalNetworkId; -} - -uint16_t LinkageDescriptor::getServiceId(void) const -{ - return serviceId; -} - -uint8_t LinkageDescriptor::getLinkageType(void) const -{ - return linkageType; -} - -const PrivateDataByteVector *LinkageDescriptor::getPrivateDataBytes(void) const -{ - return &privateDataBytes; -} - -uint8_t LinkageDescriptor::getHandOverType(void) const -{ - return handOverType; -} - -uint8_t LinkageDescriptor::getOriginType(void) const -{ - return originType; -} - -uint16_t LinkageDescriptor::getNetworkId(void) const -{ - return networkId; -} - -uint16_t LinkageDescriptor::getInitialServiceId(void) const -{ - return initialServiceId; -} - diff --git a/lib/dvb_si/linkage_descriptor.h b/lib/dvb_si/linkage_descriptor.h deleted file mode 100644 index cfecf50..0000000 --- a/lib/dvb_si/linkage_descriptor.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * $Id: linkage_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_linkage_descriptor_h__ -#define __dvb_descriptor_linkage_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector PrivateDataByteVector; -typedef PrivateDataByteVector::iterator PrivateDataByteIterator; -typedef PrivateDataByteVector::const_iterator PrivateDataByteConstIterator; - -class LinkageDescriptor : public Descriptor -{ - protected: - unsigned transportStreamId : 16; - unsigned originalNetworkId : 16; - unsigned serviceId : 16; - unsigned linkageType : 8; - PrivateDataByteVector privateDataBytes; - unsigned handOverType : 4; - unsigned reserved : 3; - unsigned originType : 1; - unsigned networkId : 16; - unsigned initialServiceId : 16; - - public: - LinkageDescriptor(const uint8_t * const buffer); - - uint16_t getTransportStreamId(void) const; - uint16_t getOriginalNetworkId(void) const; - uint16_t getServiceId(void) const; - uint8_t getLinkageType(void) const; - const PrivateDataByteVector *getPrivateDataBytes(void) const; - uint8_t getHandOverType(void) const; - uint8_t getOriginType(void) const; - uint16_t getNetworkId(void) const; - uint16_t getInitialServiceId(void) const; -}; - -#endif /* __dvb_descriptor_linkage_descriptor_h__ */ diff --git a/lib/dvb_si/local_time_offset_descriptor.cpp b/lib/dvb_si/local_time_offset_descriptor.cpp deleted file mode 100644 index 72fc53b..0000000 --- a/lib/dvb_si/local_time_offset_descriptor.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* - * $Id: local_time_offset_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -LocalTimeOffset::LocalTimeOffset(const uint8_t * const buffer) -{ - countryCode.assign((char *)&buffer[0], 3); - countryRegionId = (buffer[3] >> 2) & 0x3f; - reserved = (buffer[3] >> 1) & 0x01; - localTimeOffsetPolarity = buffer[3] & 0x01; - localTimeOffset = (buffer[4] << 8) | buffer[5]; - timeOfChangeMjd = (buffer[6] << 8) | buffer[7]; - timeOfChangeBcd = (buffer[8] << 16) | (buffer[9] << 8) | buffer[10]; - nextTimeOffset = (buffer[11] << 8) | buffer[12]; -} - -std::string LocalTimeOffset::getCountryCode(void) const -{ - return countryCode; -} - -uint8_t LocalTimeOffset::getCountryRegionId(void) const -{ - return countryRegionId; -} - -uint8_t LocalTimeOffset::getLocalTimeOffsetPolarity(void) const -{ - return localTimeOffsetPolarity; -} - -uint16_t LocalTimeOffset::getLocalTimeOffset(void) const -{ - return localTimeOffset; -} - -uint16_t LocalTimeOffset::getTimeOfChangeMjd(void) const -{ - return timeOfChangeMjd; -} - -uint32_t LocalTimeOffset::getTimeOfChangeBcd(void) const -{ - return timeOfChangeBcd; -} - -uint16_t LocalTimeOffset::getNextTimeOffset(void) const -{ - return nextTimeOffset; -} - -LocalTimeOffsetDescriptor::LocalTimeOffsetDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += 13) - localTimeOffsets.push_back(new LocalTimeOffset(&buffer[i + 2])); -} - - -LocalTimeOffsetDescriptor::~LocalTimeOffsetDescriptor(void) -{ - for (LocalTimeOffsetIterator i = localTimeOffsets.begin(); i != localTimeOffsets.end(); ++i) - delete *i; -} - -const LocalTimeOffsetVector *LocalTimeOffsetDescriptor::getLocalTimeOffsets(void) const -{ - return &localTimeOffsets; -} - diff --git a/lib/dvb_si/local_time_offset_descriptor.h b/lib/dvb_si/local_time_offset_descriptor.h deleted file mode 100644 index 85373f7..0000000 --- a/lib/dvb_si/local_time_offset_descriptor.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * $Id: local_time_offset_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_local_time_offset_descriptor_h__ -#define __dvb_descriptor_local_time_offset_descriptor_h__ - -#include "descriptor.h" - -class LocalTimeOffset -{ - protected: - std::string countryCode; - unsigned countryRegionId : 6; - unsigned reserved : 1; - unsigned localTimeOffsetPolarity : 1; - unsigned localTimeOffset : 16; - unsigned timeOfChangeMjd : 16; - unsigned timeOfChangeBcd : 24; - unsigned nextTimeOffset : 16; - - public: - LocalTimeOffset(const uint8_t * const buffer); - - std::string getCountryCode(void) const; - uint8_t getCountryRegionId(void) const; - uint8_t getLocalTimeOffsetPolarity(void) const; - uint16_t getLocalTimeOffset(void) const; - uint16_t getTimeOfChangeMjd(void) const; - uint32_t getTimeOfChangeBcd(void) const; - uint16_t getNextTimeOffset(void) const; -}; - -typedef std::vector LocalTimeOffsetVector; -typedef LocalTimeOffsetVector::iterator LocalTimeOffsetIterator; -typedef LocalTimeOffsetVector::const_iterator LocalTimeOffsetConstIterator; - -class LocalTimeOffsetDescriptor : public Descriptor -{ - protected: - LocalTimeOffsetVector localTimeOffsets; - - public: - LocalTimeOffsetDescriptor(const uint8_t * const buffer); - ~LocalTimeOffsetDescriptor(void); - - const LocalTimeOffsetVector *getLocalTimeOffsets(void) const; -}; - -#endif /* __dvb_descriptor_local_time_offset_descriptor_h__ */ diff --git a/lib/dvb_si/long_crc_table.cpp b/lib/dvb_si/long_crc_table.cpp deleted file mode 100644 index 2f91652..0000000 --- a/lib/dvb_si/long_crc_table.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/* - * $Id: long_crc_table.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -LongCrcTable::LongCrcTable(const uint8_t * const buffer) : LongTable(buffer) -{ - crc32 = (buffer[sectionLength - 1] << 24) | - (buffer[sectionLength + 0] << 16) | - (buffer[sectionLength + 1] << 8) | - (buffer[sectionLength + 2]); -} - -uint32_t LongCrcTable::getCrc32(void) const -{ - return crc32; -} - diff --git a/lib/dvb_si/long_crc_table.h b/lib/dvb_si/long_crc_table.h deleted file mode 100644 index 14f4ded..0000000 --- a/lib/dvb_si/long_crc_table.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: long_crc_table.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_long_crc_table_h__ -#define __dvb_table_long_crc_table_h__ - -#include "long_table.h" - -class LongCrcTable : public LongTable -{ - protected: - unsigned crc32 : 32; - - public: - LongCrcTable(const uint8_t * const buffer); - - static const uint8_t CRC32 = 1; - - uint32_t getCrc32(void) const; -}; - -typedef std::vector LongCrcTableVector; -typedef LongCrcTableVector::iterator LongCrcTableIterator; -typedef LongCrcTableVector::const_iterator LongCrcTableConstIterator; - -#endif /* __dvb_table_long_crc_table_h__ */ diff --git a/lib/dvb_si/long_table.cpp b/lib/dvb_si/long_table.cpp deleted file mode 100644 index f6bcbdf..0000000 --- a/lib/dvb_si/long_table.cpp +++ /dev/null @@ -1,88 +0,0 @@ -/* - * $Id: long_table.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -LongTable::LongTable(const uint8_t * const buffer) : ShortTable(buffer) -{ - tableIdExtension = (buffer[3] << 8) | buffer[4]; - reserved3 = (buffer[5] >> 6) & 0x03; - versionNumber = (buffer[5] >> 1) & 0x1F; - currentNextIndicator = buffer[5] & 0x01; - sectionNumber = buffer[6]; - lastSectionNumber = buffer[7]; -} - -uint16_t LongTable::getTableIdExtension(void) const -{ - return tableIdExtension; -} - -uint8_t LongTable::getVersionNumber(void) const -{ - return versionNumber; -} - -uint8_t LongTable::getCurrentNextIndicator(void) const -{ - return currentNextIndicator; -} - -uint8_t LongTable::getSectionNumber(void) const -{ - return sectionNumber; -} - -uint8_t LongTable::getLastSectionNumber(void) const -{ - return lastSectionNumber; -} - -bool LongTable::operator< (const LongTable &t) const -{ - return (sectionNumber < t.sectionNumber); -} - -bool LongTable::operator> (const LongTable &t) const -{ - return (sectionNumber > t.sectionNumber); -} - -bool LongTable::operator<= (const LongTable &t) const -{ - return (sectionNumber <= t.sectionNumber); -} - -bool LongTable::operator>= (const LongTable &t) const -{ - return (sectionNumber >= t.sectionNumber); -} - -bool LongTable::operator== (const LongTable &t) const -{ - return (sectionNumber == t.sectionNumber); -} - -bool LongTable::operator!= (const LongTable &t) const -{ - return (sectionNumber != t.sectionNumber); -} - diff --git a/lib/dvb_si/long_table.h b/lib/dvb_si/long_table.h deleted file mode 100644 index 31341d4..0000000 --- a/lib/dvb_si/long_table.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * $Id: long_table.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_long_table_h__ -#define __dvb_table_long_table_h__ - -#include "short_table.h" - -class LongTable : public ShortTable -{ - protected: - unsigned tableIdExtension : 16; - unsigned reserved3 : 2; - unsigned versionNumber : 5; - unsigned currentNextIndicator : 1; - unsigned sectionNumber : 8; - unsigned lastSectionNumber : 8; - - public: - LongTable(const uint8_t * const buffer); - - static const uint8_t SYNTAX = 1; - - uint16_t getTableIdExtension(void) const; - uint8_t getVersionNumber(void) const; - uint8_t getCurrentNextIndicator(void) const; - uint8_t getSectionNumber(void) const; - uint8_t getLastSectionNumber(void) const; - - bool operator< (const LongTable &t) const; - bool operator> (const LongTable &t) const; - bool operator<= (const LongTable &t) const; - bool operator>= (const LongTable &t) const; - bool operator== (const LongTable &t) const; - bool operator!= (const LongTable &t) const; -}; - -typedef std::vector LongTableVector; -typedef LongTableVector::iterator LongTableIterator; -typedef LongTableVector::const_iterator LongTableConstIterator; - -#endif /* __dvb_table_long_table_h__ */ diff --git a/lib/dvb_si/maximum_bitrate_descriptor.h b/lib/dvb_si/maximum_bitrate_descriptor.h deleted file mode 100644 index 54ed29c..0000000 --- a/lib/dvb_si/maximum_bitrate_descriptor.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * $Id: maximum_bitrate_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_maximum_bitrate_descriptor_h__ -#define __dvb_descriptor_maximum_bitrate_descriptor_h__ - -#include "descriptor.h" - -class MaximumBitrateDescriptor : public Descriptor -{ - protected: - unsigned reserved : 2; - unsigned maximumBitrate : 22; - - public: - MaximumBitrateDescriptor(const uint8_t * const buffer); - - uint32_t getMaximumBitrate(void) const; -}; - -#endif /* __dvb_descriptor_maximum_bitrate_descriptor_h__ */ diff --git a/lib/dvb_si/mosaic_descriptor.cpp b/lib/dvb_si/mosaic_descriptor.cpp deleted file mode 100644 index f13bccf..0000000 --- a/lib/dvb_si/mosaic_descriptor.cpp +++ /dev/null @@ -1,171 +0,0 @@ -/* - * $Id: mosaic_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ElementaryCellField::ElementaryCellField (const uint8_t * const buffer) -{ - reserved = (buffer[0] >> 6) & 0x03; - elementaryCellId = buffer[0] & 0x3F; -} - -uint8_t ElementaryCellField::getElementaryCellId(void) const -{ - return elementaryCellId; -} - -MosaicCell::MosaicCell (const uint8_t * const buffer) -{ - logicalCellId = (buffer[0] >> 2) & 0x3F; - reserved = (((buffer[0] & 0x03) << 8) | (buffer[1] & 0xF1)) >> 3; - logicalCellPresentationInfo = buffer[1] & 0x07; - elementaryCellFieldLength = buffer[2]; - - for (uint16_t i = 0; i < elementaryCellFieldLength; ++i) - elementaryCellFields.push_back(new ElementaryCellField(&buffer[i + 3])); - - cellLinkageInfo = buffer[elementaryCellFieldLength + 3]; - - switch (cellLinkageInfo) { - case 0x01: - bouquetId = (buffer[elementaryCellFieldLength + 4] << 8) | buffer[elementaryCellFieldLength + 5]; - break; - case 0x02: - case 0x03: - case 0x04: - originalNetworkId = (buffer[elementaryCellFieldLength + 4] << 8) | buffer[elementaryCellFieldLength + 5]; - transportStreamId = (buffer[elementaryCellFieldLength + 6] << 8) | buffer[elementaryCellFieldLength + 7]; - serviceId = (buffer[elementaryCellFieldLength + 8] << 8) | buffer[elementaryCellFieldLength + 9]; - break; - default: - break; - } - - if (cellLinkageInfo == 0x04) - eventId = (buffer[elementaryCellFieldLength + 10] << 8) | buffer[elementaryCellFieldLength + 11]; -} - -MosaicCell::~MosaicCell(void) -{ - for (ElementaryCellFieldIterator i = elementaryCellFields.begin(); i != elementaryCellFields.end(); ++i) - delete *i; -} - -uint8_t MosaicCell::getLogicalCellId(void) const -{ - return logicalCellId; -} - -uint8_t MosaicCell::getLogicalCellPresentationInfo(void) const -{ - return logicalCellPresentationInfo; -} - -const ElementaryCellFieldVector *MosaicCell::getElementaryCellFields(void) const -{ - return &elementaryCellFields; -} - -uint8_t MosaicCell::getCellLinkageInfo(void) const -{ - return cellLinkageInfo; -} - -uint16_t MosaicCell::getBouquetId(void) const -{ - return bouquetId; -} - -uint16_t MosaicCell::getOriginalNetworkId(void) const -{ - return originalNetworkId; -} - -uint16_t MosaicCell::getTransportStreamId(void) const -{ - return transportStreamId; -} - -uint16_t MosaicCell::getServiceId(void) const -{ - return serviceId; -} - -uint16_t MosaicCell::getEventId(void) const -{ - return eventId; -} - -MosaicDescriptor::MosaicDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - if (descriptorLength < 1) - return; - - mosaicEntryPoint = (buffer[2] >> 7) & 0x01; - numberOfHorizontalElementaryCells = (buffer[2] >> 4) & 0x07; - reserved = (buffer[2] >> 3) & 0x01; - numberOfVerticalElementaryCells = buffer[2] & 0x07; - - for (uint16_t i = 0; i < descriptorLength - 1; i += buffer[i + 6] + 2) { - mosaicCells.push_back(new MosaicCell(&buffer[i + 1])); - switch (buffer[i + 6 + buffer[i + 6] + 1]) { - case 0x01: - i += 2; - break; - case 0x02: - case 0x03: - i += 6; - break; - case 0x04: - i += 8; - break; - default: - break; - } - } -} - -MosaicDescriptor::~MosaicDescriptor(void) -{ - for (MosaicCellIterator i = mosaicCells.begin(); i != mosaicCells.end(); ++i) - delete *i; -} - -uint8_t MosaicDescriptor::getMosaicEntryPoint(void) const -{ - return mosaicEntryPoint; -} - -uint8_t MosaicDescriptor::getNumberOfHorizontalElementaryCells(void) const -{ - return numberOfHorizontalElementaryCells; -} - -uint8_t MosaicDescriptor::getNumberOfVerticalElementaryCells(void) const -{ - return numberOfVerticalElementaryCells; -} - -const MosaicCellVector *MosaicDescriptor::getMosaicCells(void) const -{ - return &mosaicCells; -} - diff --git a/lib/dvb_si/mosaic_descriptor.h b/lib/dvb_si/mosaic_descriptor.h deleted file mode 100644 index e9f112e..0000000 --- a/lib/dvb_si/mosaic_descriptor.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * $Id: mosaic_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_mosaic_descriptor_h__ -#define __dvb_descriptor_mosaic_descriptor_h__ - -#include "descriptor.h" - -class ElementaryCellField -{ - protected: - unsigned reserved : 2; - unsigned elementaryCellId : 6; - - public: - ElementaryCellField(const uint8_t * const buffer); - - uint8_t getElementaryCellId(void) const; -}; - -typedef std::vector ElementaryCellFieldVector; -typedef ElementaryCellFieldVector::iterator ElementaryCellFieldIterator; -typedef ElementaryCellFieldVector::const_iterator ElementaryCellFieldConstIterator; - -class MosaicCell -{ - protected: - unsigned logicalCellId : 6; - unsigned reserved : 7; - unsigned logicalCellPresentationInfo : 3; - unsigned elementaryCellFieldLength : 8; - ElementaryCellFieldVector elementaryCellFields; - unsigned cellLinkageInfo : 8; - unsigned bouquetId : 16; - unsigned originalNetworkId : 16; - unsigned transportStreamId : 16; - unsigned serviceId : 16; - unsigned eventId : 16; - - public: - MosaicCell(const uint8_t * const buffer); - ~MosaicCell(void); - - uint8_t getLogicalCellId(void) const; - uint8_t getLogicalCellPresentationInfo(void) const; - const ElementaryCellFieldVector *getElementaryCellFields(void) const; - uint8_t getCellLinkageInfo(void) const; - uint16_t getBouquetId(void) const; - uint16_t getOriginalNetworkId(void) const; - uint16_t getTransportStreamId(void) const; - uint16_t getServiceId(void) const; - uint16_t getEventId(void) const; -}; - -typedef std::vector MosaicCellVector; -typedef MosaicCellVector::iterator MosaicCellIterator; -typedef MosaicCellVector::const_iterator MosaicCellConstIterator; - -class MosaicDescriptor : public Descriptor -{ - protected: - unsigned mosaicEntryPoint : 1; - unsigned numberOfHorizontalElementaryCells : 3; - unsigned reserved : 1; - unsigned numberOfVerticalElementaryCells : 3; - MosaicCellVector mosaicCells; - - public: - MosaicDescriptor(const uint8_t * const buffer); - ~MosaicDescriptor(void); - - uint8_t getMosaicEntryPoint(void) const; - uint8_t getNumberOfHorizontalElementaryCells(void) const; - uint8_t getNumberOfVerticalElementaryCells(void) const; - const MosaicCellVector *getMosaicCells(void) const; -}; - -#endif /* __dvb_descriptor_mosaic_descriptor_h__ */ diff --git a/lib/dvb_si/multilingual_bouquet_name_descriptor.cpp b/lib/dvb_si/multilingual_bouquet_name_descriptor.cpp deleted file mode 100644 index d628dc0..0000000 --- a/lib/dvb_si/multilingual_bouquet_name_descriptor.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * $Id: multilingual_bouquet_name_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -MultilingualBouquetName::MultilingualBouquetName(const uint8_t * const buffer) -{ - iso639LanguageCode.assign((char *)&buffer[0], 3); - bouquetNameLength = buffer[3]; - bouquetName.assign((char *)&buffer[4], bouquetNameLength); -} - -std::string MultilingualBouquetName::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -std::string MultilingualBouquetName::getBouquetName(void) const -{ - return bouquetName; -} - -MultilingualBouquetNameDescriptor::MultilingualBouquetNameDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += buffer[i + 3] + 2) - multilingualBouquetNames.push_back(new MultilingualBouquetName(&buffer[i + 2])); -} - -MultilingualBouquetNameDescriptor::~MultilingualBouquetNameDescriptor(void) -{ - for (MultilingualBouquetNameIterator i = multilingualBouquetNames.begin(); i != multilingualBouquetNames.end(); ++i) - delete *i; -} - -const MultilingualBouquetNameVector *MultilingualBouquetNameDescriptor::getMultilingualBouquetNames(void) const -{ - return &multilingualBouquetNames; -} - diff --git a/lib/dvb_si/multilingual_bouquet_name_descriptor.h b/lib/dvb_si/multilingual_bouquet_name_descriptor.h deleted file mode 100644 index 3864f74..0000000 --- a/lib/dvb_si/multilingual_bouquet_name_descriptor.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * $Id: multilingual_bouquet_name_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_multilingual_bouquet_name_descriptor_h__ -#define __dvb_descriptor_multilingual_bouquet_name_descriptor_h__ - -#include "descriptor.h" - -class MultilingualBouquetName -{ - protected: - std::string iso639LanguageCode; - unsigned bouquetNameLength : 8; - std::string bouquetName; - - public: - MultilingualBouquetName(const uint8_t * const buffer); - - std::string getIso639LanguageCode(void) const; - std::string getBouquetName(void) const; -}; - -typedef std::vector MultilingualBouquetNameVector; -typedef MultilingualBouquetNameVector::iterator MultilingualBouquetNameIterator; -typedef MultilingualBouquetNameVector::const_iterator MultilingualBouquetNameConstIterator; - -class MultilingualBouquetNameDescriptor : public Descriptor -{ - protected: - MultilingualBouquetNameVector multilingualBouquetNames; - - public: - MultilingualBouquetNameDescriptor(const uint8_t * const buffer); - ~MultilingualBouquetNameDescriptor(void); - - const MultilingualBouquetNameVector *getMultilingualBouquetNames(void) const; -}; - -#endif /* __dvb_descriptor_multilingual_bouquet_name_descriptor_h__ */ diff --git a/lib/dvb_si/multilingual_component_descriptor.cpp b/lib/dvb_si/multilingual_component_descriptor.cpp deleted file mode 100644 index ecd4950..0000000 --- a/lib/dvb_si/multilingual_component_descriptor.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - * $Id: multilingual_component_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -MultilingualComponent::MultilingualComponent(const uint8_t * const buffer) -{ - iso639LanguageCode.assign((char *)&buffer[0], 3); - textDescriptionLength = buffer[3]; - text.assign((char *)&buffer[4], textDescriptionLength); -} - -std::string MultilingualComponent::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -std::string MultilingualComponent::getText(void) const -{ - return text; -} - -MultilingualComponentDescriptor::MultilingualComponentDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - componentTag = buffer[2]; - - for (uint16_t i = 0; i < descriptorLength - 1; i += buffer[i + 4] + 2) - multilingualComponents.push_back(new MultilingualComponent(&buffer[i + 3])); -} - -MultilingualComponentDescriptor::~MultilingualComponentDescriptor(void) -{ - for (MultilingualComponentIterator i = multilingualComponents.begin(); i != multilingualComponents.end(); ++i) - delete *i; -} - -uint8_t MultilingualComponentDescriptor::getComponentTag(void) const -{ - return componentTag; -} - -const MultilingualComponentVector *MultilingualComponentDescriptor::getMultilingualComponents(void) const -{ - return &multilingualComponents; -} - diff --git a/lib/dvb_si/multilingual_component_descriptor.h b/lib/dvb_si/multilingual_component_descriptor.h deleted file mode 100644 index d7d2101..0000000 --- a/lib/dvb_si/multilingual_component_descriptor.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * $Id: multilingual_component_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_multilingual_component_descriptor_h__ -#define __dvb_descriptor_multilingual_component_descriptor_h__ - -#include "descriptor.h" - -class MultilingualComponent -{ - protected: - std::string iso639LanguageCode; - unsigned textDescriptionLength : 8; - std::string text; - - public: - MultilingualComponent(const uint8_t * const buffer); - - std::string getIso639LanguageCode(void) const; - std::string getText(void) const; -}; - -typedef std::vector MultilingualComponentVector; -typedef MultilingualComponentVector::iterator MultilingualComponentIterator; -typedef MultilingualComponentVector::const_iterator MultilingualComponentConstIterator; - -class MultilingualComponentDescriptor : public Descriptor -{ - protected: - unsigned componentTag : 8; - MultilingualComponentVector multilingualComponents; - - public: - MultilingualComponentDescriptor(const uint8_t * const buffer); - ~MultilingualComponentDescriptor(void); - - uint8_t getComponentTag(void) const; - const MultilingualComponentVector *getMultilingualComponents(void) const; -}; - -#endif /* __dvb_descriptor_multilingual_component_descriptor_h__ */ diff --git a/lib/dvb_si/multilingual_network_name_descriptor.cpp b/lib/dvb_si/multilingual_network_name_descriptor.cpp deleted file mode 100644 index 8bccc6c..0000000 --- a/lib/dvb_si/multilingual_network_name_descriptor.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * $Id: multilingual_network_name_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -MultilingualNetworkName::MultilingualNetworkName(const uint8_t * const buffer) -{ - iso639LanguageCode.assign((char *)&buffer[0], 3); - networkNameLength = buffer[3]; - networkName.assign((char *)&buffer[4], networkNameLength); -} - -std::string MultilingualNetworkName::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -std::string MultilingualNetworkName::getNetworkName(void) const -{ - return networkName; -} - -MultilingualNetworkNameDescriptor::MultilingualNetworkNameDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += buffer[i + 5] + 4) - multilingualNetworkNames.push_back(new MultilingualNetworkName(&buffer[i + 2])); -} - -MultilingualNetworkNameDescriptor::~MultilingualNetworkNameDescriptor(void) -{ - for (MultilingualNetworkNameIterator i = multilingualNetworkNames.begin(); i != multilingualNetworkNames.end(); ++i) - delete *i; -} - -const MultilingualNetworkNameVector *MultilingualNetworkNameDescriptor::getMultilingualNetworkNames(void) const -{ - return &multilingualNetworkNames; -} - diff --git a/lib/dvb_si/multilingual_network_name_descriptor.h b/lib/dvb_si/multilingual_network_name_descriptor.h deleted file mode 100644 index b7df57b..0000000 --- a/lib/dvb_si/multilingual_network_name_descriptor.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * $Id: multilingual_network_name_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_multilingual_network_name_descriptor_h__ -#define __dvb_descriptor_multilingual_network_name_descriptor_h__ - -#include "descriptor.h" - -class MultilingualNetworkName -{ - protected: - std::string iso639LanguageCode; - unsigned networkNameLength : 8; - std::string networkName; - - public: - MultilingualNetworkName(const uint8_t * const buffer); - - std::string getIso639LanguageCode(void) const; - std::string getNetworkName(void) const; -}; - -typedef std::vector MultilingualNetworkNameVector; -typedef MultilingualNetworkNameVector::iterator MultilingualNetworkNameIterator; -typedef MultilingualNetworkNameVector::const_iterator MultilingualNetworkNameConstIterator; - -class MultilingualNetworkNameDescriptor : public Descriptor -{ - protected: - MultilingualNetworkNameVector multilingualNetworkNames; - - public: - MultilingualNetworkNameDescriptor(const uint8_t * const buffer); - ~MultilingualNetworkNameDescriptor(void); - - const MultilingualNetworkNameVector *getMultilingualNetworkNames(void) const; -}; - -#endif /* __dvb_descriptor_multilingual_network_name_descriptor_h__ */ diff --git a/lib/dvb_si/multilingual_service_name_descriptor.cpp b/lib/dvb_si/multilingual_service_name_descriptor.cpp deleted file mode 100644 index d811aae..0000000 --- a/lib/dvb_si/multilingual_service_name_descriptor.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * $Id: multilingual_service_name_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -MultilingualServiceName::MultilingualServiceName(const uint8_t * const buffer) -{ - iso639LanguageCode.assign((char *)&buffer[0], 3); - serviceProviderNameLength = buffer[3]; - serviceProviderName.assign((char *)&buffer[4], serviceProviderNameLength); - serviceNameLength = buffer[serviceProviderNameLength + 4]; - serviceName.assign((char *)&buffer[serviceProviderNameLength + 5], serviceNameLength); -} - -std::string MultilingualServiceName::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -std::string MultilingualServiceName::getServiceProviderName(void) const -{ - return serviceProviderName; -} - -std::string MultilingualServiceName::getServiceName(void) const -{ - return serviceName; -} - -MultilingualServiceNameDescriptor::MultilingualServiceNameDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - MultilingualServiceName *name; - - for (uint16_t i = 0; i < descriptorLength; i += name->serviceProviderNameLength + name->serviceNameLength + 5) { - name = new MultilingualServiceName(&buffer[i + 2]); - multilingualServiceNames.push_back(name); - } -} - -MultilingualServiceNameDescriptor::~MultilingualServiceNameDescriptor(void) -{ - for (MultilingualServiceNameIterator i = multilingualServiceNames.begin(); i != multilingualServiceNames.end(); ++i) - delete *i; -} - -const MultilingualServiceNameVector *MultilingualServiceNameDescriptor::getMultilingualServiceNames(void) const -{ - return &multilingualServiceNames; -} - diff --git a/lib/dvb_si/multilingual_service_name_descriptor.h b/lib/dvb_si/multilingual_service_name_descriptor.h deleted file mode 100644 index 5979b5c..0000000 --- a/lib/dvb_si/multilingual_service_name_descriptor.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * $Id: multilingual_service_name_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_multilingual_service_name_descriptor_h__ -#define __dvb_descriptor_multilingual_service_name_descriptor_h__ - -#include "descriptor.h" - -class MultilingualServiceName -{ - protected: - std::string iso639LanguageCode; - unsigned serviceProviderNameLength : 8; - std::string serviceProviderName; - unsigned serviceNameLength : 8; - std::string serviceName; - - public: - MultilingualServiceName(const uint8_t * const buffer); - - std::string getIso639LanguageCode(void) const; - std::string getServiceProviderName(void) const; - std::string getServiceName(void) const; - - friend class MultilingualServiceNameDescriptor; -}; - -typedef std::vector MultilingualServiceNameVector; -typedef MultilingualServiceNameVector::iterator MultilingualServiceNameIterator; -typedef MultilingualServiceNameVector::const_iterator MultilingualServiceNameConstIterator; - -class MultilingualServiceNameDescriptor : public Descriptor -{ - protected: - MultilingualServiceNameVector multilingualServiceNames; - - public: - MultilingualServiceNameDescriptor(const uint8_t * const buffer); - ~MultilingualServiceNameDescriptor(void); - - const MultilingualServiceNameVector *getMultilingualServiceNames(void) const; -}; - -#endif /* __dvb_descriptor_multilingual_service_name_descriptor_h__ */ diff --git a/lib/dvb_si/multiplex_buffer_utilization_descriptor.h b/lib/dvb_si/multiplex_buffer_utilization_descriptor.h deleted file mode 100644 index dc7a160..0000000 --- a/lib/dvb_si/multiplex_buffer_utilization_descriptor.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * $Id: multiplex_buffer_utilization_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_multiplex_buffer_utilization_descriptor_h__ -#define __dvb_descriptor_multiplex_buffer_utilization_descriptor_h__ - -#include "descriptor.h" - -class MultiplexBufferUtilizationDescriptor : public Descriptor -{ - protected: - unsigned boundValidFlag : 1; - unsigned ltwOffsetLowerBound : 15; - unsigned reserved : 1; - unsigned ltwOffsetUpperBound : 15; - - public: - MultiplexBufferUtilizationDescriptor(const uint8_t * const buffer); - - uint8_t getBoundValidFlag(void) const; - uint16_t getLtwOffsetLowerBound(void) const; - uint16_t getLtwOffsetUpperBound(void) const; -}; - -#endif /* __dvb_descriptor_multiplex_buffer_utilization_descriptor_h__ */ diff --git a/lib/dvb_si/network_name_descriptor.cpp b/lib/dvb_si/network_name_descriptor.cpp deleted file mode 100644 index 3ba3872..0000000 --- a/lib/dvb_si/network_name_descriptor.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id: network_name_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -NetworkNameDescriptor::NetworkNameDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - networkName.assign((char *)&buffer[2], descriptorLength); -} - -std::string NetworkNameDescriptor::getNetworkName(void) const -{ - return networkName; -} - diff --git a/lib/dvb_si/network_name_descriptor.h b/lib/dvb_si/network_name_descriptor.h deleted file mode 100644 index 694e370..0000000 --- a/lib/dvb_si/network_name_descriptor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: network_name_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_network_name_descriptor_h__ -#define __dvb_descriptor_network_name_descriptor_h__ - -#include "descriptor.h" - -class NetworkNameDescriptor : public Descriptor -{ - protected: - std::string networkName; - - public: - NetworkNameDescriptor(const uint8_t * const buffer); - - std::string getNetworkName(void) const; -}; - -#endif /* __dvb_descriptor_network_name_descriptor_h__ */ diff --git a/lib/dvb_si/nit.cpp b/lib/dvb_si/nit.cpp deleted file mode 100644 index dcf90e3..0000000 --- a/lib/dvb_si/nit.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* - * $Id: nit.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -TransportStreamInfo::TransportStreamInfo(const uint8_t * const buffer) -{ - transportStreamId = (buffer[0] << 8) | buffer[1]; - originalNetworkId = (buffer[2] << 8) | buffer[3]; - reserved1 = (buffer[4] >> 8) & 0x0F; - transportDescriptorsLength = ((buffer[4] & 0x0F) << 8) | buffer[5]; - - for (uint16_t i = 6; i < transportDescriptorsLength + 6; i += buffer[i + 1] + 2) - descriptor(&buffer[i]); -} - -uint16_t TransportStreamInfo::getTransportStreamId(void) const -{ - return transportStreamId; -} - -uint16_t TransportStreamInfo::getOriginalNetworkId(void) const -{ - return originalNetworkId; -} - -NetworkInformationTable::NetworkInformationTable(const uint8_t * const buffer) : LongCrcTable(buffer) -{ - reserved4 = (buffer[8] >> 5) & 0x0F; - networkDescriptorsLength = ((buffer[8] & 0x0F) << 8) | buffer[9]; - - for (uint16_t i = 10; i < networkDescriptorsLength + 10; i += buffer[i + 1] + 2) - descriptor(&buffer[i]); - - reserved5 = (buffer[networkDescriptorsLength + 10] >> 4) & 0x0F; - transportStreamLoopLength = ((buffer[networkDescriptorsLength + 10] & 0x0F) << 8) | buffer[networkDescriptorsLength + 11]; - - for (uint16_t i = networkDescriptorsLength + 12; i < sectionLength + 3 - 4; i += ((buffer[i + 4] & 0x0F) | buffer[i + 5]) + 6) - tsInfo.push_back(new TransportStreamInfo(&buffer[i])); -} - -NetworkInformationTable::~NetworkInformationTable(void) -{ - for (TransportStreamInfoIterator i = tsInfo.begin(); i != tsInfo.end(); ++i) - delete *i; -} - -const TransportStreamInfoVector *NetworkInformationTable::getTsInfo(void) const -{ - return &tsInfo; -} - diff --git a/lib/dvb_si/nit.h b/lib/dvb_si/nit.h deleted file mode 100644 index de92a34..0000000 --- a/lib/dvb_si/nit.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * $Id: nit.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_nit_h__ -#define __dvb_table_nit_h__ - -#include -#include "long_crc_table.h" - -class TransportStreamInfo : public DescriptorContainer -{ - protected: - unsigned transportStreamId : 16; - unsigned originalNetworkId : 16; - unsigned reserved1 : 4; - unsigned transportDescriptorsLength : 12; - - public: - TransportStreamInfo(const uint8_t * const buffer); - - uint16_t getTransportStreamId(void) const; - uint16_t getOriginalNetworkId(void) const; -}; - -typedef std::vector TransportStreamInfoVector; -typedef TransportStreamInfoVector::iterator TransportStreamInfoIterator; -typedef TransportStreamInfoVector::const_iterator TransportStreamInfoConstIterator; - -class NetworkInformationTable : public LongCrcTable, public DescriptorContainer -{ - protected: - unsigned reserved4 : 3; - unsigned networkDescriptorsLength : 12; - unsigned reserved5 : 4; - unsigned transportStreamLoopLength : 12; - TransportStreamInfoVector tsInfo; - - public: - NetworkInformationTable(const uint8_t * const buffer); - ~NetworkInformationTable(void); - - static const enum PacketId PID = PID_NIT; - static const enum TableId TID = TID_NIT_ACTUAL; - static const uint32_t TIMEOUT = 12000; - - const TransportStreamInfoVector *getTsInfo(void) const; -}; - -typedef std::vector NetworkInformationTableVector; -typedef NetworkInformationTableVector::iterator NetworkInformationTableIterator; -typedef NetworkInformationTableVector::const_iterator NetworkInformationTableConstIterator; - -#endif /* __dvb_table_nit_h__ */ diff --git a/lib/dvb_si/nvod_reference_descriptor.cpp b/lib/dvb_si/nvod_reference_descriptor.cpp deleted file mode 100644 index d742581..0000000 --- a/lib/dvb_si/nvod_reference_descriptor.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* - * $Id: nvod_reference_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - - -NvodReference::NvodReference(const uint8_t * const buffer) -{ - transportStreamId = (buffer[0] << 8) | buffer[1]; - originalNetworkId = (buffer[2] << 8) | buffer[3]; - serviceId = (buffer[4] << 8) | buffer[5]; -} - -uint16_t NvodReference::getTransportStreamId(void) const -{ - return transportStreamId; -} - -uint16_t NvodReference::getOriginalNetworkId(void) const -{ - return originalNetworkId; -} - -uint16_t NvodReference::getServiceId(void) const -{ - return serviceId; -} - -NvodReferenceDescriptor::NvodReferenceDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += 6) - nvodReferences.push_back(new NvodReference(&buffer[i + 2])); -} - -NvodReferenceDescriptor::~NvodReferenceDescriptor(void) -{ - for (NvodReferenceIterator i = nvodReferences.begin(); i != nvodReferences.end(); ++i) - delete *i; -} - -const NvodReferenceVector *NvodReferenceDescriptor::getNvodReferences(void) const -{ - return &nvodReferences; -} - diff --git a/lib/dvb_si/nvod_reference_descriptor.h b/lib/dvb_si/nvod_reference_descriptor.h deleted file mode 100644 index 4b434c3..0000000 --- a/lib/dvb_si/nvod_reference_descriptor.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * $Id: nvod_reference_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_nvod_reference_descriptor_h__ -#define __dvb_descriptor_nvod_reference_descriptor_h__ - -#include "descriptor.h" - -class NvodReference -{ - protected: - unsigned transportStreamId : 16; - unsigned originalNetworkId : 16; - unsigned serviceId : 16; - - public: - NvodReference(const uint8_t * const buffer); - - uint16_t getTransportStreamId(void) const; - uint16_t getOriginalNetworkId(void) const; - uint16_t getServiceId(void) const; -}; - -typedef std::vector NvodReferenceVector; -typedef NvodReferenceVector::iterator NvodReferenceIterator; -typedef NvodReferenceVector::const_iterator NvodReferenceConstIterator; - -class NvodReferenceDescriptor : public Descriptor -{ - protected: - NvodReferenceVector nvodReferences; - - public: - NvodReferenceDescriptor(const uint8_t * const buffer); - ~NvodReferenceDescriptor(void); - - const NvodReferenceVector* getNvodReferences(void) const; -}; - -#endif /* __dvb_descriptor_nvod_reference_descriptor_h__ */ diff --git a/lib/dvb_si/packet_id.h b/lib/dvb_si/packet_id.h deleted file mode 100644 index 3f18f08..0000000 --- a/lib/dvb_si/packet_id.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * $Id: packet_id.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_id_packet_id_h__ -#define __dvb_id_packet_id_h__ - -enum PacketId { - /* ETSI EN 300 468 V1.5.1 (2003-01) */ - PID_PAT = 0x0000, - PID_CAT = 0x0001, - PID_TSDT = 0x0002, - PID_NIT = 0x0010, - PID_BAT = 0x0011, - PID_SDT = 0x0011, - PID_EIT = 0x0012, - PID_RST = 0x0013, - PID_TDT = 0x0014, - PID_TOT = 0x0014, - PID_NS = 0x0015, /* network synchronization */ - PID_IS = 0x001C, /* inband signaling (SIS-12) */ - PID_M = 0x001D, /* measurement (SIS-10) */ - PID_DIT = 0x001E, - PID_SIT = 0x001F, - PID_RESERVED = 0x1FFF -}; - -#endif /* __dvb_id_packet_id_h__ */ diff --git a/lib/dvb_si/parental_rating_descriptor.cpp b/lib/dvb_si/parental_rating_descriptor.cpp deleted file mode 100644 index 3926267..0000000 --- a/lib/dvb_si/parental_rating_descriptor.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id: parental_rating_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ParentalRating::ParentalRating(const uint8_t * const buffer) -{ - countryCode.assign((char *)&buffer[0], 3); - rating = buffer[3]; -} - -std::string ParentalRating::getCountryCode(void) const -{ - return countryCode; -} - -uint8_t ParentalRating::getRating(void) const -{ - return rating; -} - -ParentalRatingDescriptor::ParentalRatingDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += 4) - parentalRatings.push_back(new ParentalRating(&buffer[i + 2])); -} - -ParentalRatingDescriptor::~ParentalRatingDescriptor(void) -{ - for (ParentalRatingIterator i = parentalRatings.begin(); i != parentalRatings.end(); ++i) - delete *i; -} - -const ParentalRatingVector *ParentalRatingDescriptor::getParentalRatings(void) const -{ - return &parentalRatings; -} - diff --git a/lib/dvb_si/parental_rating_descriptor.h b/lib/dvb_si/parental_rating_descriptor.h deleted file mode 100644 index 5528872..0000000 --- a/lib/dvb_si/parental_rating_descriptor.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id: parental_rating_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_parental_rating_descriptor_h__ -#define __dvb_descriptor_parental_rating_descriptor_h__ - -#include "descriptor.h" - -class ParentalRating -{ - protected: - std::string countryCode; - unsigned rating : 8; - - public: - ParentalRating(const uint8_t * const buffer); - - std::string getCountryCode(void) const; - uint8_t getRating(void) const; -}; - -typedef std::vector ParentalRatingVector; -typedef ParentalRatingVector::iterator ParentalRatingIterator; -typedef ParentalRatingVector::const_iterator ParentalRatingConstIterator; - -class ParentalRatingDescriptor : public Descriptor -{ - protected: - ParentalRatingVector parentalRatings; - - public: - ParentalRatingDescriptor(const uint8_t * const buffer); - ~ParentalRatingDescriptor(void); - - const ParentalRatingVector *getParentalRatings(void) const; -}; - -#endif /* __dvb_descriptor_parental_rating_descriptor_h__ */ diff --git a/lib/dvb_si/partial_transport_stream_descriptor.h b/lib/dvb_si/partial_transport_stream_descriptor.h deleted file mode 100644 index dc91226..0000000 --- a/lib/dvb_si/partial_transport_stream_descriptor.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * $Id: partial_transport_stream_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_partial_transport_stream_descriptor_h__ -#define __dvb_descriptor_partial_transport_stream_descriptor_h__ - -#include "descriptor.h" - -class PartialTransportStreamDescriptor : public Descriptor -{ - protected: - unsigned reserved : 2; - unsigned peakRate : 22; - unsigned reserved2 : 2; - unsigned minimumOverallSmootingRate : 22; - unsigned reserved3 : 2; - unsigned maximumOverallSmoothingBuffer : 14; - - public: - PartialTransportStreamDescriptor(const uint8_t * const buffer); - - uint32_t getPeakRate(void) const; - uint32_t getMinimumOverallSmoothingRate(void) const; - uint16_t getMaximumOverallSmoothingBuffer(void) const; -}; - -#endif /* __dvb_descriptor_partial_transport_stream_descriptor_h__ */ diff --git a/lib/dvb_si/pat.cpp b/lib/dvb_si/pat.cpp deleted file mode 100644 index 498f67f..0000000 --- a/lib/dvb_si/pat.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - * $Id: pat.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -NetworkAssociation::NetworkAssociation(const uint8_t * const buffer) -{ - programNumber = (buffer[0] << 8) | buffer[1]; - reserved = (buffer[2] >> 5) & 0x07; - networkPid = ((buffer[2] & 0x1F) << 8) | buffer[3]; -} - -uint16_t NetworkAssociation::getNetworkPid(void) const -{ - return networkPid; -} - -ProgramAssociation::ProgramAssociation(const uint8_t * const buffer) -{ - programNumber = (buffer[0] << 8) | buffer[1]; - reserved = (buffer[2] >> 5) & 0x07; - programMapPid = ((buffer[2] & 0x1F) << 8) | buffer[3]; -} - -uint16_t ProgramAssociation::getProgramNumber(void) const -{ - return programNumber; -} - -uint16_t ProgramAssociation::getProgramMapPid(void) const -{ - return programMapPid; -} - -ProgramAssociationTable::ProgramAssociationTable(const uint8_t * const buffer) : LongCrcTable(buffer) -{ - for (uint16_t i = 8; i < sectionLength - 1; i += 4) { - if (((buffer[i] << 8) | buffer[i + 1]) == 0) - networks.push_back(new NetworkAssociation(&buffer[i])); - else - programs.push_back(new ProgramAssociation(&buffer[i])); - } -} - -ProgramAssociationTable::~ProgramAssociationTable(void) -{ - for (NetworkAssociationIterator i = networks.begin(); i != networks.end(); ++i) - delete *i; - - for (ProgramAssociationIterator i = programs.begin(); i != programs.end(); ++i) - delete *i; -} - -const NetworkAssociationVector *ProgramAssociationTable::getNetworks(void) const -{ - return &networks; -} - -const ProgramAssociationVector *ProgramAssociationTable::getPrograms(void) const -{ - return &programs; -} - diff --git a/lib/dvb_si/pat.h b/lib/dvb_si/pat.h deleted file mode 100644 index f17586a..0000000 --- a/lib/dvb_si/pat.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * $Id: pat.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_pat_h__ -#define __dvb_table_pat_h__ - -#include "long_crc_table.h" - -class NetworkAssociation -{ - protected: - unsigned programNumber : 16; - unsigned reserved : 3; - unsigned networkPid : 13; - - public: - NetworkAssociation(const uint8_t * buffer); - - uint16_t getNetworkPid(void) const; -}; - -typedef std::vector NetworkAssociationVector; -typedef NetworkAssociationVector::iterator NetworkAssociationIterator; -typedef NetworkAssociationVector::const_iterator NetworkAssociationConstIterator; - -class ProgramAssociation -{ - protected: - unsigned programNumber : 16; - unsigned reserved : 3; - unsigned programMapPid : 13; - - public: - ProgramAssociation(const uint8_t * buffer); - - uint16_t getProgramNumber(void) const; - uint16_t getProgramMapPid(void) const; -}; - -typedef std::vector ProgramAssociationVector; -typedef ProgramAssociationVector::iterator ProgramAssociationIterator; -typedef ProgramAssociationVector::const_iterator ProgramAssociationConstIterator; - -class ProgramAssociationTable : public LongCrcTable -{ - protected: - NetworkAssociationVector networks; - ProgramAssociationVector programs; - - public: - ProgramAssociationTable(const uint8_t * const buffer); - ~ProgramAssociationTable(void); - - static const enum PacketId PID = PID_PAT; - static const enum TableId TID = TID_PAT; - static const uint32_t TIMEOUT = 1200; - - const NetworkAssociationVector *getNetworks(void) const; - const ProgramAssociationVector *getPrograms(void) const; -}; - -typedef std::vector ProgramAssociationTableVector; -typedef ProgramAssociationTableVector::iterator ProgramAssociationTableIterator; -typedef ProgramAssociationTableVector::const_iterator ProgramAssociationTableConstIterator; - -#endif /* __dvb_table_pat_h__ */ diff --git a/lib/dvb_si/pdc_descriptor.cpp b/lib/dvb_si/pdc_descriptor.cpp deleted file mode 100644 index 8a8c61a..0000000 --- a/lib/dvb_si/pdc_descriptor.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - * $Id: pdc_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -PdcDescriptor::PdcDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - reserved = (buffer[2] >> 4) & 0x0f; - programmeIdentificationLabel = ((buffer[2] & 0x0f) << 16) | buffer[3] | buffer[4]; -} - -uint32_t PdcDescriptor::getProgrammeIdentificationLabel(void) const -{ - return programmeIdentificationLabel; -} - diff --git a/lib/dvb_si/pdc_descriptor.h b/lib/dvb_si/pdc_descriptor.h deleted file mode 100644 index 0c8851b..0000000 --- a/lib/dvb_si/pdc_descriptor.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * $Id: pdc_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_pdc_descriptor_h__ -#define __dvb_descriptor_pdc_descriptor_h__ - -#include "descriptor.h" - -class PdcDescriptor : public Descriptor -{ - protected: - unsigned reserved : 4; - unsigned programmeIdentificationLabel : 20; - - public: - PdcDescriptor(const uint8_t * const buffer); - - uint32_t getProgrammeIdentificationLabel(void) const; -}; - -#endif /* __dvb_descriptor_pcd_descriptor_h__ */ diff --git a/lib/dvb_si/pmt.cpp b/lib/dvb_si/pmt.cpp deleted file mode 100644 index 1c0da43..0000000 --- a/lib/dvb_si/pmt.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - * $Id: pmt.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ElementaryStreamInfo::ElementaryStreamInfo(const uint8_t * const buffer) -{ - streamType = buffer[0]; - reserved1 = (buffer[1] >> 5) & 0x07; - elementaryPid = ((buffer[1] & 0x1F) << 8) | buffer[2]; - reserved2 = (buffer[3] >> 4) & 0x0F; - esInfoLength = ((buffer[3] & 0x0F) << 8) | buffer[4]; - - for (uint16_t i = 5; i < esInfoLength + 5; i += buffer[i + 1] + 2) - descriptor(&buffer[i]); -} - -uint8_t ElementaryStreamInfo::getType(void) const -{ - return streamType; -} - -uint16_t ElementaryStreamInfo::getPid(void) const -{ - return elementaryPid; -} - -ProgramMapTable::ProgramMapTable(const uint8_t * const buffer) : LongCrcTable(buffer) -{ - reserved4 = (buffer[8] >> 5) & 0x07; - pcrPid = ((buffer[8] & 0x1F) << 8) | buffer[9]; - reserved5 = (buffer[10] >> 4) & 0x0F; - programInfoLength = ((buffer[10] & 0x0F) << 8) | buffer[11]; - - for (uint16_t i = 12; i < programInfoLength + 12; i += buffer[i + 1] + 2) - descriptor(&buffer[i]); - - for (uint16_t i = programInfoLength + 12; i < sectionLength - 1; i += ((buffer[i + 3] & 0x0F) | buffer[i + 4]) + 5) - esInfo.push_back(new ElementaryStreamInfo(&buffer[i])); -} - -uint16_t ProgramMapTable::getPcrPid(void) const -{ - return pcrPid; -} - -const ElementaryStreamInfoVector *ProgramMapTable::getEsInfo(void) const -{ - return &esInfo; -} - -ProgramMapTable::~ProgramMapTable(void) -{ - for (ElementaryStreamInfoIterator i = esInfo.begin(); i != esInfo.end(); ++i) - delete *i; -} - diff --git a/lib/dvb_si/pmt.h b/lib/dvb_si/pmt.h deleted file mode 100644 index c82413e..0000000 --- a/lib/dvb_si/pmt.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * $Id: pmt.h,v 1.2 2005-04-30 17:57:48 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_pmt_h__ -#define __dvb_table_pmt_h__ - -#include -#include "long_crc_table.h" - -class ElementaryStreamInfo : public DescriptorContainer -{ - protected: - unsigned streamType : 8; - unsigned reserved1 : 3; - unsigned elementaryPid : 13; - unsigned reserved2 : 4; - unsigned esInfoLength : 12; - - public: - ElementaryStreamInfo(const uint8_t * const buffer); - - uint8_t getType(void) const; - uint16_t getPid(void) const; - - friend class CaElementaryStreamInfo; - -}; - -typedef std::vector ElementaryStreamInfoVector; -typedef ElementaryStreamInfoVector::iterator ElementaryStreamInfoIterator; -typedef ElementaryStreamInfoVector::const_iterator ElementaryStreamInfoConstIterator; - -class ProgramMapTable : public LongCrcTable, public DescriptorContainer -{ - protected: - unsigned reserved4 : 3; - unsigned pcrPid : 13; - unsigned reserved5 : 4; - unsigned programInfoLength : 12; - ElementaryStreamInfoVector esInfo; - - public: - ProgramMapTable(const uint8_t * const buffer); - ~ProgramMapTable(void); - - static const enum TableId TID = TID_PMT; - static const uint32_t TIMEOUT = 6000; - - uint16_t getPcrPid(void) const; - const ElementaryStreamInfoVector *getEsInfo(void) const; - - friend class CaProgramMapTable; -}; - -typedef std::vector ProgramMapTableVector; -typedef ProgramMapTableVector::iterator ProgramMapTableIterator; -typedef ProgramMapTableVector::const_iterator ProgramMapTableConstIterator; - -#endif /* __dvb_table_pmt_h__ */ diff --git a/lib/dvb_si/private_data_indicator_descriptor.h b/lib/dvb_si/private_data_indicator_descriptor.h deleted file mode 100644 index 8e783cd..0000000 --- a/lib/dvb_si/private_data_indicator_descriptor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: private_data_indicator_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_private_data_indicator_descriptor_h__ -#define __dvb_descriptor_private_data_indicator_descriptor_h__ - -#include "descriptor.h" - -class PrivateDataIndicatorDescriptor : public Descriptor -{ - protected: - unsigned privateDataIndicator : 32; - - public: - PrivateDataIndicatorDescriptor(const uint8_t * const buffer); - - uint32_t getPrivateDataIndicator(void) const; -}; - -#endif /* __dvb_descriptor_private_data_indicator_descriptor_h__ */ diff --git a/lib/dvb_si/private_data_specifier_descriptor.cpp b/lib/dvb_si/private_data_specifier_descriptor.cpp deleted file mode 100644 index dedcb71..0000000 --- a/lib/dvb_si/private_data_specifier_descriptor.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id: private_data_specifier_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -PrivateDataSpecifierDescriptor::PrivateDataSpecifierDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - privateDataSpecifier = (buffer[2] << 24) | (buffer[3] << 16) | (buffer[4] << 8) | buffer[5]; -} - -uint32_t PrivateDataSpecifierDescriptor::getPrivateDataSpecifier(void) const -{ - return privateDataSpecifier; -} - diff --git a/lib/dvb_si/private_data_specifier_descriptor.h b/lib/dvb_si/private_data_specifier_descriptor.h deleted file mode 100644 index 53b0fb5..0000000 --- a/lib/dvb_si/private_data_specifier_descriptor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: private_data_specifier_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_private_data_specifier_descriptor_h__ -#define __dvb_descriptor_private_data_specifier_descriptor_h__ - -#include "descriptor.h" - -class PrivateDataSpecifierDescriptor : public Descriptor -{ - protected: - unsigned privateDataSpecifier : 32; - - public: - PrivateDataSpecifierDescriptor(const uint8_t * const buffer); - - uint32_t getPrivateDataSpecifier(void) const; -}; - -#endif /* __dvb_descriptor_private_data_specifier_descriptor_h__ */ diff --git a/lib/dvb_si/registration_descriptor.h b/lib/dvb_si/registration_descriptor.h deleted file mode 100644 index 0f766a1..0000000 --- a/lib/dvb_si/registration_descriptor.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: registration_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_registration_descriptor_h__ -#define __dvb_descriptor_registration_descriptor_h__ - -#include "descriptor.h" - -typedef std::vector AdditionalIdentificationInfoVector; -typedef AdditionalIdentificationInfoVector::iterator AdditionalIdentificationInfoIterator; -typedef AdditionalIdentificationInfoVector::const_iterator AdditionalIdentificationInfoConstIterator; - -class RegistrationDescriptor : public Descriptor -{ - protected: - unsigned formatIdentifier : 32; - AdditionalIdentificationInfoVector additionalIdentificationInfo; - - private: - RegistrationDescriptor(const uint8_t * const buffer); - - uint32_t getFormatIdentifier(void) const; - const AdditionalIdentificationInfoVector *getAdditionalIdentificationInfo(void) const; -}; - -#endif /* __dvb_descriptor_registration_descriptor_h__ */ diff --git a/lib/dvb_si/satellite_delivery_system_descriptor.cpp b/lib/dvb_si/satellite_delivery_system_descriptor.cpp deleted file mode 100644 index 32ff194..0000000 --- a/lib/dvb_si/satellite_delivery_system_descriptor.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* - * $Id: satellite_delivery_system_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -SatelliteDeliverySystemDescriptor::SatelliteDeliverySystemDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - frequency = - ( - ((buffer[2] >> 4) * 10000000) + - ((buffer[2] & 0x0F) * 1000000) + - ((buffer[3] >> 4) * 100000) + - ((buffer[3] & 0x0F) * 10000) + - ((buffer[4] >> 4) * 1000) + - ((buffer[4] & 0x0F) * 100) + - ((buffer[5] >> 4) * 10) + - ((buffer[5] & 0x0F) * 1) - ); - - orbitalPosition = (buffer[6] << 8) | buffer[7]; - westEastFlag = (buffer[8] >> 7) & 0x01; - polarization = (buffer[8] >> 5) & 0x03; - modulation = buffer[8] & 0x1F; - - symbolRate = - ( - ((buffer[9] >> 4) * 1000000) + - ((buffer[9] & 0x0F) * 100000) + - ((buffer[10] >> 4) * 10000) + - ((buffer[10] & 0x0F) * 1000) + - ((buffer[11] >> 4) * 100) + - ((buffer[11] & 0x0F) * 10) + - ((buffer[12] >> 4) * 1) - ); - - fecInner = buffer[12] & 0x0F; -} - -uint32_t SatelliteDeliverySystemDescriptor::getFrequency(void) const -{ - return frequency; -} - -uint16_t SatelliteDeliverySystemDescriptor::getOrbitalPosition(void) const -{ - return orbitalPosition; -} - -uint8_t SatelliteDeliverySystemDescriptor::getWestEastFlag(void) const -{ - return westEastFlag; -} - -uint8_t SatelliteDeliverySystemDescriptor::getPolarization(void) const -{ - return polarization; -} - -uint8_t SatelliteDeliverySystemDescriptor::getModulation(void) const -{ - return modulation; -} - -uint32_t SatelliteDeliverySystemDescriptor::getSymbolRate(void) const -{ - return symbolRate; -} - -uint8_t SatelliteDeliverySystemDescriptor::getFecInner(void) const -{ - return fecInner; -} - diff --git a/lib/dvb_si/satellite_delivery_system_descriptor.h b/lib/dvb_si/satellite_delivery_system_descriptor.h deleted file mode 100644 index b6c2a66..0000000 --- a/lib/dvb_si/satellite_delivery_system_descriptor.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * $Id: satellite_delivery_system_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_satellite_delivery_system_descriptor_h__ -#define __dvb_descriptor_satellite_delivery_system_descriptor_h__ - -#include "descriptor.h" - -class SatelliteDeliverySystemDescriptor : public Descriptor -{ - protected: - unsigned frequency : 32; - unsigned orbitalPosition : 16; - unsigned westEastFlag : 1; - unsigned polarization : 2; - unsigned modulation : 5; - unsigned symbolRate : 28; - unsigned fecInner : 4; - - public: - SatelliteDeliverySystemDescriptor(const uint8_t * const buffer); - - uint32_t getFrequency(void) const; - uint16_t getOrbitalPosition(void) const; - uint8_t getWestEastFlag(void) const; - uint8_t getPolarization(void) const; - uint8_t getModulation(void) const; - uint32_t getSymbolRate(void) const; - uint8_t getFecInner(void) const; -}; - -#endif /* __dvb_descriptor_satellite_delivery_system_descriptor_h__ */ diff --git a/lib/dvb_si/sdt.cpp b/lib/dvb_si/sdt.cpp deleted file mode 100644 index cce8103..0000000 --- a/lib/dvb_si/sdt.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* - * $Id: sdt.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ServiceDescription::ServiceDescription(const uint8_t * const buffer) -{ - serviceId = (buffer[0] << 8) | buffer[1]; - reserved1 = (buffer[2] >> 2) & 0x3F; - eitScheduleFlag = (buffer[2] >> 1) & 0x01; - eitPresentFollowingFlag = buffer[2] & 0x01; - runningStatus = (buffer[3] >> 5) & 0x07; - freeCaMode = (buffer[3] >> 4) & 0x01; - descriptorsLoopLength = ((buffer[3] & 0x0F) << 8) | buffer[4]; - - for (uint16_t i = 5; i < descriptorsLoopLength + 5; i += buffer[i + 1] + 2) - descriptor(&buffer[i]); -} - -uint16_t ServiceDescription::getServiceId(void) const -{ - return serviceId; -} - -uint8_t ServiceDescription::getEitScheduleFlag(void) const -{ - return eitScheduleFlag; -} - -uint8_t ServiceDescription::getEitPresentFollowingFlag(void) const -{ - return eitPresentFollowingFlag; -} - -uint8_t ServiceDescription::getRunningStatus(void) const -{ - return runningStatus; -} - -uint8_t ServiceDescription::getFreeCaMode(void) const -{ - return freeCaMode; -} - -ServiceDescriptionTable::ServiceDescriptionTable(const uint8_t * const buffer) : LongCrcTable (buffer) -{ - originalNetworkId = (buffer[8] << 8) | buffer[9]; - reserved4 = buffer[10]; - - for (uint16_t i = 11; i < sectionLength - 1; i += ((buffer[i + 3] & 0x0F) | buffer[i + 4]) + 5) - description.push_back(new ServiceDescription(&buffer[i])); -} - -ServiceDescriptionTable::~ServiceDescriptionTable(void) -{ - for (ServiceDescriptionIterator i = description.begin(); i != description.end(); ++i) - delete *i; -} - -uint16_t ServiceDescriptionTable::getOriginalNetworkId(void) const -{ - return originalNetworkId; -} - -const ServiceDescriptionVector *ServiceDescriptionTable::getDescriptions(void) const -{ - return &description; -} - diff --git a/lib/dvb_si/sdt.h b/lib/dvb_si/sdt.h deleted file mode 100644 index e1d511b..0000000 --- a/lib/dvb_si/sdt.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * $Id: sdt.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002 by Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_sdt_h__ -#define __dvb_table_sdt_h__ - -#include -#include "long_crc_table.h" - -class ServiceDescription : public DescriptorContainer -{ - protected: - unsigned serviceId : 16; - unsigned reserved1 : 6; - unsigned eitScheduleFlag : 1; - unsigned eitPresentFollowingFlag : 1; - unsigned runningStatus : 3; - unsigned freeCaMode : 1; - unsigned descriptorsLoopLength : 12; - - public: - ServiceDescription(const uint8_t * const buffer); - - uint16_t getServiceId(void) const; - uint8_t getEitScheduleFlag(void) const; - uint8_t getEitPresentFollowingFlag(void) const; - uint8_t getRunningStatus(void) const; - uint8_t getFreeCaMode(void) const; -}; - -typedef std::vector ServiceDescriptionVector; -typedef ServiceDescriptionVector::iterator ServiceDescriptionIterator; -typedef ServiceDescriptionVector::const_iterator ServiceDescriptionConstIterator; - -class ServiceDescriptionTable : public LongCrcTable -{ - protected: - unsigned originalNetworkId : 16; - unsigned reserved4 : 8; - ServiceDescriptionVector description; - - public: - ServiceDescriptionTable(const uint8_t * const buffer); - ~ServiceDescriptionTable(void); - - static const enum PacketId PID = PID_SDT; - static const enum TableId TID = TID_SDT_ACTUAL; - static const uint32_t TIMEOUT = 3000; - - uint16_t getOriginalNetworkId(void) const; - uint16_t getTransportStreamId(void) const { return getTableIdExtension(); } - const ServiceDescriptionVector *getDescriptions(void) const; -}; - -typedef std::vector ServiceDescriptionTableVector; -typedef ServiceDescriptionTableVector::iterator ServiceDescriptionTableIterator; -typedef ServiceDescriptionTableVector::const_iterator ServiceDescriptionTableConstIterator; - -#endif /* __dvb_table_sdt_h__ */ diff --git a/lib/dvb_si/service_descriptor.cpp b/lib/dvb_si/service_descriptor.cpp deleted file mode 100644 index a8bffc9..0000000 --- a/lib/dvb_si/service_descriptor.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * $Id: service_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ServiceDescriptor::ServiceDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - serviceType = buffer[2]; - serviceProviderNameLength = buffer[3]; - serviceProviderName.assign((char *)&buffer[4], serviceProviderNameLength); - serviceNameLength = buffer[serviceProviderNameLength + 4]; - serviceName.assign((char *)&buffer[serviceProviderNameLength + 5], serviceNameLength); -} - -uint8_t ServiceDescriptor::getServiceType(void) const -{ - return serviceType; -} - -std::string ServiceDescriptor::getServiceProviderName(void) const -{ - return serviceProviderName; -} - -std::string ServiceDescriptor::getServiceName(void) const -{ - return serviceName; -} - diff --git a/lib/dvb_si/service_descriptor.h b/lib/dvb_si/service_descriptor.h deleted file mode 100644 index 38ccc83..0000000 --- a/lib/dvb_si/service_descriptor.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: service_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_service_descriptor_h__ -#define __dvb_descriptor_service_descriptor_h__ - -#include "descriptor.h" - -class ServiceDescriptor : public Descriptor -{ - protected: - unsigned serviceType : 8; - unsigned serviceProviderNameLength : 8; - std::string serviceProviderName; - unsigned serviceNameLength : 8; - std::string serviceName; - - public: - ServiceDescriptor(const uint8_t * const buffer); - - uint8_t getServiceType(void) const; - std::string getServiceProviderName(void) const; - std::string getServiceName(void) const; -}; - -#endif /* __dvb_descriptor_service_descriptor_h__ */ diff --git a/lib/dvb_si/service_list_descriptor.cpp b/lib/dvb_si/service_list_descriptor.cpp deleted file mode 100644 index 0e595cb..0000000 --- a/lib/dvb_si/service_list_descriptor.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id: service_list_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ServiceListItem::ServiceListItem(const uint8_t * const buffer) -{ - serviceId = (buffer[0] << 8) | buffer[1]; - serviceType = buffer[2]; -} - -uint16_t ServiceListItem::getServiceId(void) const -{ - return serviceId; -} - -uint8_t ServiceListItem::getServiceType(void) const -{ - return serviceType; -} - -ServiceListDescriptor::ServiceListDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += 3) - serviceList.push_back(new ServiceListItem(&buffer[i + 2])); -} - -ServiceListDescriptor::~ServiceListDescriptor(void) -{ - for (ServiceListItemIterator i = serviceList.begin(); i != serviceList.end(); ++i) - delete *i; -} - -const ServiceListItemVector *ServiceListDescriptor::getServiceList(void) const -{ - return &serviceList; -} - diff --git a/lib/dvb_si/service_list_descriptor.h b/lib/dvb_si/service_list_descriptor.h deleted file mode 100644 index bd9c04f..0000000 --- a/lib/dvb_si/service_list_descriptor.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id: service_list_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_service_list_descriptor_h__ -#define __dvb_descriptor_service_list_descriptor_h__ - -#include "descriptor.h" - -class ServiceListItem -{ - protected: - unsigned serviceId : 16; - unsigned serviceType : 8; - - public: - ServiceListItem(const uint8_t * const buffer); - - uint16_t getServiceId(void) const; - uint8_t getServiceType(void) const; -}; - -typedef std::vector ServiceListItemVector; -typedef ServiceListItemVector::iterator ServiceListItemIterator; -typedef ServiceListItemVector::const_iterator ServiceListItemConstIterator; - -class ServiceListDescriptor : public Descriptor -{ - protected: - ServiceListItemVector serviceList; - - public: - ServiceListDescriptor(const uint8_t * const buffer); - ~ServiceListDescriptor(void); - - const ServiceListItemVector *getServiceList(void) const; -}; - -#endif /* __dvb_descriptor_service_list_descriptor_h__ */ diff --git a/lib/dvb_si/service_move_descriptor.cpp b/lib/dvb_si/service_move_descriptor.cpp deleted file mode 100644 index 817b480..0000000 --- a/lib/dvb_si/service_move_descriptor.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * $Id: service_move_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ServiceMoveDescriptor::ServiceMoveDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - newOriginalNetworkId = (buffer[2] << 8) | buffer[3]; - newTransportStreamId = (buffer[4] << 8) | buffer[5]; - newServiceId = (buffer[6] << 8) | buffer[7]; -} - -uint16_t ServiceMoveDescriptor::getNewOriginalNetworkId(void) const -{ - return newOriginalNetworkId; -} - -uint16_t ServiceMoveDescriptor::getNewTransportStreamId(void) const -{ - return newTransportStreamId; -} - -uint16_t ServiceMoveDescriptor::getNewServiceId(void) const -{ - return newServiceId; -} - diff --git a/lib/dvb_si/service_move_descriptor.h b/lib/dvb_si/service_move_descriptor.h deleted file mode 100644 index 55c10c4..0000000 --- a/lib/dvb_si/service_move_descriptor.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * $Id: service_move_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_service_move_descriptor_h__ -#define __dvb_descriptor_service_move_descriptor_h__ - -#include "descriptor.h" - -class ServiceMoveDescriptor : public Descriptor -{ - protected: - unsigned newOriginalNetworkId : 16; - unsigned newTransportStreamId : 16; - unsigned newServiceId : 16; - - public: - ServiceMoveDescriptor(const uint8_t * const buffer); - - uint16_t getNewOriginalNetworkId(void) const; - uint16_t getNewTransportStreamId(void) const; - uint16_t getNewServiceId(void) const; -}; - -#endif /* __dvb_descriptor_service_move_descriptor_h__ */ diff --git a/lib/dvb_si/service_type.h b/lib/dvb_si/service_type.h deleted file mode 100644 index 0871af4..0000000 --- a/lib/dvb_si/service_type.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * $Id: service_type.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_id_service_type_h__ -#define __dvb_id_service_type_h__ - -enum ServiceType { - /* 0x00 - 0x10: ETSI EN 300 468 V1.5.1 (2003-01) */ - ST_RESERVED = 0x00, - ST_DIGITAL_TELEVISION_SERVICE = 0x01, - ST_DIGITAL_RADIO_SOUND_SERVICE = 0x02, - ST_TELETEXT_SERVICE = 0x03, - ST_NVOD_REFERENCE_SERVICE = 0x04, - ST_NVOD_TIME_SHIFTED_SERVICE = 0x05, - ST_MOSAIC_SERVICE = 0x06, - ST_PAL_CODED_SIGNAL = 0x07, - ST_SECAM_CODED_SIGNAL = 0x08, - ST_D_D2_MAC = 0x09, - ST_FM_RADIO = 0x0A, - ST_NTSC_CODED_SIGNAL = 0x0B, - ST_DATA_BROADCAST_SERVICE = 0x0C, - ST_COMMON_INTERFACE_RESERVED = 0x0D, - ST_RCS_MAP = 0x0E, - ST_RCS_FLS = 0x0F, - ST_DVB_MHP_SERVICE = 0x10, - /* 0x11 - 0x7F: reserved for future use */ - ST_MULTIFEED = 0x69 - /* 0x80 - 0xFE: user defined */ - /* 0xFF: reserved for future use */ -}; - -#endif /* __dvb_id_service_type_h__ */ diff --git a/lib/dvb_si/short_crc_table.cpp b/lib/dvb_si/short_crc_table.cpp deleted file mode 100644 index bd626ff..0000000 --- a/lib/dvb_si/short_crc_table.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/* - * $Id: short_crc_table.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ShortCrcTable::ShortCrcTable(const uint8_t * const buffer) : ShortTable(buffer) -{ - crc32 = (buffer[sectionLength - 1] << 24) | - (buffer[sectionLength + 0] << 16) | - (buffer[sectionLength + 1] << 8) | - (buffer[sectionLength + 2]); -} - -uint32_t ShortCrcTable::getCrc32(void) const -{ - return crc32; -} - diff --git a/lib/dvb_si/short_crc_table.h b/lib/dvb_si/short_crc_table.h deleted file mode 100644 index d9ef6fd..0000000 --- a/lib/dvb_si/short_crc_table.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: short_crc_table.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_short_crc_table_h__ -#define __dvb_table_short_crc_table_h__ - -#include "short_table.h" - -class ShortCrcTable : public ShortTable -{ - protected: - unsigned crc32 : 32; - - public: - ShortCrcTable(const uint8_t * const buffer); - - static const uint8_t CRC32 = 1; - - uint32_t getCrc32(void) const; -}; - -typedef std::vector ShortCrcTableVector; -typedef ShortCrcTableVector::iterator ShortCrcTableIterator; -typedef ShortCrcTableVector::const_iterator ShortCrcTableConstIterator; - -#endif /* __dvb_table_short_crc_table_h__ */ diff --git a/lib/dvb_si/short_event_descriptor.cpp b/lib/dvb_si/short_event_descriptor.cpp deleted file mode 100644 index e5fffe8..0000000 --- a/lib/dvb_si/short_event_descriptor.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * $Id: short_event_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ShortEventDescriptor::ShortEventDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - iso639LanguageCode.assign((char *)&buffer[2], 3); - eventNameLength = buffer[5]; - eventName.assign((char *)&buffer[6], eventNameLength); - textLength = buffer[6 + eventNameLength]; - text.assign((char *)&buffer[7 + eventNameLength], textLength); -} - -std::string ShortEventDescriptor::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -std::string ShortEventDescriptor::getEventName(void) const -{ - return eventName; -} - -std::string ShortEventDescriptor::getText(void) const -{ - return text; -} - diff --git a/lib/dvb_si/short_event_descriptor.h b/lib/dvb_si/short_event_descriptor.h deleted file mode 100644 index e421cde..0000000 --- a/lib/dvb_si/short_event_descriptor.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: short_event_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_short_event_descriptor_h__ -#define __dvb_descriptor_short_event_descriptor_h__ - -#include "descriptor.h" - -class ShortEventDescriptor : public Descriptor -{ - protected: - std::string iso639LanguageCode; - unsigned eventNameLength : 8; - std::string eventName; - unsigned textLength : 8; - std::string text; - - public: - ShortEventDescriptor(const uint8_t * const buffer); - - std::string getIso639LanguageCode(void) const; - std::string getEventName(void) const; - std::string getText(void) const; -}; - -#endif /* __dvb_descriptor_short_event_descriptor_h__ */ diff --git a/lib/dvb_si/short_smoothing_buffer_descriptor.h b/lib/dvb_si/short_smoothing_buffer_descriptor.h deleted file mode 100644 index 66c0802..0000000 --- a/lib/dvb_si/short_smoothing_buffer_descriptor.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * $Id: short_smoothing_buffer_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_short_smoothing_buffer_descriptor_h__ -#define __dvb_descriptor_short_smoothing_buffer_descriptor_h__ - -#include "descriptor.h" - -class ShortSmoothingBufferDescriptor : public Descriptor -{ - protected: - unsigned sbSize : 2; - unsigned sbLeakRate : 6; - std::vector reserved; - - public: - ShortSmoothingBufferDescriptor(const uint8_t * const buffer); - - uint8_t getSbSize(void) const; - uint8_t getSbLeakRate(void) const; -}; - -#endif /* __dvb_descriptor_short_smoothing_buffer_descriptor_h__ */ diff --git a/lib/dvb_si/short_table.cpp b/lib/dvb_si/short_table.cpp deleted file mode 100644 index b162fe9..0000000 --- a/lib/dvb_si/short_table.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* - * $Id: short_table.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -ShortTable::ShortTable(const uint8_t * const buffer) -{ - tableId = buffer[0]; - sectionSyntaxIndicator = (buffer[1] >> 7) & 0x01; - reserved1 = (buffer[1] >> 6) & 0x01; - reserved2 = (buffer[1] >> 4) & 0x03; - sectionLength = ((buffer[1] & 0x0F) << 8) | buffer[2]; -} - -uint8_t ShortTable::getTableId(void) const -{ - return tableId; -} - -uint8_t ShortTable::getSectionSyntaxIndicator(void) const -{ - return sectionSyntaxIndicator; -} - -uint16_t ShortTable::getSectionLength(void) const -{ - return sectionLength; -} - diff --git a/lib/dvb_si/short_table.h b/lib/dvb_si/short_table.h deleted file mode 100644 index 743891f..0000000 --- a/lib/dvb_si/short_table.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * $Id: short_table.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_short_table_h__ -#define __dvb_table_short_table_h__ - -#include -#include -#include -#include - -class ShortTable -{ - protected: - unsigned tableId : 8; - unsigned sectionSyntaxIndicator : 1; - unsigned reserved1 : 1; - unsigned reserved2 : 2; - unsigned sectionLength : 12; - - public: - ShortTable(const uint8_t * const buffer); - - static const uint8_t CRC32 = 0; - static const uint16_t LENGTH = 1024; - static const enum PacketId PID = PID_RESERVED; - static const uint8_t SYNTAX = 0; - static const enum TableId TID = TID_RESERVED; - static const uint32_t TIMEOUT = 0; - - uint8_t getTableId(void) const; - uint8_t getSectionSyntaxIndicator(void) const; - uint16_t getSectionLength(void) const; -}; - -typedef std::vector ShortTableVector; -typedef ShortTableVector::iterator ShortTableIterator; -typedef ShortTableVector::const_iterator ShortTableConstIterator; - -#endif /* __dvb_table_short_table_h__ */ diff --git a/lib/dvb_si/smoothing_buffer_descriptor.h b/lib/dvb_si/smoothing_buffer_descriptor.h deleted file mode 100644 index 68ccdde..0000000 --- a/lib/dvb_si/smoothing_buffer_descriptor.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * $Id: smoothing_buffer_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_smoothing_buffer_descriptor_h__ -#define __dvb_descriptor_smoothing_buffer_descriptor_h__ - -#include "descriptor.h" - -class SmoothingBufferDescriptor : public Descriptor -{ - protected: - unsigned reserved : 2; - unsigned sbLeakRate : 22; - unsigned reserved2 : 2; - unsigned sbSize : 22; - - public: - SmoothingBufferDescriptor(const uint8_t * const buffer); - - uint32_t getSbLeakRate(void) const; - uint32_t getSbSize(void) const; -}; - -#endif /* __dvb_descriptor_smoothing_buffer_descriptor_h__ */ diff --git a/lib/dvb_si/std_descriptor.h b/lib/dvb_si/std_descriptor.h deleted file mode 100644 index a216b04..0000000 --- a/lib/dvb_si/std_descriptor.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * $Id: std_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_std_descriptor_h__ -#define __dvb_descriptor_std_descriptor_h__ - -#include "descriptor.h" - -class StdDescriptor : public Descriptor -{ - protected: - unsigned reserved : 7; - unsigned leakValidFlag : 1; - - public: - StdDescriptor(const uint8_t * const buffer); - - uint8_t getLeakValidFlag(void) const; -}; - -#endif /* __dvb_descriptor_std_descriptor_h__ */ diff --git a/lib/dvb_si/stream_identifier_descriptor.cpp b/lib/dvb_si/stream_identifier_descriptor.cpp deleted file mode 100644 index 5595699..0000000 --- a/lib/dvb_si/stream_identifier_descriptor.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id: stream_identifier_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -StreamIdentifierDescriptor::StreamIdentifierDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - componentTag = buffer[2]; -} - -uint8_t StreamIdentifierDescriptor::getComponentTag(void) const -{ - return componentTag; -} - diff --git a/lib/dvb_si/stream_identifier_descriptor.h b/lib/dvb_si/stream_identifier_descriptor.h deleted file mode 100644 index 4a37b4e..0000000 --- a/lib/dvb_si/stream_identifier_descriptor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: stream_identifier_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_stream_identifier_descriptor_h__ -#define __dvb_descriptor_stream_identifier_descriptor_h__ - -#include "descriptor.h" - -class StreamIdentifierDescriptor : public Descriptor -{ - protected: - unsigned componentTag : 8; - - public: - StreamIdentifierDescriptor(const uint8_t * const buffer); - - uint8_t getComponentTag(void) const; -}; - -#endif /* __dvb_descriptor_stream_identifier_descriptor_h__ */ diff --git a/lib/dvb_si/stream_type.h b/lib/dvb_si/stream_type.h deleted file mode 100644 index d9f68dd..0000000 --- a/lib/dvb_si/stream_type.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * $Id: stream_type.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_id_stream_type_h__ -#define __dvb_id_stream_type_h__ - -enum StreamType { - STT_RESERVED = 0x00, - STT_MPEG1_VIDEO = 0x01, - STT_MPEG2_VIDEO = 0x02, - STT_MPEG1_AUDIO = 0x03, - STT_MPEG2_AUDIO = 0x04, - STT_MPEG2_SECTIONS = 0x05, - STT_MPEG2_PES = 0x06, - STT_MHEG = 0x07, - STT_DSM_CC = 0x08, - STT_TREC_H_222_1 = 0x09, - STT_13818_6_A = 0x0A, - STT_13818_6_B = 0x0B, - STT_13818_6_C = 0x0C, - STT_13818_6_D = 0x0D, - STT_AUXILIARY = 0x0E, - STT_ADTS_AUDIO = 0x0F, - STT_MPEG4_VIDEO = 0x10, - STT_MPEG4_AUDIO = 0x11, - STT_MPEG4_PES = 0x12, - STT_MPEG4_SECTIONS = 0x13, - STT_SYNC_DOWNLOAD_PROT = 0x14 - /* 0x15 - 0x7F: ITU-T Rec. H.222.0 | ISO/IEC 13818-1 Reserved */ - /* 0x80 - 0xFF: User Private */ -}; - -#endif /* __dvb_id_stream_type_h__ */ diff --git a/lib/dvb_si/stuffing_descriptor.cpp b/lib/dvb_si/stuffing_descriptor.cpp deleted file mode 100644 index f672fbf..0000000 --- a/lib/dvb_si/stuffing_descriptor.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* - * $Id: stuffing_descriptor.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -StuffingDescriptor::StuffingDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; ++i) - stuffingByte.push_back(buffer[i + 2]); -} - diff --git a/lib/dvb_si/stuffing_descriptor.h b/lib/dvb_si/stuffing_descriptor.h deleted file mode 100644 index 31486c2..0000000 --- a/lib/dvb_si/stuffing_descriptor.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * $Id: stuffing_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_stuffing_descriptor_h__ -#define __dvb_descriptor_stuffing_descriptor_h__ - -#include "descriptor.h" - -class StuffingDescriptor : public Descriptor -{ - protected: - std::vector stuffingByte; - - public: - StuffingDescriptor(const uint8_t * const buffer); -}; - -#endif /* __dvb_descriptor_stuffing_descriptor_h__ */ diff --git a/lib/dvb_si/subtitling_descriptor.cpp b/lib/dvb_si/subtitling_descriptor.cpp deleted file mode 100644 index c2bdfb9..0000000 --- a/lib/dvb_si/subtitling_descriptor.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * $Id: subtitling_descriptor.cpp,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -Subtitling::Subtitling(const uint8_t * const buffer) -{ - iso639LanguageCode.assign((char *)&buffer[0], 3); - subtitlingType = buffer[3]; - compositionPageId = (buffer[4] << 8) | buffer[5]; - ancillaryPageId = (buffer[6] << 8) | buffer[7]; -} - -std::string Subtitling::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -uint8_t Subtitling::getSubtitlingType(void) const -{ - return subtitlingType; -} - -uint16_t Subtitling::getCompositionPageId(void) const -{ - return compositionPageId; -} - -uint16_t Subtitling::getAncillaryPageId(void) const -{ - return ancillaryPageId; -} - -SubtitlingDescriptor::SubtitlingDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += 8) - subtitlings.push_back(new Subtitling(&buffer[i + 2])); -} - -SubtitlingDescriptor::~SubtitlingDescriptor(void) -{ - for (SubtitlingIterator i = subtitlings.begin(); i != subtitlings.end(); ++i) - delete *i; -} - -const SubtitlingVector *SubtitlingDescriptor::getSubtitlings(void) const -{ - return &subtitlings; -} - diff --git a/lib/dvb_si/subtitling_descriptor.h b/lib/dvb_si/subtitling_descriptor.h deleted file mode 100644 index 5232dbd..0000000 --- a/lib/dvb_si/subtitling_descriptor.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * $Id: subtitling_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_subtitling_descriptor_h__ -#define __dvb_descriptor_subtitling_descriptor_h__ - -#include "descriptor.h" - -class Subtitling -{ - protected: - std::string iso639LanguageCode; - unsigned subtitlingType : 8; - unsigned compositionPageId : 16; - unsigned ancillaryPageId : 16; - - public: - Subtitling(const uint8_t * const buffer); - - std::string getIso639LanguageCode(void) const; - uint8_t getSubtitlingType(void) const; - uint16_t getCompositionPageId(void) const; - uint16_t getAncillaryPageId(void) const; -}; - -typedef std::vector SubtitlingVector; -typedef SubtitlingVector::iterator SubtitlingIterator; -typedef SubtitlingVector::const_iterator SubtitlingConstIterator; - -class SubtitlingDescriptor : public Descriptor -{ - protected: - SubtitlingVector subtitlings; - - public: - SubtitlingDescriptor(const uint8_t * const buffer); - ~SubtitlingDescriptor(void); - - const SubtitlingVector *getSubtitlings(void) const; -}; - -#endif /* __dvb_descriptor_subtitling_descriptor_h__ */ diff --git a/lib/dvb_si/system_clock_descriptor.h b/lib/dvb_si/system_clock_descriptor.h deleted file mode 100644 index 2216cef..0000000 --- a/lib/dvb_si/system_clock_descriptor.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: system_clock_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_system_clock_descriptor_h__ -#define __dvb_descriptor_system_clock_descriptor_h__ - -#include "descriptor.h" - -class SystemClockDescriptor : public Descriptor -{ - protected: - unsigned externalClockReferenceIndicator : 1; - unsigned reserved : 1; - unsigned clockAccuracyInteger : 6; - unsigned clockAccuracyExponent : 3; - unsigned reserved2 : 5; - - public: - SystemClockDescriptor(const uint8_t * const buffer); - - uint8_t getExternalClockReferenceIndicator(void) const; - uint8_t getClockAccuracyInteger(void) const; - uint8_t getClockAccuracyExponent(void) const; -}; - -#endif /* __dvb_descriptor_system_clock_descriptor_h__ */ diff --git a/lib/dvb_si/table_id.h b/lib/dvb_si/table_id.h deleted file mode 100644 index 39e005c..0000000 --- a/lib/dvb_si/table_id.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * $Id: table_id.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_id_table_id_h__ -#define __dvb_id_table_id_h__ - -enum TableId { - /* ISO/IEC 13818-1, ITU T-REC H.222.0 */ - TID_PAT = 0x00, /* program_association_section */ - TID_CAT = 0x01, /* conditional_access_section */ - TID_PMT = 0x02, /* TS_program_map_section */ - TID_TSDT = 0x03, /* TS_description_section */ - TID_SDT = 0x04, /* ISO_IEC_14496_scene_description_section */ - TID_ODT = 0x05, /* ISO_IEC_14496_object_descriptor_section */ - - /* 0x06 - 0x09: ITU-T Rec. H.222.0 | ISO/IEC 13818-1 reserved */ - - /* 0x0A - 0x0D: ISO/IEC 13818-6 */ - TID_DSMCC_MULTIPROTOCOL = 0x0A, /* Multiprotocol */ - TID_DSMCC_MSG_HEADER = 0x0B, /* DSM-CC Messages Header (U-N) */ - TID_DSMCC_DESCR_LOOP = 0x0C, /* DSM-CC Descriptors Loop */ - TID_DSMCC_TBD = 0x0D, /* TBD */ - - /* 0x0E - 0x37: ITU-T Rec. H.222.0 | ISO/IEC 13818-1 reserved */ - - /* 0x38 - 0x3F: Defined in ISO/IEC 13818-6 */ - TID_DSMCC_DL_MESSAGE = 0x3B, /* DSM-CC Download Message */ - TID_DSMCC_DL_DATA = 0x3C, /* DSM-CC Download Data */ - TID_DSMCC_DL_EVENT = 0x3D, /* DSM-CC Download Event */ - - /* 0x40 - 0x7F: ETSI EN 300 468 V1.5.1 (2003-01) */ - TID_NIT_ACTUAL = 0x40, /* network_information_section - actual_network */ - TID_NIT_OTHER = 0x41, /* network_information_section - other_network */ - TID_SDT_ACTUAL = 0x42, /* service_description_section - actual_transport_stream */ - TID_SDT_OTHER = 0x46, /* service_description_section - other_transport_stream */ - TID_BAT = 0x4A, /* bouquet_association_section */ - TID_EIT_ACTUAL = 0x4E, /* event_information_section - actual_transport_stream, present/following */ - TID_EIT_OTHER = 0x4F, /* event_information_section - other_transport_stream, present/following */ - TID_EIT_ACTUAL_SCHED_0 = 0x50, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_1 = 0x51, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_2 = 0x52, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_3 = 0x53, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_4 = 0x54, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_5 = 0x55, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_6 = 0x56, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_7 = 0x57, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_8 = 0x58, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_9 = 0x59, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_A = 0x5A, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_B = 0x5B, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_C = 0x5C, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_D = 0x5D, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_E = 0x5E, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_ACTUAL_SCHED_F = 0x5F, /* event_information_section - actual_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_0 = 0x60, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_1 = 0x61, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_2 = 0x62, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_3 = 0x63, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_4 = 0x64, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_5 = 0x65, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_6 = 0x66, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_7 = 0x67, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_8 = 0x68, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_9 = 0x69, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_A = 0x6A, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_B = 0x6B, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_C = 0x6C, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_D = 0x6D, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_E = 0x6E, /* event_information_section - other_transport_stream, schedule */ - TID_EIT_OTHER_SCHED_F = 0x6F, /* event_information_section - other_transport_stream, schedule */ - TID_TDT = 0x70, /* time_date_section */ - TID_RST = 0x71, /* running_status_section */ - TID_ST = 0x72, /* stuffing_section */ - TID_TOT = 0x73, /* time_offset_section */ - TID_AIT = 0x74, /* application_information_section */ - TID_DIT = 0x7E, /* discontinuity_information_section */ - TID_SIT = 0x7F, /* selection_information_section */ - - /* 0x80 - 0x8F: ETSI ETR 289 ed.1 (1996-10) */ - TID_CAMT_ECM_0 = 0x80, - TID_CAMT_ECM_1 = 0x81, - TID_CAMT_PRIVATE_0 = 0x82, - TID_CAMT_PRIVATE_1 = 0x83, - TID_CAMT_PRIVATE_2 = 0x84, - TID_CAMT_PRIVATE_3 = 0x85, - TID_CAMT_PRIVATE_4 = 0x86, - TID_CAMT_PRIVATE_5 = 0x87, - TID_CAMT_PRIVATE_6 = 0x88, - TID_CAMT_PRIVATE_7 = 0x89, - TID_CAMT_PRIVATE_8 = 0x8A, - TID_CAMT_PRIVATE_9 = 0x8B, - TID_CAMT_PRIVATE_A = 0x8C, - TID_CAMT_PRIVATE_B = 0x8D, - TID_CAMT_PRIVATE_C = 0x8E, - TID_CAMT_PRIVATE_D = 0x8F, - - /* 0x90 - 0xFE: PRIVATE */ - TID_TOC = 0x91, - TID_HIT = 0x92, - - /* 0xFF: ISO RESERVED */ - TID_RESERVED = 0xFF -}; - -#endif /* __dvb_id_table_id_h__ */ diff --git a/lib/dvb_si/target_background_grid_descriptor.cpp b/lib/dvb_si/target_background_grid_descriptor.cpp deleted file mode 100644 index 921157f..0000000 --- a/lib/dvb_si/target_background_grid_descriptor.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * $Id: target_background_grid_descriptor.cpp,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -TargetBackgroundGridDescriptor::TargetBackgroundGridDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - horizontalSize = ((buffer[2] << 8) | (buffer[3] & 0xF3)) >> 2; - verticalSize = (((buffer[3] & 0x03) << 16) | (buffer[4] << 8) | (buffer[5] & 0xF0)) >> 4; - aspectRatioInformation = buffer[5] & 0x0F; -} - -uint16_t TargetBackgroundGridDescriptor::getHorizontalSize(void) const -{ - return horizontalSize; -} - -uint16_t TargetBackgroundGridDescriptor::getVerticalSize(void) const -{ - return verticalSize; -} - -uint8_t TargetBackgroundGridDescriptor::getAspectRatioInformation(void) const -{ - return aspectRatioInformation; -} - diff --git a/lib/dvb_si/target_background_grid_descriptor.h b/lib/dvb_si/target_background_grid_descriptor.h deleted file mode 100644 index 38ce518..0000000 --- a/lib/dvb_si/target_background_grid_descriptor.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * $Id: target_background_grid_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_target_background_grid_descriptor_h__ -#define __dvb_descriptor_target_background_grid_descriptor_h__ - -#include "descriptor.h" - -class TargetBackgroundGridDescriptor : public Descriptor -{ - protected: - unsigned horizontalSize : 14; - unsigned verticalSize : 14; - unsigned aspectRatioInformation : 4; - - public: - TargetBackgroundGridDescriptor(const uint8_t * const buffer); - - uint16_t getHorizontalSize(void) const; - uint16_t getVerticalSize(void) const; - uint8_t getAspectRatioInformation(void) const; -}; - -#endif /* __dvb_descriptor_target_background_grid_descriptor_h__ */ diff --git a/lib/dvb_si/tdt.cpp b/lib/dvb_si/tdt.cpp deleted file mode 100644 index dcbd3e3..0000000 --- a/lib/dvb_si/tdt.cpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * $Id: tdt.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -TimeAndDateTable::TimeAndDateTable(const uint8_t * const buffer) : ShortTable(buffer) -{ - utcTimeMjd = (buffer[3] << 8) | buffer[4]; - utcTimeBcd = (buffer[5] << 16) | (buffer[6] << 8) | buffer[7]; -} - -uint16_t TimeAndDateTable::getUtcTimeMjd(void) const -{ - return utcTimeMjd; -} - -uint32_t TimeAndDateTable::getUtcTimeBcd(void) const -{ - return utcTimeBcd; -} - diff --git a/lib/dvb_si/tdt.h b/lib/dvb_si/tdt.h deleted file mode 100644 index ef4a0ab..0000000 --- a/lib/dvb_si/tdt.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * $Id: tdt.h,v 1.1 2003-10-17 15:36:39 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_tdt_h__ -#define __dvb_table_tdt_h__ - -#include "short_table.h" - -class TimeAndDateTable : public ShortTable -{ - protected: - unsigned utcTimeMjd : 16; - unsigned utcTimeBcd : 24; - - public: - TimeAndDateTable(const uint8_t * const buffer); - - static const enum PacketId PID = PID_TDT; - static const enum TableId TID = TID_TDT; - static const uint32_t TIMEOUT = 36000; - - uint16_t getUtcTimeMjd(void) const; - uint32_t getUtcTimeBcd(void) const; -}; - -typedef std::vector TimeAndDateTableVector; -typedef TimeAndDateTableVector::iterator TimeAndDateTableIterator; -typedef TimeAndDateTableVector::const_iterator TimeAndDateTableConstIterator; - -#endif /* __dvb_table_tdt_h__ */ diff --git a/lib/dvb_si/telephone_descriptor.cpp b/lib/dvb_si/telephone_descriptor.cpp deleted file mode 100644 index 3849215..0000000 --- a/lib/dvb_si/telephone_descriptor.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * $Id: telephone_descriptor.cpp,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -TelephoneDescriptor::TelephoneDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - reserved = (buffer[2] >> 6) & 0x03; - foreignAvailability = (buffer[2] >> 5) & 0x01; - connectionType = buffer[2] & 0x1f; - reserved2 = (buffer[3] >> 7) & 0x01; - countryPrefixLength = (buffer[3] >> 5) & 0x03; - internationalAreaCodeLength = (buffer[3] >> 2) & 0x07; - operatorCodeLength = buffer[3] & 0x03; - reserved3 = (buffer[4] >> 7) & 0x01; - nationalAreaCodeLength = (buffer[4] >> 4) & 0x07; - coreNumberLength = buffer[4] & 0x0f; - - uint16_t offset = 5; - countryPrefix.assign((char *)&buffer[offset], countryPrefixLength); - offset += countryPrefixLength; - internationalAreaCode.assign((char *)&buffer[offset], internationalAreaCodeLength); - offset += internationalAreaCodeLength; - operatorCode.assign((char *)&buffer[offset], operatorCodeLength); - offset += operatorCodeLength; - nationalAreaCode.assign((char *)&buffer[offset], nationalAreaCodeLength); - offset += nationalAreaCodeLength; - coreNumber.assign((char *)&buffer[offset], coreNumberLength); -} - -uint8_t TelephoneDescriptor::getForeignAvailability(void) const -{ - return foreignAvailability; -} - -uint8_t TelephoneDescriptor::getConnectionType(void) const -{ - return connectionType; -} - -std::string TelephoneDescriptor::getCountryPrefix(void) const -{ - return countryPrefix; -} - -std::string TelephoneDescriptor::getInternationalAreaCode(void) const -{ - return internationalAreaCode; -} - -std::string TelephoneDescriptor::getOperatorCode(void) const -{ - return operatorCode; -} - -std::string TelephoneDescriptor::getNationalAreaCode(void) const -{ - return nationalAreaCode; -} - -std::string TelephoneDescriptor::getCoreNumber(void) const -{ - return coreNumber; -} - diff --git a/lib/dvb_si/telephone_descriptor.h b/lib/dvb_si/telephone_descriptor.h deleted file mode 100644 index c64bc2c..0000000 --- a/lib/dvb_si/telephone_descriptor.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * $Id: telephone_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_telephone_descriptor_h__ -#define __dvb_descriptor_telephone_descriptor_h__ - -#include "descriptor.h" - -class TelephoneDescriptor : public Descriptor -{ - protected: - unsigned reserved : 2; - unsigned foreignAvailability : 1; - unsigned connectionType : 5; - unsigned reserved2 : 1; - unsigned countryPrefixLength : 2; - unsigned internationalAreaCodeLength : 3; - unsigned operatorCodeLength : 2; - unsigned reserved3 : 1; - unsigned nationalAreaCodeLength : 3; - unsigned coreNumberLength : 4; - std::string countryPrefix; - std::string internationalAreaCode; - std::string operatorCode; - std::string nationalAreaCode; - std::string coreNumber; - - public: - TelephoneDescriptor(const uint8_t * const buffer); - - uint8_t getForeignAvailability(void) const; - uint8_t getConnectionType(void) const; - std::string getCountryPrefix(void) const; - std::string getInternationalAreaCode(void) const; - std::string getOperatorCode(void) const; - std::string getNationalAreaCode(void) const; - std::string getCoreNumber(void) const; -}; - -#endif /* __dvb_descriptor_telephone_descriptor_h__ */ diff --git a/lib/dvb_si/teletext_descriptor.cpp b/lib/dvb_si/teletext_descriptor.cpp deleted file mode 100644 index dcbb499..0000000 --- a/lib/dvb_si/teletext_descriptor.cpp +++ /dev/null @@ -1,27 +0,0 @@ -/* - * $Id: teletext_descriptor.cpp,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -TeletextDescriptor::TeletextDescriptor(const uint8_t * const buffer) : VbiTeletextDescriptor(buffer) -{ -} - diff --git a/lib/dvb_si/teletext_descriptor.h b/lib/dvb_si/teletext_descriptor.h deleted file mode 100644 index d95d5ad..0000000 --- a/lib/dvb_si/teletext_descriptor.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id: teletext_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_teletext_descriptor_h__ -#define __dvb_descriptor_teletext_descriptor_h__ - -#include "vbi_teletext_descriptor.h" - -class TeletextDescriptor : public VbiTeletextDescriptor -{ - public: - TeletextDescriptor(const uint8_t * const buffer); -}; - -#endif /* __dvb_descriptor_teletext_descriptor_h__ */ diff --git a/lib/dvb_si/terrestrial_delivery_system_descriptor.cpp b/lib/dvb_si/terrestrial_delivery_system_descriptor.cpp deleted file mode 100644 index bddc9d7..0000000 --- a/lib/dvb_si/terrestrial_delivery_system_descriptor.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - * $Id: terrestrial_delivery_system_descriptor.cpp,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -TerrestrialDeliverySystemDescriptor::TerrestrialDeliverySystemDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - centreFrequency = (buffer[2] << 24) | (buffer[3] << 16) | (buffer[4] << 8) | buffer[5]; - bandwidth = (buffer[6] >> 5) & 0x07; - reserved = buffer[6] & 0x1f; - constellation = (buffer[7] >> 6) & 0x03; - hierarchyInformation = (buffer[7] >> 3) & 0x07; - codeRateHpStream = buffer[7] & 0x07; - codeRateLpStream = (buffer[8] >> 5) & 0x07; - guardInterval = (buffer[8] >> 3) & 0x03; - transmissionMode = (buffer[8] >> 1) & 0x03; - otherFrequencyFlag = buffer[8] & 0x01; - reserved2 = (buffer[9] << 24) | (buffer[10] << 16) | (buffer[11] << 8) | buffer[12]; -} - -uint32_t TerrestrialDeliverySystemDescriptor::getCentreFrequency(void) const -{ - return centreFrequency; -} - -uint8_t TerrestrialDeliverySystemDescriptor::getBandwidth(void) const -{ - return bandwidth; -} - -uint8_t TerrestrialDeliverySystemDescriptor::getConstellation(void) const -{ - return constellation; -} - -uint8_t TerrestrialDeliverySystemDescriptor::getHierarchyInformation(void) const -{ - return hierarchyInformation; -} - -uint8_t TerrestrialDeliverySystemDescriptor::getCodeRateHpStream(void) const -{ - return codeRateHpStream; -} - -uint8_t TerrestrialDeliverySystemDescriptor::getCodeRateLpStream(void) const -{ - return codeRateLpStream; -} - -uint8_t TerrestrialDeliverySystemDescriptor::getGuardInterval(void) const -{ - return guardInterval; -} - -uint8_t TerrestrialDeliverySystemDescriptor::getTransmissionMode(void) const -{ - return transmissionMode; -} - -uint8_t TerrestrialDeliverySystemDescriptor::getOtherFrequencyFlag(void) const -{ - return otherFrequencyFlag; -} - diff --git a/lib/dvb_si/terrestrial_delivery_system_descriptor.h b/lib/dvb_si/terrestrial_delivery_system_descriptor.h deleted file mode 100644 index 9bbe817..0000000 --- a/lib/dvb_si/terrestrial_delivery_system_descriptor.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id: terrestrial_delivery_system_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_terrestrial_delivery_system_descriptor_h__ -#define __dvb_descriptor_terrestrial_delivery_system_descriptor_h__ - -#include "descriptor.h" - -class TerrestrialDeliverySystemDescriptor : public Descriptor -{ - protected: - unsigned centreFrequency : 32; - unsigned bandwidth : 3; - unsigned reserved : 5; - unsigned constellation : 2; - unsigned hierarchyInformation : 3; - unsigned codeRateHpStream : 3; - unsigned codeRateLpStream : 3; - unsigned guardInterval : 2; - unsigned transmissionMode : 2; - unsigned otherFrequencyFlag : 1; - unsigned reserved2 : 32; - - public: - TerrestrialDeliverySystemDescriptor(const uint8_t * const buffer); - - uint32_t getCentreFrequency(void) const; - uint8_t getBandwidth(void) const; - uint8_t getConstellation(void) const; - uint8_t getHierarchyInformation(void) const; - uint8_t getCodeRateHpStream(void) const; - uint8_t getCodeRateLpStream(void) const; - uint8_t getGuardInterval(void) const; - uint8_t getTransmissionMode(void) const; - uint8_t getOtherFrequencyFlag(void) const; -}; - -#endif /* __dvb_descriptor_terrestrial_delivery_system_descriptor_h__ */ diff --git a/lib/dvb_si/time_shifted_event_descriptor.h b/lib/dvb_si/time_shifted_event_descriptor.h deleted file mode 100644 index bd9a1b6..0000000 --- a/lib/dvb_si/time_shifted_event_descriptor.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * $Id: time_shifted_event_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_time_shifted_event_descriptor_h__ -#define __dvb_descriptor_time_shifted_event_descriptor_h__ - -#include "descriptor.h" - -class TimeShiftedEventDescriptor : public Descriptor -{ - protected: - unsigned referenceServiceId : 16; - unsigned referenceEventId : 16; - - public: - TimeShiftedEventDescriptor(const uint8_t * const buffer); - - uint16_t getReferenceServiceId(void) const; - uint16_t getReferenceEventId(void) const; -}; - -#endif /* __dvb_descriptor_time_shifted_event_descriptor_h__ */ diff --git a/lib/dvb_si/time_shifted_service_descriptor.cpp b/lib/dvb_si/time_shifted_service_descriptor.cpp deleted file mode 100644 index 0d77946..0000000 --- a/lib/dvb_si/time_shifted_service_descriptor.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * $Id: time_shifted_service_descriptor.cpp,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -TimeShiftedServiceDescriptor::TimeShiftedServiceDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - referenceServiceId = (buffer[2] << 8) | buffer[3]; -} - -uint16_t TimeShiftedServiceDescriptor::getReferenceServiceId(void) const -{ - return referenceServiceId; -} - diff --git a/lib/dvb_si/time_shifted_service_descriptor.h b/lib/dvb_si/time_shifted_service_descriptor.h deleted file mode 100644 index 57ba72b..0000000 --- a/lib/dvb_si/time_shifted_service_descriptor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: time_shifted_service_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_time_shifted_service_descriptor_h__ -#define __dvb_descriptor_time_shifted_service_descriptor_h__ - -#include "descriptor.h" - -class TimeShiftedServiceDescriptor : public Descriptor -{ - protected: - unsigned referenceServiceId : 16; - - public: - TimeShiftedServiceDescriptor(const uint8_t * const buffer); - - uint16_t getReferenceServiceId(void) const; -}; - -#endif /* __dvb_descriptor_time_shifted_service_descriptor_h__ */ diff --git a/lib/dvb_si/tot.cpp b/lib/dvb_si/tot.cpp deleted file mode 100644 index 16171a5..0000000 --- a/lib/dvb_si/tot.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * $Id: tot.cpp,v 1.1 2003-10-17 15:36:37 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -TimeOffsetTable::TimeOffsetTable(const uint8_t * const buffer) : ShortCrcTable(buffer) -{ - utcTimeMjd = (buffer[3] << 8) | buffer[4]; - utcTimeBcd = (buffer[5] << 16) | (buffer[6] << 8) | buffer[7]; - reserved = (buffer[8] >> 4) & 0x0f; - descriptorsLoopLength = ((buffer[8] & 0x0f) << 8) | buffer[9]; - - for (uint16_t i = 0; i < descriptorsLoopLength; i += buffer[i + 11] + 2) - descriptor(&buffer[i + 10]); -} - -uint16_t TimeOffsetTable::getUtcTimeMjd(void) const -{ - return utcTimeMjd; -} - -uint32_t TimeOffsetTable::getUtcTimeBcd(void) const -{ - return utcTimeBcd; -} - diff --git a/lib/dvb_si/tot.h b/lib/dvb_si/tot.h deleted file mode 100644 index ce43488..0000000 --- a/lib/dvb_si/tot.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * $Id: tot.h,v 1.1 2003-10-17 15:36:39 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_table_tot_h__ -#define __dvb_table_tot_h__ - -#include -#include "short_crc_table.h" - -class TimeOffsetTable : public ShortCrcTable, public DescriptorContainer -{ - protected: - unsigned utcTimeMjd : 16; - unsigned utcTimeBcd : 24; - unsigned reserved : 4; - unsigned descriptorsLoopLength : 12; - - public: - TimeOffsetTable(const uint8_t * const buffer); - - static const enum PacketId PID = PID_TOT; - static const enum TableId TID = TID_TOT; - static const uint32_t TIMEOUT = 36000; - - uint16_t getUtcTimeMjd(void) const; - uint32_t getUtcTimeBcd(void) const; -}; - -typedef std::vector TimeOffsetTableVector; -typedef TimeOffsetTableVector::iterator TimeOffsetTableIterator; -typedef TimeOffsetTableVector::const_iterator TimeOffsetTableConstIterator; - -#endif /* __dvb_table_tot_h__ */ diff --git a/lib/dvb_si/transport_stream_descriptor.h b/lib/dvb_si/transport_stream_descriptor.h deleted file mode 100644 index 0c223e2..0000000 --- a/lib/dvb_si/transport_stream_descriptor.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: transport_stream_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_transport_stream_descriptor_h__ -#define __dvb_descriptor_transport_stream_descriptor_h__ - -#include "descriptor.h" - -class TransportStreamDescriptor : public Descriptor -{ - protected: - std::string bytes; - - public: - TransportStreamDescriptor(const uint8_t * const buffer); - - std::string getBytes(void) const; -}; - -#endif /* __dvb_descriptor_transport_stream_descriptor_h__ */ diff --git a/lib/dvb_si/url_descriptor.h b/lib/dvb_si/url_descriptor.h deleted file mode 100644 index 23db23a..0000000 --- a/lib/dvb_si/url_descriptor.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * $Id: url_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_url_descriptor_h__ -#define __dvb_descriptor_url_descriptor_h__ - -#include "descriptor.h" - -/* 0x90 */ -class UrlDescriptor : public Descriptor -{ - public: - UrlDescriptor(const uint8_t * const buffer); -}; - -#endif /* __dvb_descriptor_url_descriptor_h__ */ diff --git a/lib/dvb_si/vbi_data_descriptor.cpp b/lib/dvb_si/vbi_data_descriptor.cpp deleted file mode 100644 index 8791155..0000000 --- a/lib/dvb_si/vbi_data_descriptor.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* - * $Id: vbi_data_descriptor.cpp,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -VbiDataLine::VbiDataLine(const uint8_t * const buffer) -{ - reserved = (buffer[0] >> 6) & 0x03; - fieldParity = (buffer[0] >> 5) & 0x01; - lineOffset = buffer[0] & 0x1F; -} - -uint8_t VbiDataLine::getFieldParity(void) const -{ - return fieldParity; -} - -uint8_t VbiDataLine::getLineOffset(void) const -{ - return lineOffset; -} - -VbiDataService::VbiDataService(const uint8_t * const buffer) -{ - uint16_t i; - - dataServiceId = buffer[0]; - dataServiceDescriptorLength = buffer[1]; - - switch (dataServiceId) { - case 0x01: - case 0x02: - case 0x04: - case 0x05: - case 0x06: - case 0x07: - for (i = 0; i < dataServiceDescriptorLength; ++i); - vbiDataLines.push_back(new VbiDataLine(&buffer[i + 2])); - break; - - default: - for (i = 0; i < dataServiceDescriptorLength; ++i) - reserved.push_back(buffer[i + 2]); - break; - } -} - -VbiDataService::~VbiDataService(void) -{ - for (VbiDataLineIterator i = vbiDataLines.begin(); i != vbiDataLines.end(); ++i) - delete *i; -} - -uint8_t VbiDataService::getDataServiceId(void) const -{ - return dataServiceId; -} - -const VbiDataLineVector *VbiDataService::getVbiDataLines(void) const -{ - return &vbiDataLines; -} - -VbiDataDescriptor::VbiDataDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += buffer[i + 3] + 2) - vbiDataServices.push_back(new VbiDataService(&buffer[i + 2])); -} - -VbiDataDescriptor::~VbiDataDescriptor(void) -{ - for (VbiDataServiceIterator i = vbiDataServices.begin(); i != vbiDataServices.end(); ++i) - delete *i; -} - -const VbiDataServiceVector *VbiDataDescriptor::getVbiDataServices(void) const -{ - return &vbiDataServices; -} - diff --git a/lib/dvb_si/vbi_data_descriptor.h b/lib/dvb_si/vbi_data_descriptor.h deleted file mode 100644 index aa26b91..0000000 --- a/lib/dvb_si/vbi_data_descriptor.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * $Id: vbi_data_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_vbi_data_descriptor_h__ -#define __dvb_descriptor_vbi_data_descriptor_h__ - -#include "descriptor.h" - -class VbiDataLine -{ - protected: - unsigned reserved : 2; - unsigned fieldParity : 1; - unsigned lineOffset : 5; - - public: - VbiDataLine(const uint8_t * const buffer); - - uint8_t getFieldParity(void) const; - uint8_t getLineOffset(void) const; -}; - -typedef std::vector VbiDataLineVector; -typedef VbiDataLineVector::iterator VbiDataLineIterator; -typedef VbiDataLineVector::const_iterator VbiDataLineConstIterator; - -class VbiDataService -{ - protected: - unsigned dataServiceId : 8; - unsigned dataServiceDescriptorLength : 8; - VbiDataLineVector vbiDataLines; - std::vector reserved; - - public: - VbiDataService(const uint8_t * const buffer); - ~VbiDataService(void); - - uint8_t getDataServiceId(void) const; - const VbiDataLineVector *getVbiDataLines(void) const; -}; - -typedef std::vector VbiDataServiceVector; -typedef VbiDataServiceVector::iterator VbiDataServiceIterator; -typedef VbiDataServiceVector::const_iterator VbiDataServiceConstIterator; - -class VbiDataDescriptor : public Descriptor -{ - protected: - VbiDataServiceVector vbiDataServices; - - public: - VbiDataDescriptor(const uint8_t * const buffer); - ~VbiDataDescriptor(void); - - const VbiDataServiceVector *getVbiDataServices(void) const; -}; - -#endif /* __dvb_descriptor_vbi_data_descriptor_h__ */ diff --git a/lib/dvb_si/vbi_teletext_descriptor.cpp b/lib/dvb_si/vbi_teletext_descriptor.cpp deleted file mode 100644 index bf7c0ab..0000000 --- a/lib/dvb_si/vbi_teletext_descriptor.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * $Id: vbi_teletext_descriptor.cpp,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -VbiTeletext::VbiTeletext(const uint8_t * const buffer) -{ - iso639LanguageCode.assign((char *)&buffer[0], 3); - teletextType = (buffer[3] >> 3) & 0x1F; - teletextMagazineNumber = buffer[3] & 0x07; - teletextPageNumber = buffer[4]; -} - -std::string VbiTeletext::getIso639LanguageCode(void) const -{ - return iso639LanguageCode; -} - -uint8_t VbiTeletext::getTeletextType(void) const -{ - return teletextType; -} - -uint8_t VbiTeletext::getTeletextMagazineNumber(void) const -{ - return teletextMagazineNumber; -} - -uint8_t VbiTeletext::getTeletextPageNumber(void) const -{ - return teletextPageNumber; -} - -VbiTeletextDescriptor::VbiTeletextDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - for (uint16_t i = 0; i < descriptorLength; i += 5) - vbiTeletexts.push_back(new VbiTeletext(&buffer[i + 2])); -} - -VbiTeletextDescriptor::~VbiTeletextDescriptor(void) -{ - for (VbiTeletextIterator i = vbiTeletexts.begin(); i != vbiTeletexts.end(); ++i) - delete *i; -} - -const VbiTeletextVector *VbiTeletextDescriptor::getVbiTeletexts(void) const -{ - return &vbiTeletexts; -} - diff --git a/lib/dvb_si/vbi_teletext_descriptor.h b/lib/dvb_si/vbi_teletext_descriptor.h deleted file mode 100644 index 084d248..0000000 --- a/lib/dvb_si/vbi_teletext_descriptor.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * $Id: vbi_teletext_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_vbi_teletext_descriptor_h__ -#define __dvb_descriptor_vbi_teletext_descriptor_h__ - -#include "descriptor.h" - -class VbiTeletext -{ - protected: - std::string iso639LanguageCode; - unsigned teletextType : 5; - unsigned teletextMagazineNumber : 3; - unsigned teletextPageNumber : 8; - - public: - VbiTeletext(const uint8_t * const buffer); - - std::string getIso639LanguageCode(void) const; - uint8_t getTeletextType(void) const; - uint8_t getTeletextMagazineNumber(void) const; - uint8_t getTeletextPageNumber(void) const; -}; - -typedef std::vector VbiTeletextVector; -typedef VbiTeletextVector::iterator VbiTeletextIterator; -typedef VbiTeletextVector::const_iterator VbiTeletextConstIterator; - -class VbiTeletextDescriptor : public Descriptor -{ - protected: - VbiTeletextVector vbiTeletexts; - - public: - VbiTeletextDescriptor(const uint8_t * const buffer); - ~VbiTeletextDescriptor(void); - - const VbiTeletextVector *getVbiTeletexts(void) const; -}; - -#endif /* __dvb_descriptor_vbi_teletext_descriptor_h__ */ diff --git a/lib/dvb_si/video_stream_descriptor.cpp b/lib/dvb_si/video_stream_descriptor.cpp deleted file mode 100644 index 103026d..0000000 --- a/lib/dvb_si/video_stream_descriptor.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - * $Id: video_stream_descriptor.cpp,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -VideoStreamDescriptor::VideoStreamDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - multipleFrameRateFlag = (buffer[2] >> 7) & 0x01; - frameRateCode = (buffer[2] >> 3) & 0x0F; - mpeg1OnlyFlag = (buffer[2] >> 2) & 0x01; - constrainedParameterFlag = (buffer[2] >> 1) & 0x01; - - if (!mpeg1OnlyFlag) { - profileAndLevelIndication = buffer[3]; - chromaFormat = (buffer[4] >> 6) & 0x03; - frameRateExtensionFlag = (buffer[4] >> 5) & 0x01; - reserved = buffer[4] & 0x1F; - } -} - -uint8_t VideoStreamDescriptor::getMultipleFrameRateFlag(void) const -{ - return multipleFrameRateFlag; -} - -uint8_t VideoStreamDescriptor::getFrameRateCode(void) const -{ - return frameRateCode; -} - -uint8_t VideoStreamDescriptor::getMpeg1OnlyFlag(void) const -{ - return mpeg1OnlyFlag; -} - -uint8_t VideoStreamDescriptor::getConstrainedParameterFlag(void) const -{ - return constrainedParameterFlag; -} - -uint8_t VideoStreamDescriptor::getProfileAndLevelIndication(void) const -{ - return profileAndLevelIndication; -} - -uint8_t VideoStreamDescriptor::getChromaFormat(void) const -{ - return chromaFormat; -} - -uint8_t VideoStreamDescriptor::getFrameRateExtensionFlag(void) const -{ - return frameRateExtensionFlag; -} - diff --git a/lib/dvb_si/video_stream_descriptor.h b/lib/dvb_si/video_stream_descriptor.h deleted file mode 100644 index 2652acc..0000000 --- a/lib/dvb_si/video_stream_descriptor.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * $Id: video_stream_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_video_stream_descriptor_h__ -#define __dvb_descriptor_video_stream_descriptor_h__ - -#include "descriptor.h" - -class VideoStreamDescriptor : public Descriptor -{ - protected: - unsigned multipleFrameRateFlag : 1; - unsigned frameRateCode : 4; - unsigned mpeg1OnlyFlag : 1; - unsigned constrainedParameterFlag : 1; - unsigned stillPictureFlag : 1; - unsigned profileAndLevelIndication : 8; - unsigned chromaFormat : 2; - unsigned frameRateExtensionFlag : 1; - unsigned reserved : 5; - - public: - VideoStreamDescriptor(const uint8_t * const buffer); - - uint8_t getMultipleFrameRateFlag(void) const; - uint8_t getFrameRateCode(void) const; - uint8_t getMpeg1OnlyFlag(void) const; - uint8_t getConstrainedParameterFlag(void) const; - uint8_t getStillPictureFlag(void) const; - uint8_t getProfileAndLevelIndication(void) const; - uint8_t getChromaFormat(void) const; - uint8_t getFrameRateExtensionFlag(void) const; -}; - -#endif /* __dvb_descriptor_video_stream_descriptor_h__ */ diff --git a/lib/dvb_si/video_window_descriptor.cpp b/lib/dvb_si/video_window_descriptor.cpp deleted file mode 100644 index d8e7d69..0000000 --- a/lib/dvb_si/video_window_descriptor.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* - * $Id: video_window_descriptor.cpp,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#include - -VideoWindowDescriptor::VideoWindowDescriptor(const uint8_t * const buffer) : Descriptor(buffer) -{ - horizontalOffset = ((buffer[2] << 8) | (buffer[3] & 0xF3)) >> 2; - verticalOffset = (((buffer[3] & 0x03) << 16) | (buffer[4] << 8) | (buffer[5] & 0xF0)) >> 4; - windowPriority = buffer[5] & 0x0F; -} - -uint16_t VideoWindowDescriptor::getHorizontalOffset(void) const -{ - return horizontalOffset; -} - -uint16_t VideoWindowDescriptor::getVerticalOffset(void) const -{ - return verticalOffset; -} - -uint8_t VideoWindowDescriptor::getWindowPriority(void) const -{ - return windowPriority; -} - diff --git a/lib/dvb_si/video_window_descriptor.h b/lib/dvb_si/video_window_descriptor.h deleted file mode 100644 index 1558f78..0000000 --- a/lib/dvb_si/video_window_descriptor.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * $Id: video_window_descriptor.h,v 1.1 2003-10-17 15:36:38 tmbinc Exp $ - * - * (C) 2002-2003 Andreas Oberritter - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - */ - -#ifndef __dvb_descriptor_video_window_descriptor_h__ -#define __dvb_descriptor_video_window_descriptor_h__ - -#include "descriptor.h" - -class VideoWindowDescriptor : public Descriptor -{ - protected: - unsigned horizontalOffset : 14; - unsigned verticalOffset : 14; - unsigned windowPriority : 4; - - public: - VideoWindowDescriptor(const uint8_t * const buffer); - - uint16_t getHorizontalOffset(void) const; - uint16_t getVerticalOffset(void) const; - uint8_t getWindowPriority(void) const; -}; - -#endif /* __dvb_descriptor_video_window_descriptor_h__ */ diff --git a/lib/network/serversocket.lo b/lib/network/serversocket.lo index 180ed5dc7f1da18757af552d261e7ecb7be22bf0..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 191634 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 #include -#include -#include -#include +#include +#include +#include DEFINE_REF(eServiceEvent); diff --git a/main/Makefile.am b/main/Makefile.am index 5a7d1ef..dad2b33 100644 --- a/main/Makefile.am +++ b/main/Makefile.am @@ -1,6 +1,5 @@ INCLUDES = \ - -I$(top_srcdir)/include \ - -I/usr/include/python2.3 + -I$(top_srcdir)/include bin_PROGRAMS = enigma2 @@ -13,7 +12,6 @@ enigma2_LDADD_WHOLE = \ $(top_builddir)/lib/components/libenigma_components.a \ $(top_builddir)/lib/driver/libenigma_driver.a \ $(top_builddir)/lib/dvb/libenigma_dvb.a \ - $(top_builddir)/lib/dvb_si/libenigma_dvb_si.a \ $(top_builddir)/lib/dvb_ci/libenigma_dvb_ci.a \ $(top_builddir)/lib/gdi/libenigma_gdi.a \ $(top_builddir)/lib/gui/libenigma_gui.a \ @@ -28,6 +26,7 @@ enigma2_LDADD = \ @MAD_LIBS@ \ @PNG_LIBS@ \ @SIGC_LIBS@ \ + @DVBSI_LIBS@ \ -ldl -lpthread -lcrypt -lresolv -lpython2.4 enigma2$(EXEEXT): $(enigma2_OBJECTS) $(enigma2_DEPENDENCIES) $(enigma2_LDADD_WHOLE) diff --git a/main/enigma-dvbtest.cpp b/main/enigma-dvbtest.cpp index 76c760c..aa56239 100644 --- a/main/enigma-dvbtest.cpp +++ b/main/enigma-dvbtest.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include #include @@ -16,7 +16,7 @@ class eMain: public eApplication, public Object ePtr m_mgr; ePtr m_channel; ePtr m_demux; - eAUTable > m_table; + eAUTable > m_table; ePtr m_dvbdb; @@ -101,15 +101,15 @@ public: void tableReady(int) { /* table "fertig" (wie auch immer) */ - ePtr > ptr; + ePtr > ptr; /* erfolgreich? */ if (!m_table.getCurrent(ptr)) { /* dumpen ... */ - ProgramMapTableConstIterator i; + ProgramMapSectionConstIterator i; for (i = ptr->getSections().begin(); i != ptr->getSections().end(); ++i) { - const ProgramMapTable &pmt = **i; + const ProgramMapSection &pmt = **i; eDebug("pcr pid: %x", pmt.getPcrPid()); } eDebug("program map ..."); diff --git a/main/enigma-playlist.cpp b/main/enigma-playlist.cpp index bafefe9..51ffe82 100644 --- a/main/enigma-playlist.cpp +++ b/main/enigma-playlist.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include diff --git a/main/enigma-scan.cpp b/main/enigma-scan.cpp index af50548..4233c0d 100644 --- a/main/enigma-scan.cpp +++ b/main/enigma-scan.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include -- 2.7.4