## DVB variants of MPEG-TS descriptors

DVB variants of MPEG-TS descriptors — Descriptors for the various DVB specifications

## Functions

gboolean | gst_mpegts_descriptor_parse_dvb_component ()
gboolean | gst_mpegts_descriptor_parse_dvb_extended_event ()
gboolean | gst_mpegts_descriptor_parse_satellite_delivery_system ()
gboolean | gst_mpegts_descriptor_parse_cable_delivery_system ()
gboolean | gst_mpegts_descriptor_parse_dvb_short_event ()
gboolean | gst_mpegts_descriptor_parse_dvb_network_name ()
gboolean | gst_mpegts_descriptor_parse_dvb_service ()

## Types and Values

enum | GstMpegTsDVBDescriptorType
struct | GstMpegTsComponentDescriptor
struct | GstMpegTsExtendedEventItem
struct | GstMpegTsExtendedEventDescriptor
struct | GstMpegTsSatelliteDeliverySystemDescriptor
enum | GstMpegTsDVBCodeRate
enum | GstMpegTsModulationType
enum | GstMpegTsSatellitePolarizationType
enum | GstMpegTsSatelliteRolloff
struct | GstMpegTsCableDeliverySystemDescriptor
enum | GstMpegTsCableOuterFECScheme
enum | GstMpegTsDVBServiceType

## Object Hierarchy

        GEnum
        ├── GstMpegTsCableOuterFECScheme
        ├── GstMpegTsDVBCodeRate
        ├── GstMpegTsDVBServiceType
        ├── GstMpegTsModulationType
        ├── GstMpegTsSatellitePolarizationType
        ╰── GstMpegTsSatelliteRolloff

## Includes

    #include <gst/mpegts/mpegts.h>

## Description

## Functions

### gst_mpegts_descriptor_parse_dvb_component ()

    gboolean
    gst_mpegts_descriptor_parse_dvb_component
                                   (const GstMpegTsDescriptor *descriptor,
                                    GstMpegTsComponentDescriptor *res);

### gst_mpegts_descriptor_parse_dvb_extended_event ()

    gboolean
    gst_mpegts_descriptor_parse_dvb_extended_event
                                   (const GstMpegTsDescriptor *descriptor,
                                    GstMpegTsExtendedEventDescriptor *res);

### gst_mpegts_descriptor_parse_satellite_delivery_system ()

    gboolean
    gst_mpegts_descriptor_parse_satellite_delivery_system
                                   (const GstMpegTsDescriptor *descriptor,
                                    GstMpegTsSatelliteDeliverySystemDescriptor *res);

Extracts the satellite delivery system information from `descriptor` .

#### Parameters

descriptor | a `GST_MTS_DESC_DVB_SATELLITE_DELIVERY_SYSTEM` GstMpegTsDescriptor |
res | the GstMpegTsSatelliteDeliverySystemDescriptor to fill. | [out][transfer none]

#### Returns

`TRUE` if parsing succeeded, else `FALSE`.

### gst_mpegts_descriptor_parse_cable_delivery_system ()

    gboolean
    gst_mpegts_descriptor_parse_cable_delivery_system
                                   (const GstMpegTsDescriptor *descriptor,
                                    GstMpegTsCableDeliverySystemDescriptor *res);

Extracts the cable delivery system information from `descriptor` .

#### Parameters

descriptor | a `GST_MTS_DESC_DVB_CABLE_DELIVERY_SYSTEM` GstMpegTsDescriptor |
res | the GstMpegTsCableDeliverySystemDescriptor to fill. | [out][transfer none]

#### Returns

`TRUE` if parsing succeeded, else `FALSE`.

### gst_mpegts_descriptor_parse_dvb_short_event ()

    gboolean
    gst_mpegts_descriptor_parse_dvb_short_event
                                   (const GstMpegTsDescriptor *descriptor,
                                    gchar **language_code,
                                    gchar **event_name,
                                    gchar **text);

Extracts the DVB short event information from `descriptor` .

#### Parameters

descriptor | a `GST_MTS_DESC_DVB_SHORT_EVENT` GstMpegTsDescriptor |
language_code | the language code. | [out][transfer full][allow-none]
event_name | the event name. | [out][transfer full][allow-none]
text | the event text. | [out][transfer full][allow-none]

#### Returns

`TRUE` if parsing succeeded, else `FALSE`.

### gst_mpegts_descriptor_parse_dvb_network_name ()

    gboolean
    gst_mpegts_descriptor_parse_dvb_network_name
                                   (const GstMpegTsDescriptor *descriptor,
                                    gchar **name);

Parses out the dvb network name from the `descriptor` :

#### Parameters

descriptor | a `GST_MTS_DESC_DVB_NETWORK_NAME` GstMpegTsDescriptor |
name | the extracted name. | [out][transfer full]

