aboutsummaryrefslogtreecommitdiffstats
path: root/isdb-t/br-mg-Coromandel (follow)
AgeCommit message (Expand)AuthorFilesLines
2016-05-01Update Brazilian channel lists to reflect latest statusMauro Carvalho Chehab1-1/+1
2015-07-06Add new cities to Brazilian ISDB-T listsMauro Carvalho Chehab1-0/+32
3 09:48:44 +0200 committeretobi <git@e-tobi.net>2013-09-03 09:48:44 +0200 commit9a5228e0f2b898367b7943d294be58caf6ce8bb3 (patch) tree8145575f8f67c126b81e607d47613f34add97393 parentab959d7b4194715870128e616b8e29d4a101e488 (diff)downloadlinux-dvb-apps-9a5228e0f2b898367b7943d294be58caf6ce8bb3.tar.gz
Imported Upstream version 1.1.1+rev1273upstream/1.1.1+rev1273
Diffstat (limited to '')
-rw-r--r--.hg_archival.txt2
-rw-r--r--lib/libucsi/dvb/Makefile2
-rw-r--r--lib/libucsi/dvb/descriptor.h1
-rw-r--r--lib/libucsi/dvb/mpe_fec_section.h73
-rw-r--r--lib/libucsi/dvb/section.h1
-rw-r--r--lib/libucsi/dvb/time_slice_fec_identifier_descriptor.h94
-rw-r--r--lib/libucsi/mpeg/Makefile1
-rw-r--r--lib/libucsi/mpeg/datagram_section.h81
-rw-r--r--lib/libucsi/mpeg/section.h2
-rw-r--r--util/av7110_loadkeys/technotrend.rc541
-rw-r--r--util/gnutv/gnutv.c12
-rw-r--r--util/gnutv/gnutv_data.c34
-rw-r--r--util/gnutv/gnutv_data.h2
-rw-r--r--util/scan/atsc/us-NY-TWC-NYC53
-rw-r--r--util/scan/dvb-c/at-KarrerNet18
-rw-r--r--util/scan/dvb-c/at-SalzburgAG1
-rw-r--r--util/scan/dvb-c/ch-Rega-Sense34
-rw-r--r--util/scan/dvb-c/cz-Moravianet24
-rw-r--r--util/scan/dvb-c/de-Muenchen41
-rw-r--r--util/scan/dvb-c/de-Primacom48
-rw-r--r--util/scan/dvb-c/de-Unitymedia62
-rw-r--r--util/scan/dvb-c/dk-Copenhagen-AFDK11
-rw-r--r--util/scan/dvb-c/dk-Odense12
-rw-r--r--util/scan/dvb-c/es-Euskaltel28
-rw-r--r--util/scan/dvb-c/lu-Ettelbruck-ACE32
-rw-r--r--util/scan/dvb-c/no-Oslo-Get22
-rw-r--r--util/scan/dvb-c/se-Gothnet23
-rw-r--r--util/scan/dvb-s/Eurobird9-9.0E16
-rw-r--r--util/scan/dvb-s/Turksat-42.0E103
-rw-r--r--util/scan/dvb-t/ad-Andorra6
-rw-r--r--util/scan/dvb-t/at-Official (renamed from util/scan/dvb-t/at-Offical)9
-rw-r--r--util/scan/dvb-t/au-Cairns8
-rw-r--r--util/scan/dvb-t/au-Canberra-Black-Mt4
-rw-r--r--util/scan/dvb-t/au-Coonabarabran16
-rw-r--r--util/scan/dvb-t/au-Hobart10
-rw-r--r--[-rwxr-xr-x]util/scan/dvb-t/au-SunshineCoast18
-rw-r--r--util/scan/dvb-t/au-canberra4
-rw-r--r--util/scan/dvb-t/be-Brussels5
-rw-r--r--util/scan/dvb-t/ch-All6
-rw-r--r--util/scan/dvb-t/ch-Citycable28
-rw-r--r--util/scan/dvb-t/cz-Brno10
-rw-r--r--util/scan/dvb-t/cz-Klet4
-rw-r--r--util/scan/dvb-t/cz-Plzen8
-rw-r--r--util/scan/dvb-t/cz-Praha6
-rw-r--r--util/scan/dvb-t/de-Aachen_Stadt6
-rw-r--r--util/scan/dvb-t/de-Baden-Wuerttemberg20
-rw-r--r--util/scan/dvb-t/de-Bayern40
-rw-r--r--util/scan/dvb-t/de-Berlin18
-rw-r--r--util/scan/dvb-t/de-Bielefeld7
-rw-r--r--util/scan/dvb-t/de-Brandenburg7
-rw-r--r--util/scan/dvb-t/de-Braunschweig7
-rw-r--r--util/scan/dvb-t/de-Bremen16
-rw-r--r--util/scan/dvb-t/de-Brocken_Magdeburg7
-rw-r--r--util/scan/dvb-t/de-Chemnitz5
-rw-r--r--util/scan/dvb-t/de-Dresden5
-rw-r--r--util/scan/dvb-t/de-Erfurt-Weimar5
-rw-r--r--util/scan/dvb-t/de-Frankfurt41
-rw-r--r--util/scan/dvb-t/de-Freiburg5
-rw-r--r--util/scan/dvb-t/de-HalleSaale6
-rw-r--r--util/scan/dvb-t/de-Hamburg27
-rw-r--r--util/scan/dvb-t/de-Hannover7
-rw-r--r--util/scan/dvb-t/de-Hessen19
-rw-r--r--util/scan/dvb-t/de-Kassel31
-rw-r--r--util/scan/dvb-t/de-Kiel8
-rw-r--r--util/scan/dvb-t/de-Koeln-Bonn9
-rw-r--r--util/scan/dvb-t/de-Leipzig5
-rw-r--r--util/scan/dvb-t/de-Loerrach19
-rw-r--r--util/scan/dvb-t/de-Luebeck7
-rw-r--r--util/scan/dvb-t/de-Mecklenburg-Vorpommern12
-rw-r--r--util/scan/dvb-t/de-Muenchen10
-rw-r--r--util/scan/dvb-t/de-Niedersachsen40
-rw-r--r--util/scan/dvb-t/de-Nordrhein-Westfalen27
-rw-r--r--util/scan/dvb-t/de-Nuernberg8
-rw-r--r--util/scan/dvb-t/de-Osnabrueck5
-rw-r--r--util/scan/dvb-t/de-Ostbayern11
-rw-r--r--util/scan/dvb-t/de-Ravensburg8
-rw-r--r--util/scan/dvb-t/de-Rheinland-Pfalz12
-rw-r--r--util/scan/dvb-t/de-Rostock4
-rw-r--r--util/scan/dvb-t/de-Ruhrgebiet19
-rw-r--r--util/scan/dvb-t/de-Saarland7
-rw-r--r--util/scan/dvb-t/de-Sachsen12
-rw-r--r--util/scan/dvb-t/de-Sachsen-Anhalt12
-rw-r--r--util/scan/dvb-t/de-Schleswig-Holstein18
-rw-r--r--util/scan/dvb-t/de-Schwerin4
-rw-r--r--util/scan/dvb-t/de-Stuttgart6
-rw-r--r--util/scan/dvb-t/de-Thueringen10
-rw-r--r--util/scan/dvb-t/de-Wuerzburg7
-rw-r--r--util/scan/dvb-t/dk-All1
-rw-r--r--util/scan/dvb-t/es-Albacete12
-rw-r--r--util/scan/dvb-t/es-Alicante14
-rw-r--r--util/scan/dvb-t/es-Alpicat12
-rw-r--r--util/scan/dvb-t/es-Bilbao12
-rw-r--r--util/scan/dvb-t/es-Cadiz8
-rw-r--r--util/scan/dvb-t/es-Carceres18
-rw-r--r--util/scan/dvb-t/es-Donostia12
-rw-r--r--util/scan/dvb-t/es-Las_Palmas10
-rw-r--r--util/scan/dvb-t/es-Madrid16
-rw-r--r--util/scan/dvb-t/es-Malaga12
-rw-r--r--util/scan/dvb-t/es-Mussara12
-rw-r--r--util/scan/dvb-t/es-Santander8
-rw-r--r--util/scan/dvb-t/es-Valencia9
-rw-r--r--util/scan/dvb-t/es-Valladolid10
-rw-r--r--util/scan/dvb-t/es-Zaragoza10
-rw-r--r--util/scan/dvb-t/fi-Inari_Janispaa4
-rw-r--r--util/scan/dvb-t/fi-Inari_Naatamo (renamed from util/scan/dvb-t/fi-Salla_Saija)2
-rw-r--r--util/scan/dvb-t/fi-Kuhmo_Tikkasenmaki4
-rw-r--r--util/scan/dvb-t/fi-Kuhmoinen2
-rw-r--r--util/scan/dvb-t/fi-Kuusamo_Hamppulampi4
-rw-r--r--util/scan/dvb-t/fi-Nurmes_Kortevaara (renamed from util/scan/dvb-t/fi-Nurmes_Porokyla)0
-rw-r--r--util/scan/dvb-t/fi-Parikkala1
-rw-r--r--util/scan/dvb-t/fi-Rautjarvi_Simpele2
-rw-r--r--util/scan/dvb-t/fi-Salla_Ihistysjanka2
-rw-r--r--util/scan/dvb-t/fi-Salla_Sarivaara4
-rw-r--r--util/scan/dvb-t/fi-Salo_Isokyla2
-rw-r--r--util/scan/dvb-t/fi-Sipoo_Norrkulla (renamed from util/scan/dvb-t/fi-Sipoo_Galthagen)0
-rw-r--r--util/scan/dvb-t/fi-Suomussalmi_Myllylahti4
-rw-r--r--util/scan/dvb-t/fi-Utsjoki_Nuvvus4
-rw-r--r--util/scan/dvb-t/fr-Cluses21
-rw-r--r--util/scan/dvb-t/fr-Dijon36
-rw-r--r--util/scan/dvb-t/fr-Lyon-Fourviere3
-rw-r--r--util/scan/dvb-t/fr-Montbeliard18
-rw-r--r--util/scan/dvb-t/fr-Paris2
-rw-r--r--util/scan/dvb-t/fr-Strasbourg42
-rw-r--r--util/scan/dvb-t/hk-HongKong18
-rw-r--r--util/scan/dvb-t/it-Aosta12
-rw-r--r--util/scan/dvb-t/it-Bari16
-rw-r--r--util/scan/dvb-t/it-Bologna26
-rw-r--r--util/scan/dvb-t/it-Bolzano2
-rw-r--r--util/scan/dvb-t/it-Cagliari52
-rw-r--r--util/scan/dvb-t/it-Caivano25
-rw-r--r--util/scan/dvb-t/it-Catania22
-rw-r--r--util/scan/dvb-t/it-Conero6
-rw-r--r--util/scan/dvb-t/it-Firenze18
-rw-r--r--util/scan/dvb-t/it-Genova10
-rw-r--r--util/scan/dvb-t/it-Livorno12
-rw-r--r--util/scan/dvb-t/it-Milano14
-rw-r--r--util/scan/dvb-t/it-Palermo18
-rw-r--r--util/scan/dvb-t/it-Pescara15
-rw-r--r--util/scan/dvb-t/it-Pisa16
-rw-r--r--util/scan/dvb-t/it-Roma14
-rw-r--r--util/scan/dvb-t/it-S-Stefano_al_mare19
-rw-r--r--util/scan/dvb-t/it-Sassari40
-rw-r--r--util/scan/dvb-t/it-Trieste16
-rw-r--r--util/scan/dvb-t/it-Varese10
-rw-r--r--util/scan/dvb-t/it-Venezia14
-rw-r--r--util/scan/dvb-t/it-Verona19
-rw-r--r--util/scan/dvb-t/lv-Riga12
-rw-r--r--util/scan/dvb-t/nl-All8
-rw-r--r--util/scan/dvb-t/no-Trondelag_Stjordal7
-rw-r--r--util/scan/dvb-t/nz-Waiatarua6
-rw-r--r--util/scan/dvb-t/pl-Rzeszow3
-rw-r--r--util/scan/dvb-t/pl-Warszawa4
-rw-r--r--util/scan/dvb-t/se-Karlstad_Sormon6
-rw-r--r--util/scan/dvb-t/se-Sodertalje_Ragnhildsborg9
154 files changed, 1524 insertions, 853 deletions
diff --git a/.hg_archival.txt b/.hg_archival.txt
index f91aca6..64b0306 100644
--- a/.hg_archival.txt
+++ b/.hg_archival.txt
@@ -1,2 +1,2 @@
repo: d9fe7e17226f8e321aa80a015fc8d53f33b265d7
-node: 63dae165ffe8ae0e605fa46b77062289a873c0fb
+node: 2d700fe04e4386a32e37f3a1291cacafd375aa60
diff --git a/lib/libucsi/dvb/Makefile b/lib/libucsi/dvb/Makefile
index 78876dc..6f36e11 100644
--- a/lib/libucsi/dvb/Makefile
+++ b/lib/libucsi/dvb/Makefile
@@ -61,6 +61,7 @@ includes = ac3_descriptor.h \
local_time_offset_descriptor.h \
mhp_data_broadcast_id_descriptor.h \
mosaic_descriptor.h \
+ mpe_fec_section.h \
multilingual_bouquet_name_descriptor.h \
multilingual_component_descriptor.h \
multilingual_network_name_descriptor.h \
@@ -106,6 +107,7 @@ includes = ac3_descriptor.h \
terrestrial_delivery_descriptor.h \
time_shifted_event_descriptor.h \
time_shifted_service_descriptor.h \
+ time_slice_fec_identifier_descriptor.h \
tot_section.h \
transport_stream_descriptor.h \
tva_container_section.h \
diff --git a/lib/libucsi/dvb/descriptor.h b/lib/libucsi/dvb/descriptor.h
index 303e17a..345f6f0 100644
--- a/lib/libucsi/dvb/descriptor.h
+++ b/lib/libucsi/dvb/descriptor.h
@@ -88,6 +88,7 @@ extern "C"
#include <libucsi/dvb/terrestrial_delivery_descriptor.h>
#include <libucsi/dvb/time_shifted_event_descriptor.h>
#include <libucsi/dvb/time_shifted_service_descriptor.h>
+#include <libucsi/dvb/time_slice_fec_identifier_descriptor.h>
#include <libucsi/dvb/transport_stream_descriptor.h>
#include <libucsi/dvb/tva_id_descriptor.h>
#include <libucsi/dvb/vbi_data_descriptor.h>
diff --git a/lib/libucsi/dvb/mpe_fec_section.h b/lib/libucsi/dvb/mpe_fec_section.h
new file mode 100644
index 0000000..6db0a47
--- /dev/null
+++ b/lib/libucsi/dvb/mpe_fec_section.h
@@ -0,0 +1,73 @@
+/*
+ * section and descriptor parser
+ *
+ * Copyright (C) 2005 Kenneth Aafloy (kenneth@linuxtv.org)
+ * Copyright (C) 2005 Andrew de Quincey (adq_dvb@lidskialf.net)
+ * Copyright (C) 2008 Patrick Boettcher (pb@linuxtv.org)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _UCSI_DVB_MPE_FEC_SECTION_H
+#define _UCSI_DVB_MPE_FEC_SECTION_H 1
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <libucsi/mpeg/section.h>
+
+/**
+ * mpe_fec_section structure. TODO
+ */
+struct mpe_fec_section {
+ struct section head;
+};
+
+
+/**
+ * real_time_paramters
+ * can also be found in datagram_section in MAC4-1-bytes */
+struct real_time_parameters {
+ EBIT4(uint32_t delta_t : 12; ,
+ uint32_t table_boundary : 1; ,
+ uint32_t frame_boundary : 1; ,
+ uint32_t address : 18; )
+};
+
+
+static inline struct real_time_parameters * datagram_section_real_time_parameters_codec(struct datagram_section *d)
+{
+ struct real_time_parameters *rt = (struct real_time_parameters *) &d->MAC_address_4;
+ uint8_t b[4];
+ b[0] = d->MAC_address_4;
+ b[1] = d->MAC_address_3;
+ b[2] = d->MAC_address_2;
+ b[3] = d->MAC_address_1;
+
+ rt->delta_t = (b[0] << 4) | ((b[1] >> 4) & 0x0f);
+ rt->table_boundary = (b[1] >> 3) & 0x1;
+ rt->frame_boundary = (b[1] >> 2) & 0x1;
+ rt->address = ((b[1] & 0x3) << 16) | (b[2] << 8) | b[3];
+
+ return rt;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/lib/libucsi/dvb/section.h b/lib/libucsi/dvb/section.h
index 8488d71..70e0880 100644
--- a/lib/libucsi/dvb/section.h
+++ b/lib/libucsi/dvb/section.h
@@ -39,6 +39,7 @@ extern "C"
#include <libucsi/dvb/tot_section.h>
#include <libucsi/dvb/tva_container_section.h>
#include <libucsi/dvb/int_section.h>
+#include <libucsi/dvb/mpe_fec_section.h>
/**
* The following are not implemented just now.
diff --git a/lib/libucsi/dvb/time_slice_fec_identifier_descriptor.h b/lib/libucsi/dvb/time_slice_fec_identifier_descriptor.h
new file mode 100644
index 0000000..00f3048
--- /dev/null
+++ b/lib/libucsi/dvb/time_slice_fec_identifier_descriptor.h
@@ -0,0 +1,94 @@
+/*
+ * section and descriptor parser
+ *
+ * Copyright (C) 2005 Kenneth Aafloy (kenneth@linuxtv.org)
+ * Copyright (C) 2005 Andrew de Quincey (adq_dvb@lidskialf.net)
+ * Copyright (C) 2008 Patrick Boettcher (pb@linuxtv.org)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _UCSI_DVB_TIME_SLICE_FEC_IDENTIFIER_DESCRIPTOR
+#define _UCSI_DVB_TIME_SLICE_FEC_IDENTIFIER_DESCRIPTOR 1
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <libucsi/descriptor.h>
+#include <libucsi/types.h>
+
+/*
+ * dvb_time_slice_fec_identifier_descriptor structure.
+ */
+struct dvb_time_slice_fec_identifier_descriptor {
+ struct descriptor d;
+
+ EBIT4(uint8_t time_slicing :1; ,
+ uint8_t mpe_fec :2; ,
+ uint8_t reserved :2; ,
+ uint8_t frame_size :3; );
+
+ uint8_t max_burst_duration;
+
+ EBIT2(uint8_t max_average_rate :4; ,
+ uint8_t time_slice_fec_id :4; );
+ /* id_selector_bytes[] */
+};
+
+static inline struct dvb_time_slice_fec_identifier_descriptor *
+ dvb_time_slice_fec_identifier_descriptor_codec(struct descriptor* d)
+{
+ if (d->len < 3)
+ return NULL;
+ return (struct dvb_time_slice_fec_identifier_descriptor *) d;
+}
+
+static inline uint8_t dvb_time_slice_fec_identifier_selector_byte_length(struct dvb_time_slice_fec_identifier_descriptor *d)
+{
+ return d->d.len - 3;
+}
+
+static inline uint8_t * dvb_time_slice_fec_identifier_selector_bytes(struct dvb_time_slice_fec_identifier_descriptor *d)
+{
+ if (d->d.len < 3)
+ return NULL;
+ else
+ return ((uint8_t *) d) + 2 + 3;
+}
+
+static inline uint16_t dvb_time_slice_fec_identifier_max_burst_duration_msec(struct dvb_time_slice_fec_identifier_descriptor *d)
+{
+ return (d->max_burst_duration + 1) * 20;
+}
+
+static inline uint16_t dvb_time_slice_fec_identifier_frame_size_kbits(struct dvb_time_slice_fec_identifier_descriptor *d)
+{
+ if (d->frame_size > 3)
+ return 0;
+ return (d->frame_size+1) * 512;
+}
+
+static inline uint16_t dvb_time_slice_fec_identifier_frame_size_rows(struct dvb_time_slice_fec_identifier_descriptor *d)
+{
+ return dvb_time_slice_fec_identifier_frame_size_kbits(d) / 2;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/lib/libucsi/mpeg/Makefile b/lib/libucsi/mpeg/Makefile
index ace8808..43bc91d 100644
--- a/lib/libucsi/mpeg/Makefile
+++ b/lib/libucsi/mpeg/Makefile
@@ -24,6 +24,7 @@ includes = audio_stream_descriptor.h \
content_labelling_descriptor.h \
copyright_descriptor.h \
data_stream_alignment_descriptor.h \
+ datagram_section.h \
descriptor.h \
external_es_id_descriptor.h \
fmc_descriptor.h \
diff --git a/lib/libucsi/mpeg/datagram_section.h b/lib/libucsi/mpeg/datagram_section.h
new file mode 100644
index 0000000..769773a
--- /dev/null
+++ b/lib/libucsi/mpeg/datagram_section.h
@@ -0,0 +1,81 @@
+/*
+ * section and descriptor parser
+ *
+ * Copyright (C) 2005 Kenneth Aafloy (kenneth@linuxtv.org)
+ * Copyright (C) 2005 Andrew de Quincey (adq_dvb@lidskialf.net)
+ * Copyright (C) 2008 Patrick Boettcher (pb@linuxtv.org)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _UCSI_MPEG_DATAGRAM_SECTION_H
+#define _UCSI_MPEG_DATAGRAM_SECTION_H 1
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <libucsi/section.h>
+
+/**
+ * datagram_section structure.
+ */
+struct datagram_section {
+ struct section head;
+
+ uint8_t MAC_address_6;
+ uint8_t MAC_address_5;
+ EBIT5(uint8_t reserved : 2; ,
+ uint8_t payload_scrambling_control : 2; ,
+ uint8_t address_scrambling_control : 2; ,
+ uint8_t LLC_SNAP_flag : 1; ,
+ uint8_t current_next_indicator : 1; );
+ uint8_t section_number;
+ uint8_t last_section_number;
+ uint8_t MAC_address_4;
+ uint8_t MAC_address_3;
+ uint8_t MAC_address_2;
+ uint8_t MAC_address_1;
+
+ /* LLC_SNAP or IP-data */
+ /* if last section stuffing */
+ /* CRC */
+} __ucsi_packed;
+
+/**
+ */
+static inline struct datagram_section *datagram_section_codec(struct section *section)
+{
+ /* something to do here ? */
+ return (struct datagram_section *) section;
+}
+
+static inline uint8_t *datagram_section_ip_data(struct datagram_section *d)
+{
+ return (uint8_t *) d + sizeof(struct section) + 2 + 1 + 1 + 1 + 4;
+}
+
+static inline size_t datagram_section_ip_data_length(struct datagram_section *d)
+{
+ return section_length(&d->head) - (sizeof(struct section) + 2 + 1 + 1 + 1 + 4) - CRC_SIZE;
+}
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/lib/libucsi/mpeg/section.h b/lib/libucsi/mpeg/section.h
index 7dbff93..f71f95e 100644
--- a/lib/libucsi/mpeg/section.h
+++ b/lib/libucsi/mpeg/section.h
@@ -33,6 +33,7 @@ extern "C"
#include <libucsi/mpeg/pmt_section.h>
#include <libucsi/mpeg/tsdt_section.h>
#include <libucsi/mpeg/metadata_section.h>
+#include <libucsi/mpeg/datagram_section.h>
#define TRANSPORT_PAT_PID 0x00
#define TRANSPORT_CAT_PID 0x01
@@ -49,6 +50,7 @@ enum mpeg_section_tag {
stag_mpeg_iso14496_scene_description = 0x04,
stag_mpeg_iso14496_object_description = 0x05,
stag_mpeg_metadata = 0x06,
+ stag_mpeg_datagram = 0x3e,
};
#ifdef __cplusplus
diff --git a/util/av7110_loadkeys/technotrend.rc5 b/util/av7110_loadkeys/technotrend.rc5
new file mode 100644
index 0000000..526fdc7
--- /dev/null
+++ b/util/av7110_loadkeys/technotrend.rc5
@@ -0,0 +1,41 @@
+0x22 KEY_EPG
+0x1a KEY_RADIO
+0x19 KEY_TEXT
+
+0x0c KEY_0
+0x03 KEY_1
+0x04 KEY_2
+0x05 KEY_3
+0x06 KEY_4
+0x07 KEY_5
+0x08 KEY_6
+0x09 KEY_7
+0x0a KEY_8
+0x0b KEY_9
+
+0x0d KEY_UP
+0x11 KEY_DOWN
+0x25 KEY_VOLUMEUP
+0x26 KEY_VOLUMEDOWN
+
+0x23 KEY_CHANNELUP
+0x24 KEY_CHANNELDOWN
+
+0x01 KEY_POWER
+0x13 KEY_BACK
+0x02 KEY_MENU
+0x14 KEY_RED
+0x15 KEY_GREEN
+0x16 KEY_YELLOW
+0x0f KEY_OK
+0x17 KEY_BLUE
+0x18 KEY_MUTE
+0x3d KEY_REWIND
+0x3b KEY_PLAY
+0x3f KEY_FORWARD
+0x3a KEY_RECORD
+0x3c KEY_STOP
+0x3e KEY_PAUSE
+0x0e KEY_LEFT
+0x10 KEY_RIGHT
+0x12 KEY_INFO
diff --git a/util/gnutv/gnutv.c b/util/gnutv/gnutv.c
index 62f19be..f824c65 100644
--- a/util/gnutv/gnutv.c
+++ b/util/gnutv/gnutv.c
@@ -66,6 +66,7 @@ void usage(void)
" * C-MULTI - Big Dish - Multipoint LNBf, 3700 to 4200 MHz,\n"
" Dual LO, H:5150MHz, V:5750MHz.\n"
" * One of the sec definitions from the secfile if supplied\n"
+ " -buffer <size> Custom DVR buffer size\n"
" -out decoder Output to hardware decoder (default)\n"
" decoderabypass Output to hardware decoder using audio bypass\n"
" dvr Output stream to dvr device\n"
@@ -124,6 +125,7 @@ int main(int argc, char *argv[])
struct gnutv_ca_params gnutv_ca_params;
int ffaudiofd = -1;
int usertp = 0;
+ int buffer_size = 0;
while(argpos != argc) {
if (!strcmp(argv[argpos], "-h")) {
@@ -167,6 +169,14 @@ int main(int argc, char *argv[])
usage();
secid = argv[argpos+1];
argpos+=2;
+ } else if (!strcmp(argv[argpos], "-buffer")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &buffer_size) != 1)
+ usage();
+ if (buffer_size < 0)
+ usage();
+ argpos+=2;
} else if (!strcmp(argv[argpos], "-out")) {
if ((argc - argpos) < 2)
usage();
@@ -320,7 +330,7 @@ int main(int argc, char *argv[])
gnutv_dvb_start(&gnutv_dvb_params);
// start the data stuff
- gnutv_data_start(output_type, ffaudiofd, adapter_id, demux_id, outfile, outif, outaddrs, usertp);
+ gnutv_data_start(output_type, ffaudiofd, adapter_id, demux_id, buffer_size, outfile, outif, outaddrs, usertp);
}
// the UI
diff --git a/util/gnutv/gnutv_data.c b/util/gnutv/gnutv_data.c
index 7ac0f23..54ccdde 100644
--- a/util/gnutv/gnutv_data.c
+++ b/util/gnutv/gnutv_data.c
@@ -77,7 +77,7 @@ static struct pid_fd *pid_fds = NULL;
static int pid_fds_count = 0;
void gnutv_data_start(int _output_type,
- int ffaudiofd, int _adapter_id, int _demux_id,
+ int ffaudiofd, int _adapter_id, int _demux_id, int buffer_size,
char *outfile,
char* outif, struct addrinfo *_outaddrs, int _usertp)
{
@@ -114,6 +114,14 @@ void gnutv_data_start(int _output_type,
exit(1);
}
+ // optionally set dvr buffer size
+ if (buffer_size > 0) {
+ if (dvbdemux_set_buffer(dvrfd, buffer_size) != 0) {
+ fprintf(stderr, "Failed to set DVR buffer size\n");
+ exit(1);
+ }
+ }
+
pthread_create(&outputthread, NULL, fileoutputthread_func, NULL);
break;
@@ -142,6 +150,14 @@ void gnutv_data_start(int _output_type,
exit(1);
}
+ // optionally set dvr buffer size
+ if (buffer_size > 0) {
+ if (dvbdemux_set_buffer(dvrfd, buffer_size) != 0) {
+ fprintf(stderr, "Failed to set DVR buffer size\n");
+ exit(1);
+ }
+ }
+
pthread_create(&outputthread, NULL, udpoutputthread_func, NULL);
break;
}
@@ -220,19 +236,27 @@ static void *fileoutputthread_func(void* arg)
pollfd.events = POLLIN|POLLPRI|POLLERR;
while(!outputthread_shutdown) {
- if (poll(&pollfd, 1, 1000) != 1)
- continue;
- if (pollfd.revents & POLLERR) {
+ if (poll(&pollfd, 1, 1000) == -1) {
if (errno == EINTR)
continue;
- fprintf(stderr, "DVR device read failure\n");
+ fprintf(stderr, "DVR device poll failure\n");
return 0;
}
+ if (pollfd.revents == 0)
+ continue;
+
int size = read(dvrfd, buf, sizeof(buf));
if (size < 0) {
if (errno == EINTR)
continue;
+
+ if (errno == EOVERFLOW) {
+ // The error flag has been cleared, next read should succeed.
+ fprintf(stderr, "DVR overflow\n");
+ continue;
+ }
+
fprintf(stderr, "DVR device read failure\n");
return 0;
}
diff --git a/util/gnutv/gnutv_data.h b/util/gnutv/gnutv_data.h
index 8e47e3a..94c55c9 100644
--- a/util/gnutv/gnutv_data.h
+++ b/util/gnutv/gnutv_data.h
@@ -26,7 +26,7 @@
#include <netdb.h>
extern void gnutv_data_start(int output_type,
- int ffaudiofd, int adapter_id, int demux_id,
+ int ffaudiofd, int adapter_id, int demux_id, int buffer_size,
char *outfile,
char* outif, struct addrinfo *outaddrs, int usertp);
extern void gnutv_data_stop(void);
diff --git a/util/scan/atsc/us-NY-TWC-NYC b/util/scan/atsc/us-NY-TWC-NYC
deleted file mode 100644
index 932b377..0000000
--- a/util/scan/atsc/us-NY-TWC-NYC
+++ /dev/null
@@ -1,53 +0,0 @@
-#initial tuning data for Time Warner Cable in New York City
-
-#80
-A 561000000 QAM256
-A 567000000 QAM256
-A 573000000 QAM256
-A 579000000 QAM256
-A 585000000 QAM256
-A 591000000 QAM256
-A 597000000 QAM256
-A 603000000 QAM256
-A 609000000 QAM256
-A 615000000 QAM256
-#90
-A 621000000 QAM256
-A 627000000 QAM256
-A 633000000 QAM256
-A 639000000 QAM256
-A 645000000 QAM256
-A 93000000 QAM256
-A 99000000 QAM256
-A 105000000 QAM256
-A 111025000 QAM256
-A 117025000 QAM256
-#100
-A 651000000 QAM256
-A 657000000 QAM256
-A 663000000 QAM256
-A 669000000 QAM256
-A 675000000 QAM256
-A 681000000 QAM256
-A 687000000 QAM256
-A 693000000 QAM256
-A 699000000 QAM256
-A 705000000 QAM256
-#110
-A 711000000 QAM256
-A 717000000 QAM256
-A 723000000 QAM256
-A 729000000 QAM256
-A 735000000 QAM256
-A 741000000 QAM256
-A 747000000 QAM256
-A 753000000 QAM256
-A 759000000 QAM256
-A 765000000 QAM256
-#120
-A 771000000 QAM256
-A 777000000 QAM256
-A 783000000 QAM256
-A 789000000 QAM256
-A 795000000 QAM256
-A 801000000 QAM256
diff --git a/util/scan/dvb-c/at-KarrerNet b/util/scan/dvb-c/at-KarrerNet
new file mode 100644
index 0000000..27e143a
--- /dev/null
+++ b/util/scan/dvb-c/at-KarrerNet
@@ -0,0 +1,18 @@
+# Kabel St. Florian bei Linz/AT KarrerNet
+# 2009-01-10
+# freq sr fec mod
+C 418000000 6900000 NONE QAM64
+C 426000000 6900000 NONE QAM64
+C 434000000 6900000 NONE QAM64
+C 442000000 6900000 NONE QAM64
+C 450000000 6900000 NONE QAM64
+C 458000000 6900000 NONE QAM64
+C 466000000 6900000 NONE QAM64
+C 474000000 6900000 NONE QAM64
+C 482000000 6900000 NONE QAM64
+C 522000000 6900000 NONE QAM64
+C 530000000 6900000 NONE QAM64
+C 538000000 6900000 NONE QAM64
+C 578000000 6900000 NONE QAM64
+C 402000000 6900000 NONE QAM256
+C 410000000 6900000 NONE QAM256
diff --git a/util/scan/dvb-c/at-SalzburgAG b/util/scan/dvb-c/at-SalzburgAG