the first fields of a descriptor need to be the
type, length and the next pointer. in order to
prevent changing these fields by accident,
provide them in a macro.


Signed-off-by: André Roth <neol...@gmail.com>
---
 lib/include/libdvbv5/desc_atsc_service_location.h | 7 ++-----
 lib/include/libdvbv5/desc_ca.h                    | 7 ++-----
 lib/include/libdvbv5/desc_ca_identifier.h         | 7 ++-----
 lib/include/libdvbv5/desc_cable_delivery.h        | 7 ++-----
 lib/include/libdvbv5/desc_event_extended.h        | 7 ++-----
 lib/include/libdvbv5/desc_event_short.h           | 7 ++-----
 lib/include/libdvbv5/desc_extension.h             | 7 ++-----
 lib/include/libdvbv5/desc_frequency_list.h        | 7 ++-----
 lib/include/libdvbv5/desc_hierarchy.h             | 6 ++----
 lib/include/libdvbv5/desc_isdbt_delivery.h        | 8 +++-----
 lib/include/libdvbv5/desc_language.h              | 7 ++-----
 lib/include/libdvbv5/desc_logical_channel.h       | 7 ++-----
 lib/include/libdvbv5/desc_network_name.h          | 7 ++-----
 lib/include/libdvbv5/desc_partial_reception.h     | 7 ++-----
 lib/include/libdvbv5/desc_sat.h                   | 7 ++-----
 lib/include/libdvbv5/desc_service.h               | 7 ++-----
 lib/include/libdvbv5/desc_service_list.h          | 7 ++-----
 lib/include/libdvbv5/desc_service_location.h      | 6 ++----
 lib/include/libdvbv5/desc_t2_delivery.h           | 5 +++--
 lib/include/libdvbv5/desc_terrestrial_delivery.h  | 7 ++-----
 lib/include/libdvbv5/desc_ts_info.h               | 7 ++-----
 lib/include/libdvbv5/descriptors.h                | 9 ++++++---
 22 files changed, 50 insertions(+), 103 deletions(-)

diff --git a/lib/include/libdvbv5/desc_atsc_service_location.h 
b/lib/include/libdvbv5/desc_atsc_service_location.h
index 1ff2341..ebe11b7 100644
--- a/lib/include/libdvbv5/desc_atsc_service_location.h
+++ b/lib/include/libdvbv5/desc_atsc_service_location.h
@@ -21,8 +21,7 @@
 #ifndef _ATSC_SERVICE_LOCATION_H
 #define _ATSC_SERVICE_LOCATION_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct atsc_desc_service_location_elementary {
        uint8_t stream_type;