#### Returns

`TRUE` if the parsing happened correctly, else `FALSE`.

### gst_mpegts_descriptor_parse_dvb_service ()

    gboolean
    gst_mpegts_descriptor_parse_dvb_service
                                   (const GstMpegTsDescriptor *descriptor,
                                    GstMpegTsDVBServiceType *service_type,
                                    gchar **service_name,
                                    gchar **provider_name);

Extracts the dvb service information from `descriptor` .

#### Parameters

descriptor | a `GST_MTS_DESC_DVB_SERVICE` GstMpegTsDescriptor |
service_type | the service type. | [out][allow-none]
service_name | the service name. | [out][transfer full][allow-none]
provider_name | the provider name. | [out][transfer full][allow-none]

#### Returns

`TRUE` if parsing succeeded, else `FALSE`.

## Types and Values

### enum GstMpegTsDVBDescriptorType

The type of GstMpegTsDescriptor

These values correspond to the registered descriptor type from the various DVB specifications.

Consult the relevant specifications for more details.

#### Members

GST_MTS_DESC_DVB_NETWORK_NAME |  |
GST_MTS_DESC_DVB_SERVICE_LIST |  |
GST_MTS_DESC_DVB_STUFFING |  |
GST_MTS_DESC_DVB_SATELLITE_DELIVERY_SYSTEM |  |
GST_MTS_DESC_DVB_CABLE_DELIVERY_SYSTEM |  |
GST_MTS_DESC_DVB_VBI_DATA |  |
GST_MTS_DESC_DVB_VBI_TELETEXT |  |
GST_MTS_DESC_DVB_BOUQUET_NAME |  |
GST_MTS_DESC_DVB_SERVICE |  |
GST_MTS_DESC_DVB_COUNTRY_AVAILABILITY |  |
GST_MTS_DESC_DVB_LINKAGE |  |
GST_MTS_DESC_DVB_NVOD_REFERENCE |  |
GST_MTS_DESC_DVB_TIME_SHIFTED_SERVICE |  |
GST_MTS_DESC_DVB_SHORT_EVENT |  |
GST_MTS_DESC_DVB_EXTENDED_EVENT |  |
GST_MTS_DESC_DVB_TIME_SHIFTED_EVENT |  |
GST_MTS_DESC_DVB_COMPONENT |  |
GST_MTS_DESC_DVB_MOSAIC |  |
GST_MTS_DESC_DVB_STREAM_IDENTIFIER |  |
GST_MTS_DESC_DVB_CA_IDENTIFIER |  |
GST_MTS_DESC_DVB_CONTENT |  |
GST_MTS_DESC_DVB_PARENTAL_RATING |  |
GST_MTS_DESC_DVB_TELETEXT |  |
GST_MTS_DESC_DVB_TELEPHONE |  |
GST_MTS_DESC_DVB_LOCAL_TIME_OFFSET |  |
GST_MTS_DESC_DVB_SUBTITLING |  |
GST_MTS_DESC_DVB_TERRESTRIAL_DELIVERY_SYSTEM |  |
GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME |  |
GST_MTS_DESC_DVB_MULTILINGUAL_BOUQUET_NAME |  |
GST_MTS_DESC_DVB_MULTILINGUAL_SERVICE_NAME |  |
GST_MTS_DESC_DVB_MULTILINGUAL_COMPONENT |  |
GST_MTS_DESC_DVB_PRIVATE_DATA_SPECIFIER |  |
GST_MTS_DESC_DVB_SERVICE_MOVE |  |
GST_MTS_DESC_DVB_SHORT_SMOOTHING_BUFFER |  |
GST_MTS_DESC_DVB_FREQUENCY_LIST |  |
GST_MTS_DESC_DVB_PARTIAL_TRANSPORT_STREAM |  |
GST_MTS_DESC_DVB_DATA_BROADCAST |  |
GST_MTS_DESC_DVB_SCRAMBLING |  |
GST_MTS_DESC_DVB_DATA_BROADCAST_ID |  |
GST_MTS_DESC_DVB_TRANSPORT_STREAM |  |
GST_MTS_DESC_DVB_DSNG |  |
GST_MTS_DESC_DVB_PDC |  |
GST_MTS_DESC_DVB_AC3 |  |
GST_MTS_DESC_DVB_ANCILLARY_DATA |  |
GST_MTS_DESC_DVB_CELL_LIST |  |
GST_MTS_DESC_DVB_CELL_FREQUENCY_LINK |  |
GST_MTS_DESC_DVB_ANNOUNCEMENT_SUPPORT |  |
GST_MTS_DESC_DVB_APPLICATION_SIGNALLING |  |
GST_MTS_DESC_DVB_ADAPTATION_FIELD_DATA |  |
GST_MTS_DESC_DVB_SERVICE_IDENTIFIER |  |
GST_MTS_DESC_DVB_SERVICE_AVAILABILITY |  |
GST_MTS_DESC_DVB_DEFAULT_AUTHORITY |  |
GST_MTS_DESC_DVB_RELATED_CONTENT |  |
GST_MTS_DESC_DVB_TVA_ID |  |
GST_MTS_DESC_DVB_CONTENT_IDENTIFIER |  |
GST_MTS_DESC_DVB_TIMESLICE_FEC_IDENTIFIER |  |
GST_MTS_DESC_DVB_ECM_REPETITION_RATE |  |
GST_MTS_DESC_DVB_S2_SATELLITE_DELIVERY_SYSTEM |  |
GST_MTS_DESC_DVB_ENHANCED_AC3 |  |
GST_MTS_DESC_DVB_DTS |  |
GST_MTS_DESC_DVB_AAC |  |
GST_MTS_DESC_DVB_XAIT_LOCATION |  |
GST_MTS_DESC_DVB_FTA_CONTENT_MANAGEMENT |  |
GST_MTS_DESC_DVB_EXTENSION |  |