@@ -37,9 +36,7 @@ struct atsc_desc_service_location_elementary {
 } __attribute__((packed));
 
 struct atsc_desc_service_location {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        struct atsc_desc_service_location_elementary *elementary;
 
diff --git a/lib/include/libdvbv5/desc_ca.h b/lib/include/libdvbv5/desc_ca.h
index 12f4ff3..49d346b 100644
--- a/lib/include/libdvbv5/desc_ca.h
+++ b/lib/include/libdvbv5/desc_ca.h
@@ -22,13 +22,10 @@
 #ifndef _CA_H
 #define _CA_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_ca {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        uint16_t ca_id;
        union {
diff --git a/lib/include/libdvbv5/desc_ca_identifier.h 
b/lib/include/libdvbv5/desc_ca_identifier.h
index 18df191..1136a84 100644
--- a/lib/include/libdvbv5/desc_ca_identifier.h
+++ b/lib/include/libdvbv5/desc_ca_identifier.h
@@ -22,13 +22,10 @@
 #ifndef _CA_IDENTIFIER_H
 #define _CA_IDENTIFIER_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_ca_identifier {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        uint8_t caid_count;
        uint16_t *caids;
diff --git a/lib/include/libdvbv5/desc_cable_delivery.h 
b/lib/include/libdvbv5/desc_cable_delivery.h
index 7abe920..8f5355a 100644
--- a/lib/include/libdvbv5/desc_cable_delivery.h
+++ b/lib/include/libdvbv5/desc_cable_delivery.h
@@ -23,13 +23,10 @@
 #ifndef _CABLE_DELIVERY_H
 #define _CABLE_DELIVERY_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_cable_delivery {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        uint32_t frequency;
        union {
diff --git a/lib/include/libdvbv5/desc_event_extended.h 
b/lib/include/libdvbv5/desc_event_extended.h
index 286f91d..b15e551 100644
--- a/lib/include/libdvbv5/desc_event_extended.h
+++ b/lib/include/libdvbv5/desc_event_extended.h
@@ -22,13 +22,10 @@
 #ifndef _DESC_EVENT_EXTENDED_H
 #define _DESC_EVENT_EXTENDED_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_event_extended {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        union {
                struct {
diff --git a/lib/include/libdvbv5/desc_event_short.h 
b/lib/include/libdvbv5/desc_event_short.h
index b2c979a..836e1b6 100644
--- a/lib/include/libdvbv5/desc_event_short.h
+++ b/lib/include/libdvbv5/desc_event_short.h
@@ -22,13 +22,10 @@
 #ifndef _DESC_EVENT_SHORT_H
 #define _DESC_EVENT_SHORT_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_event_short {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        unsigned char language[4];
        char *name;
diff --git a/lib/include/libdvbv5/desc_extension.h 
b/lib/include/libdvbv5/desc_extension.h
index 5921cba..c19ec70 100644
--- a/lib/include/libdvbv5/desc_extension.h
+++ b/lib/include/libdvbv5/desc_extension.h
@@ -21,8 +21,7 @@
 #ifndef _EXTENSION_DESC_H
 #define _EXTENSION_DESC_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_v5_fe_parms;
 
@@ -42,9 +41,7 @@ enum extension_descriptors {
 };
 
 struct dvb_extension_descriptor {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        uint8_t extension_code;
 
diff --git a/lib/include/libdvbv5/desc_frequency_list.h 
b/lib/include/libdvbv5/desc_frequency_list.h
index a138e56..7278971 100644
--- a/lib/include/libdvbv5/desc_frequency_list.h
+++ b/lib/include/libdvbv5/desc_frequency_list.h
@@ -22,13 +22,10 @@
 #ifndef _DESC_FREQUENCY_LIST_H
 #define _DESC_FREQUENCY_LIST_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_frequency_list {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        uint8_t frequencies;
        uint32_t *frequency;
diff --git a/lib/include/libdvbv5/desc_hierarchy.h 
b/lib/include/libdvbv5/desc_hierarchy.h
index 30bf082..fe8e772 100644
--- a/lib/include/libdvbv5/desc_hierarchy.h
+++ b/lib/include/libdvbv5/desc_hierarchy.h
@@ -22,12 +22,10 @@
 #ifndef _HIERARCHY_H
 #define _HIERARCHY_H
 
-#include <stdint.h>
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_hierarchy {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        uint8_t hierarchy_type:4;
        uint8_t reserved:4;
diff --git a/lib/include/libdvbv5/desc_isdbt_delivery.h 
b/lib/include/libdvbv5/desc_isdbt_delivery.h
index 5bac178..ae23475 100644
--- a/lib/include/libdvbv5/desc_isdbt_delivery.h
+++ b/lib/include/libdvbv5/desc_isdbt_delivery.h
@@ -22,13 +22,11 @@
 #ifndef _ISDBT_DELIVERY_H
 #define _ISDBT_DELIVERY_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct isdbt_desc_terrestrial_delivery_system {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
+
        uint16_t *frequency;
        unsigned num_freqs;
 
diff --git a/lib/include/libdvbv5/desc_language.h 
b/lib/include/libdvbv5/desc_language.h
index 28738a3..0872bdd 100644
--- a/lib/include/libdvbv5/desc_language.h
+++ b/lib/include/libdvbv5/desc_language.h
@@ -22,13 +22,10 @@
 #ifndef _DESC_LANGUAGE_H
 #define _DESC_LANGUAGE_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_language {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        unsigned char language[4];
        uint8_t audio_type;
diff --git a/lib/include/libdvbv5/desc_logical_channel.h 
b/lib/include/libdvbv5/desc_logical_channel.h
index bbccb81..28a6ac4 100644
--- a/lib/include/libdvbv5/desc_logical_channel.h
+++ b/lib/include/libdvbv5/desc_logical_channel.h
@@ -25,8 +25,7 @@
 #ifndef _LCN_DESC_H
 #define _LCN_DESC_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_logical_channel_number {
        uint16_t service_id;
@@ -41,9 +40,7 @@ struct dvb_desc_logical_channel_number {
 } __attribute__((packed));
 
 struct dvb_desc_logical_channel {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        struct dvb_desc_logical_channel_number *lcn;
 } __attribute__((packed));
diff --git a/lib/include/libdvbv5/desc_network_name.h 
b/lib/include/libdvbv5/desc_network_name.h
index 1ddc86b..6b6dcbc 100644
--- a/lib/include/libdvbv5/desc_network_name.h
+++ b/lib/include/libdvbv5/desc_network_name.h
@@ -22,13 +22,10 @@
 #ifndef _DESC_NETWORK_NAME_H
 #define _DESC_NETWORK_NAME_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_network_name {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        char *network_name;
        char *network_name_emph;
diff --git a/lib/include/libdvbv5/desc_partial_reception.h 
b/lib/include/libdvbv5/desc_partial_reception.h
index c6c45f7..3f40e5f 100644
--- a/lib/include/libdvbv5/desc_partial_reception.h
+++ b/lib/include/libdvbv5/desc_partial_reception.h
@@ -25,17 +25,14 @@
 #ifndef _PARTIAL_RECEPTION_H
 #define _PARTIAL_RECEPTION_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct isdb_partial_reception_service_id {
        uint16_t service_id;
 } __attribute__((packed));
 
 struct isdb_desc_partial_reception {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        struct isdb_partial_reception_service_id *partial_reception;
 } __attribute__((packed));
diff --git a/lib/include/libdvbv5/desc_sat.h b/lib/include/libdvbv5/desc_sat.h
index cf6393f..391ab44 100644
--- a/lib/include/libdvbv5/desc_sat.h
+++ b/lib/include/libdvbv5/desc_sat.h
@@ -22,13 +22,10 @@
 #ifndef _SAT_H
 #define _SAT_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_sat {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        uint32_t frequency;
        uint16_t orbit;
diff --git a/lib/include/libdvbv5/desc_service.h 
b/lib/include/libdvbv5/desc_service.h
index eea27ae..57964d3 100644
--- a/lib/include/libdvbv5/desc_service.h
+++ b/lib/include/libdvbv5/desc_service.h
@@ -22,13 +22,10 @@
 #ifndef _DESC_SERVICE_H
 #define _DESC_SERVICE_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_service {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        uint8_t service_type;
        char *name;
diff --git a/lib/include/libdvbv5/desc_service_list.h 
b/lib/include/libdvbv5/desc_service_list.h
index bffce0e..33b9b67 100644
--- a/lib/include/libdvbv5/desc_service_list.h
+++ b/lib/include/libdvbv5/desc_service_list.h
@@ -22,8 +22,7 @@
 #ifndef _DESC_SERVICE_LIST_H
 #define _DESC_SERVICE_LIST_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_service_list_table {
        uint16_t service_id;
@@ -31,9 +30,7 @@ struct dvb_desc_service_list_table {
 } __attribute__((packed));
 
 struct dvb_desc_service_list {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        //struct dvb_desc_service_list_table services[];
 } __attribute__((packed));
diff --git a/lib/include/libdvbv5/desc_service_location.h 
b/lib/include/libdvbv5/desc_service_location.h
index 78490bd..958dd04 100644
--- a/lib/include/libdvbv5/desc_service_location.h
+++ b/lib/include/libdvbv5/desc_service_location.h
@@ -21,7 +21,7 @@
 #ifndef _SERVICE_LOCATION_H
 #define _SERVICE_LOCATION_H
 
-#include <stdint.h>
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_service_location_element {
        uint8_t stream_type;
@@ -36,9 +36,7 @@ struct dvb_desc_service_location_element {
 } __attribute__((packed));
 
 struct dvb_desc_service_location {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        union {
                uint16_t bitfield;
diff --git a/lib/include/libdvbv5/desc_t2_delivery.h 
b/lib/include/libdvbv5/desc_t2_delivery.h
index a51f897..ed0d7a3 100644
--- a/lib/include/libdvbv5/desc_t2_delivery.h
+++ b/lib/include/libdvbv5/desc_t2_delivery.h
@@ -22,8 +22,7 @@
 #ifndef _T2_DELIVERY_H
 #define _T2_DELIVERY_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_t2_delivery_subcell {
        uint8_t cell_id_extension;
@@ -31,6 +30,8 @@ struct dvb_desc_t2_delivery_subcell {
 } __attribute__((packed));
 
 struct dvb_desc_t2_delivery {
+       /* extended descriptor */
+
        uint8_t plp_id;
        uint16_t system_id;
        union {
diff --git a/lib/include/libdvbv5/desc_terrestrial_delivery.h 
b/lib/include/libdvbv5/desc_terrestrial_delivery.h
index b6f039d..592305a 100644
--- a/lib/include/libdvbv5/desc_terrestrial_delivery.h
+++ b/lib/include/libdvbv5/desc_terrestrial_delivery.h
@@ -24,13 +24,10 @@
 #ifndef _TERRESTRIAL_DELIVERY_H
 #define _TERRESTRIAL_DELIVERY_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_terrestrial_delivery {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        uint32_t centre_frequency;
        uint8_t reserved_future_use1:2;
diff --git a/lib/include/libdvbv5/desc_ts_info.h 
b/lib/include/libdvbv5/desc_ts_info.h
index 523aa04..60eed5d 100644
--- a/lib/include/libdvbv5/desc_ts_info.h
+++ b/lib/include/libdvbv5/desc_ts_info.h
@@ -22,8 +22,7 @@
 #ifndef _TS_INFO_H
 #define _TS_INFO_H
 
-#include <stdint.h>
-#include <unistd.h> /* ssize_t */
+#include <libdvbv5/descriptors.h>
 
 struct dvb_desc_ts_info_transmission_type {
        uint8_t transmission_type_info;
@@ -31,9 +30,7 @@ struct dvb_desc_ts_info_transmission_type {
 } __attribute__((packed));
 
 struct dvb_desc_ts_info {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        char *ts_name, *ts_name_emph;
        struct dvb_desc_ts_info_transmission_type transmission_type;
diff --git a/lib/include/libdvbv5/descriptors.h 
b/lib/include/libdvbv5/descriptors.h
index f4d9288..b869a14 100644
--- a/lib/include/libdvbv5/descriptors.h
+++ b/lib/include/libdvbv5/descriptors.h
@@ -54,10 +54,13 @@ extern char *output_charset;
        b = ntohl(b); \
 } while (0)
 
+#define DVB_DESC_HEADER() \
+       uint8_t type; \
+       uint8_t length; \
+       struct dvb_desc *next
+
 struct dvb_desc {
-       uint8_t type;
-       uint8_t length;
-       struct dvb_desc *next;
+       DVB_DESC_HEADER();
 
        uint8_t data[];
 } __attribute__((packed));
-- 
1.8.3.2

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to