### struct GstMpegTsComponentDescriptor

    struct GstMpegTsComponentDescriptor {
      guint8 stream_content;
      guint8 component_type;
      guint8 component_tag;
      /* FIXME : Make it a separate (allocated, null-terminated) return value  */
      gchar  language_code[3];
      gchar *text;
    };

### struct GstMpegTsExtendedEventItem

    struct GstMpegTsExtendedEventItem {
      gchar *item_description;
      gchar *item;
    };

### struct GstMpegTsExtendedEventDescriptor

    struct GstMpegTsExtendedEventDescriptor {
      guint8 descriptor_number;
      guint8 last_descriptor_number;
      gchar  language_code[3];
      guint8 nb_items;
      GstMpegTsExtendedEventItem items[128];
      gchar *text;
    };

### struct GstMpegTsSatelliteDeliverySystemDescriptor

    struct GstMpegTsSatelliteDeliverySystemDescriptor {
      guint32                            frequency;
      gfloat                             orbital_position;
      gboolean                           west_east;
      GstMpegTsSatellitePolarizationType polarization;

      GstMpegTsSatelliteRolloff          roll_off;
      gboolean                           modulation_system;
      GstMpegTsModulationType            modulation_type;

      guint32                            symbol_rate;
      GstMpegTsDVBCodeRate               fec_inner;
    };

Satellite Delivery System Descriptor (EN 300 468 v.1.13.1)

#### Members

guint32 `frequency`; | the frequency in kHz (kiloHertz) |
gfloat `orbital_position`; | the orbital position in degrees |
gboolean `west_east`; | If `TRUE`, the satellite is in the eastern part of the orbit, else in the western part. |
GstMpegTsSatellitePolarizationType `polarization`; | The polarization of the transmitted signal |
GstMpegTsSatelliteRolloff `roll_off`; | Roll-off factor used in DVB-S2 |
gboolean `modulation_system`; | modulation system, `TRUE` if DVB-S2, else DVB-S |
GstMpegTsModulationType `modulation_type`; | Modulation scheme used |
guint32 `symbol_rate`; | Symbol rate (in symbols per second) |
GstMpegTsDVBCodeRate `fec_inner`; | inner FEC scheme used |

### enum GstMpegTsDVBCodeRate

#### Members

GST_MPEGTS_FEC_NONE |  |
GST_MPEGTS_FEC_1_2 |  |
GST_MPEGTS_FEC_2_3 |  |
GST_MPEGTS_FEC_3_4 |  |
GST_MPEGTS_FEC_4_5 |  |
GST_MPEGTS_FEC_5_6 |  |
GST_MPEGTS_FEC_6_7 |  |
GST_MPEGTS_FEC_7_8 |  |
GST_MPEGTS_FEC_8_9 |  |
GST_MPEGTS_FEC_AUTO |  |
GST_MPEGTS_FEC_3_5 |  |
GST_MPEGTS_FEC_9_10 |  |
GST_MPEGTS_FEC_2_5 |  |

### enum GstMpegTsModulationType

#### Members

GST_MPEGTS_MODULATION_QPSK |  |
GST_MPEGTS_MODULATION_QAM_16 |  |
GST_MPEGTS_MODULATION_QAM_32 |  |
GST_MPEGTS_MODULATION_QAM_64 |  |
GST_MPEGTS_MODULATION_QAM_128 |  |
GST_MPEGTS_MODULATION_QAM_256 |  |
GST_MPEGTS_MODULATION_QAM_AUTO |  |
GST_MPEGTS_MODULATION_VSB_8 |  |
GST_MPEGTS_MODULATION_VSB_16 |  |
GST_MPEGTS_MODULATION_PSK_8 |  |
GST_MPEGTS_MODULATION_APSK_16 |  |
GST_MPEGTS_MODULATION_APSK_32 |  |
GST_MPEGTS_MODULATION_DQPSK |  |
GST_MPEGTS_MODULATION_QAM_4_NR_ |  |
GST_MPEGTS_MODULATION_NONE |  |

### enum GstMpegTsSatellitePolarizationType

#### Members

GST_MPEGTS_POLARIZATION_LINEAR_HORIZONTAL |  |
GST_MPEGTS_POLARIZATION_LINEAR_VERTICAL |  |
GST_MPEGTS_POLARIZATION_CIRCULAR_LEFT |  |
GST_MPEGTS_POLARIZATION_CIRCULAR_RIGHT |  |

### enum GstMpegTsSatelliteRolloff

#### Members

GST_MPEGTS_ROLLOFF_35 |  |
GST_MPEGTS_ROLLOFF_20 |  |
GST_MPEGTS_ROLLOFF_25 |  |
GST_MPEGTS_ROLLOFF_RESERVED |  |
GST_MPEGTS_ROLLOFF_AUTO |  |

### struct GstMpegTsCableDeliverySystemDescriptor

    struct GstMpegTsCableDeliverySystemDescriptor {
      guint32                            frequency;
      GstMpegTsCableOuterFECScheme       outer_fec;
      GstMpegTsModulationType            modulation;

      guint32                            symbol_rate;
      GstMpegTsDVBCodeRate               fec_inner;
    };

Cable Delivery System Descriptor (EN 300 468 v.1.13.1)

#### Members

guint32 `frequency`; | the frequency in Hz (Hertz) |
GstMpegTsCableOuterFECScheme `outer_fec`; | the outer FEC scheme used |
GstMpegTsModulationType `modulation`; | Modulation scheme used |
guint32 `symbol_rate`; | Symbol rate (in symbols per second) |
GstMpegTsDVBCodeRate `fec_inner`; | inner FEC scheme used |

### enum GstMpegTsCableOuterFECScheme

#### Members

GST_MPEGTS_CABLE_OUTER_FEC_UNDEFINED |  |
GST_MPEGTS_CABLE_OUTER_FEC_NONE |  |
GST_MPEGTS_CABLE_OUTER_FEC_RS_204_188 |  |

### enum GstMpegTsDVBServiceType

The type of service of a channel.

As specified in Table 87 of ETSI EN 300 468 v1.13.1

#### Members

GST_DVB_SERVICE_RESERVED_00 |  |
GST_DVB_SERVICE_DIGITAL_TELEVISION |  |
GST_DVB_SERVICE_DIGITAL_RADIO_SOUND |  |
GST_DVB_SERVICE_TELETEXT |  |
GST_DVB_SERVICE_NVOD_REFERENCE |  |
GST_DVB_SERVICE_NVOD_TIME_SHIFTED |  |
GST_DVB_SERVICE_MOSAIC |  |
GST_DVB_SERVICE_FM_RADIO |  |
GST_DVB_SERVICE_DVB_SRM |  |
GST_DVB_SERVICE_RESERVED_09 |  |
GST_DVB_SERVICE_ADVANCED_CODEC_DIGITAL_RADIO_SOUND |  |
GST_DVB_SERVICE_ADVANCED_CODEC_MOSAIC |  |
GST_DVB_SERVICE_DATA_BROADCAST |  |
GST_DVB_SERVICE_RESERVED_0D_COMMON_INTERFACE |  |
GST_DVB_SERVICE_RCS_MAP |  |
GST_DVB_SERVICE_RCS_FLS |  |
GST_DVB_SERVICE_DVB_MHP |  |
GST_DVB_SERVICE_MPEG2_HD_DIGITAL_TELEVISION |  |
GST_DVB_SERVICE_ADVANCED_CODEC_SD_DIGITAL_TELEVISION |  |
GST_DVB_SERVICE_ADVANCED_CODEC_SD_NVOD_TIME_SHIFTED |  |
GST_DVB_SERVICE_ADVANCED_CODEC_SD_NVOD_REFERENCE |  |
GST_DVB_SERVICE_ADVANCED_CODEC_HD_DIGITAL_TELEVISION |  |
GST_DVB_SERVICE_ADVANCED_CODEC_HD_NVOD_TIME_SHIFTED |  |
GST_DVB_SERVICE_ADVANCED_CODEC_HD_NVOD_REFERENCE |  |
GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_DIGITAL_TELEVISION |  |
GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_NVOD_TIME_SHIFTED |  |
GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_NVOD_REFERENCE |  |
GST_DVB_SERVICE_RESERVED_FF |  |