// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
// DO NOT EDIT

#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
#![allow(
    clippy::approx_constant,
    clippy::type_complexity,
    clippy::unreadable_literal,
    clippy::upper_case_acronyms
)]
#![cfg_attr(docsrs, feature(doc_cfg))]

#[allow(unused_imports)]
use libc::{
    c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
    intptr_t, size_t, ssize_t, uintptr_t, FILE,
};

#[allow(unused_imports)]
use glib::{gboolean, gconstpointer, gpointer, GType};

// Enums
pub type GstMpegtsATSCDescriptorType = c_int;
pub const GST_MTS_DESC_ATSC_STUFFING: GstMpegtsATSCDescriptorType = 128;
pub const GST_MTS_DESC_ATSC_AC3: GstMpegtsATSCDescriptorType = 129;
pub const GST_MTS_DESC_ATSC_CAPTION_SERVICE: GstMpegtsATSCDescriptorType = 134;
pub const GST_MTS_DESC_ATSC_CONTENT_ADVISORY: GstMpegtsATSCDescriptorType = 135;
pub const GST_MTS_DESC_ATSC_EXTENDED_CHANNEL_NAME: GstMpegtsATSCDescriptorType = 160;
pub const GST_MTS_DESC_ATSC_SERVICE_LOCATION: GstMpegtsATSCDescriptorType = 161;
pub const GST_MTS_DESC_ATSC_TIME_SHIFTED_SERVICE: GstMpegtsATSCDescriptorType = 162;
pub const GST_MTS_DESC_ATSC_COMPONENT_NAME: GstMpegtsATSCDescriptorType = 163;
pub const GST_MTS_DESC_ATSC_DCC_DEPARTING_REQUEST: GstMpegtsATSCDescriptorType = 168;
pub const GST_MTS_DESC_ATSC_DCC_ARRIVING_REQUEST: GstMpegtsATSCDescriptorType = 169;
pub const GST_MTS_DESC_ATSC_REDISTRIBUTION_CONTROL: GstMpegtsATSCDescriptorType = 170;
pub const GST_MTS_DESC_ATSC_GENRE: GstMpegtsATSCDescriptorType = 171;
pub const GST_MTS_DESC_ATSC_PRIVATE_INFORMATION: GstMpegtsATSCDescriptorType = 173;
pub const GST_MTS_DESC_ATSC_EAC3: GstMpegtsATSCDescriptorType = 204;
pub const GST_MTS_DESC_ATSC_ENHANCED_SIGNALING: GstMpegtsATSCDescriptorType = 178;
pub const GST_MTS_DESC_ATSC_DATA_SERVICE: GstMpegtsATSCDescriptorType = 164;
pub const GST_MTS_DESC_ATSC_PID_COUNT: GstMpegtsATSCDescriptorType = 165;
pub const GST_MTS_DESC_ATSC_DOWNLOAD_DESCRIPTOR: GstMpegtsATSCDescriptorType = 166;
pub const GST_MTS_DESC_ATSC_MULTIPROTOCOL_ENCAPSULATION: GstMpegtsATSCDescriptorType = 167;
pub const GST_MTS_DESC_ATSC_MODULE_LINK: GstMpegtsATSCDescriptorType = 180;
pub const GST_MTS_DESC_ATSC_CRC32: GstMpegtsATSCDescriptorType = 181;
pub const GST_MTS_DESC_ATSC_GROUP_LINK: GstMpegtsATSCDescriptorType = 184;

pub type GstMpegtsATSCStreamType = c_int;
pub const GST_MPEGTS_STREAM_TYPE_ATSC_DCII_VIDEO: GstMpegtsATSCStreamType = 128;
pub const GST_MPEGTS_STREAM_TYPE_ATSC_AUDIO_AC3: GstMpegtsATSCStreamType = 129;
pub const GST_MPEGTS_STREAM_TYPE_ATSC_SUBTITLING: GstMpegtsATSCStreamType = 130;
pub const GST_MPEGTS_STREAM_TYPE_ATSC_ISOCH_DATA: GstMpegtsATSCStreamType = 131;
pub const GST_MPEGTS_STREAM_TYPE_ATSC_SIT: GstMpegtsATSCStreamType = 134;
pub const GST_MPEGTS_STREAM_TYPE_ATSC_AUDIO_EAC3: GstMpegtsATSCStreamType = 135;
pub const GST_MPEGTS_STREAM_TYPE_ATSC_AUDIO_DTS_HD: GstMpegtsATSCStreamType = 136;

pub type GstMpegtsAtscMGTTableType = c_int;
pub const GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT0: GstMpegtsAtscMGTTableType = 256;
pub const GST_MPEGTS_ATSC_MGT_TABLE_TYPE_EIT127: GstMpegtsAtscMGTTableType = 383;
pub const GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT0: GstMpegtsAtscMGTTableType = 512;
pub const GST_MPEGTS_ATSC_MGT_TABLE_TYPE_ETT127: GstMpegtsAtscMGTTableType = 639;

pub type GstMpegtsCableOuterFECScheme = c_int;
pub const GST_MPEGTS_CABLE_OUTER_FEC_UNDEFINED: GstMpegtsCableOuterFECScheme = 0;
pub const GST_MPEGTS_CABLE_OUTER_FEC_NONE: GstMpegtsCableOuterFECScheme = 1;
pub const GST_MPEGTS_CABLE_OUTER_FEC_RS_204_188: GstMpegtsCableOuterFECScheme = 2;

pub type GstMpegtsComponentStreamContent = c_int;
pub const GST_MPEGTS_STREAM_CONTENT_MPEG2_VIDEO: GstMpegtsComponentStreamContent = 1;
pub const GST_MPEGTS_STREAM_CONTENT_MPEG1_LAYER2_AUDIO: GstMpegtsComponentStreamContent = 2;
pub const GST_MPEGTS_STREAM_CONTENT_TELETEXT_OR_SUBTITLE: GstMpegtsComponentStreamContent = 3;
pub const GST_MPEGTS_STREAM_CONTENT_AC_3: GstMpegtsComponentStreamContent = 4;
pub const GST_MPEGTS_STREAM_CONTENT_AVC: GstMpegtsComponentStreamContent = 5;
pub const GST_MPEGTS_STREAM_CONTENT_AAC: GstMpegtsComponentStreamContent = 6;
pub const GST_MPEGTS_STREAM_CONTENT_DTS: GstMpegtsComponentStreamContent = 7;
pub const GST_MPEGTS_STREAM_CONTENT_SRM_CPCM: GstMpegtsComponentStreamContent = 8;

pub type GstMpegtsContentNibbleHi = c_int;
pub const GST_MPEGTS_CONTENT_MOVIE_DRAMA: GstMpegtsContentNibbleHi = 1;
pub const GST_MPEGTS_CONTENT_NEWS_CURRENT_AFFAIRS: GstMpegtsContentNibbleHi = 2;
pub const GST_MPEGTS_CONTENT_SHOW_GAME_SHOW: GstMpegtsContentNibbleHi = 3;
pub const GST_MPEGTS_CONTENT_SPORTS: GstMpegtsContentNibbleHi = 4;
pub const GST_MPEGTS_CONTENT_CHILDREN_YOUTH_PROGRAM: GstMpegtsContentNibbleHi = 5;
pub const GST_MPEGTS_CONTENT_MUSIC_BALLET_DANCE: GstMpegtsContentNibbleHi = 6;
pub const GST_MPEGTS_CONTENT_ARTS_CULTURE: GstMpegtsContentNibbleHi = 7;
pub const GST_MPEGTS_CONTENT_SOCIAL_POLITICAL_ECONOMICS: GstMpegtsContentNibbleHi = 8;
pub const GST_MPEGTS_CONTENT_EDUCATION_SCIENCE_FACTUAL: GstMpegtsContentNibbleHi = 9;
pub const GST_MPEGTS_CONTENT_LEISURE_HOBBIES: GstMpegtsContentNibbleHi = 10;
pub const GST_MPEGTS_CONTENT_SPECIAL_CHARACTERISTICS: GstMpegtsContentNibbleHi = 11;

pub type GstMpegtsDVBCodeRate = c_int;
pub const GST_MPEGTS_FEC_NONE: GstMpegtsDVBCodeRate = 0;
pub const GST_MPEGTS_FEC_1_2: GstMpegtsDVBCodeRate = 1;
pub const GST_MPEGTS_FEC_2_3: GstMpegtsDVBCodeRate = 2;
pub const GST_MPEGTS_FEC_3_4: GstMpegtsDVBCodeRate = 3;
pub const GST_MPEGTS_FEC_4_5: GstMpegtsDVBCodeRate = 4;
pub const GST_MPEGTS_FEC_5_6: GstMpegtsDVBCodeRate = 5;
pub const GST_MPEGTS_FEC_6_7: GstMpegtsDVBCodeRate = 6;
pub const GST_MPEGTS_FEC_7_8: GstMpegtsDVBCodeRate = 7;
pub const GST_MPEGTS_FEC_8_9: GstMpegtsDVBCodeRate = 8;
pub const GST_MPEGTS_FEC_AUTO: GstMpegtsDVBCodeRate = 9;
pub const GST_MPEGTS_FEC_3_5: GstMpegtsDVBCodeRate = 10;
pub const GST_MPEGTS_FEC_9_10: GstMpegtsDVBCodeRate = 11;
pub const GST_MPEGTS_FEC_2_5: GstMpegtsDVBCodeRate = 12;

pub type GstMpegtsDVBDescriptorType = c_int;
pub const GST_MTS_DESC_DVB_NETWORK_NAME: GstMpegtsDVBDescriptorType = 64;
pub const GST_MTS_DESC_DVB_SERVICE_LIST: GstMpegtsDVBDescriptorType = 65;
pub const GST_MTS_DESC_DVB_STUFFING: GstMpegtsDVBDescriptorType = 66;
pub const GST_MTS_DESC_DVB_SATELLITE_DELIVERY_SYSTEM: GstMpegtsDVBDescriptorType = 67;
pub const GST_MTS_DESC_DVB_CABLE_DELIVERY_SYSTEM: GstMpegtsDVBDescriptorType = 68;
pub const GST_MTS_DESC_DVB_VBI_DATA: GstMpegtsDVBDescriptorType = 69;
pub const GST_MTS_DESC_DVB_VBI_TELETEXT: GstMpegtsDVBDescriptorType = 70;
pub const GST_MTS_DESC_DVB_BOUQUET_NAME: GstMpegtsDVBDescriptorType = 71;
pub const GST_MTS_DESC_DVB_SERVICE: GstMpegtsDVBDescriptorType = 72;
pub const GST_MTS_DESC_DVB_COUNTRY_AVAILABILITY: GstMpegtsDVBDescriptorType = 73;
pub const GST_MTS_DESC_DVB_LINKAGE: GstMpegtsDVBDescriptorType = 74;
pub const GST_MTS_DESC_DVB_NVOD_REFERENCE: GstMpegtsDVBDescriptorType = 75;
pub const GST_MTS_DESC_DVB_TIME_SHIFTED_SERVICE: GstMpegtsDVBDescriptorType = 76;
pub const GST_MTS_DESC_DVB_SHORT_EVENT: GstMpegtsDVBDescriptorType = 77;
pub const GST_MTS_DESC_DVB_EXTENDED_EVENT: GstMpegtsDVBDescriptorType = 78;
pub const GST_MTS_DESC_DVB_TIME_SHIFTED_EVENT: GstMpegtsDVBDescriptorType = 79;
pub const GST_MTS_DESC_DVB_COMPONENT: GstMpegtsDVBDescriptorType = 80;
pub const GST_MTS_DESC_DVB_MOSAIC: GstMpegtsDVBDescriptorType = 81;
pub const GST_MTS_DESC_DVB_STREAM_IDENTIFIER: GstMpegtsDVBDescriptorType = 82;
pub const GST_MTS_DESC_DVB_CA_IDENTIFIER: GstMpegtsDVBDescriptorType = 83;
pub const GST_MTS_DESC_DVB_CONTENT: GstMpegtsDVBDescriptorType = 84;
pub const GST_MTS_DESC_DVB_PARENTAL_RATING: GstMpegtsDVBDescriptorType = 85;
pub const GST_MTS_DESC_DVB_TELETEXT: GstMpegtsDVBDescriptorType = 86;
pub const GST_MTS_DESC_DVB_TELEPHONE: GstMpegtsDVBDescriptorType = 87;
pub const GST_MTS_DESC_DVB_LOCAL_TIME_OFFSET: GstMpegtsDVBDescriptorType = 88;
pub const GST_MTS_DESC_DVB_SUBTITLING: GstMpegtsDVBDescriptorType = 89;
pub const GST_MTS_DESC_DVB_TERRESTRIAL_DELIVERY_SYSTEM: GstMpegtsDVBDescriptorType = 90;
pub const GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME: GstMpegtsDVBDescriptorType = 91;
pub const GST_MTS_DESC_DVB_MULTILINGUAL_BOUQUET_NAME: GstMpegtsDVBDescriptorType = 92;
pub const GST_MTS_DESC_DVB_MULTILINGUAL_SERVICE_NAME: GstMpegtsDVBDescriptorType = 93;
pub const GST_MTS_DESC_DVB_MULTILINGUAL_COMPONENT: GstMpegtsDVBDescriptorType = 94;
pub const GST_MTS_DESC_DVB_PRIVATE_DATA_SPECIFIER: GstMpegtsDVBDescriptorType = 95;
pub const GST_MTS_DESC_DVB_SERVICE_MOVE: GstMpegtsDVBDescriptorType = 96;
pub const GST_MTS_DESC_DVB_SHORT_SMOOTHING_BUFFER: GstMpegtsDVBDescriptorType = 97;
pub const GST_MTS_DESC_DVB_FREQUENCY_LIST: GstMpegtsDVBDescriptorType = 98;
pub const GST_MTS_DESC_DVB_PARTIAL_TRANSPORT_STREAM: GstMpegtsDVBDescriptorType = 99;
pub const GST_MTS_DESC_DVB_DATA_BROADCAST: GstMpegtsDVBDescriptorType = 100;
pub const GST_MTS_DESC_DVB_SCRAMBLING: GstMpegtsDVBDescriptorType = 101;
pub const GST_MTS_DESC_DVB_DATA_BROADCAST_ID: GstMpegtsDVBDescriptorType = 102;
pub const GST_MTS_DESC_DVB_TRANSPORT_STREAM: GstMpegtsDVBDescriptorType = 103;
pub const GST_MTS_DESC_DVB_DSNG: GstMpegtsDVBDescriptorType = 104;
pub const GST_MTS_DESC_DVB_PDC: GstMpegtsDVBDescriptorType = 105;
pub const GST_MTS_DESC_DVB_AC3: GstMpegtsDVBDescriptorType = 106;
pub const GST_MTS_DESC_DVB_ANCILLARY_DATA: GstMpegtsDVBDescriptorType = 107;
pub const GST_MTS_DESC_DVB_CELL_LIST: GstMpegtsDVBDescriptorType = 108;
pub const GST_MTS_DESC_DVB_CELL_FREQUENCY_LINK: GstMpegtsDVBDescriptorType = 109;
pub const GST_MTS_DESC_DVB_ANNOUNCEMENT_SUPPORT: GstMpegtsDVBDescriptorType = 110;
pub const GST_MTS_DESC_DVB_APPLICATION_SIGNALLING: GstMpegtsDVBDescriptorType = 111;
pub const GST_MTS_DESC_DVB_ADAPTATION_FIELD_DATA: GstMpegtsDVBDescriptorType = 112;
pub const GST_MTS_DESC_DVB_SERVICE_IDENTIFIER: GstMpegtsDVBDescriptorType = 113;
pub const GST_MTS_DESC_DVB_SERVICE_AVAILABILITY: GstMpegtsDVBDescriptorType = 114;
pub const GST_MTS_DESC_DVB_DEFAULT_AUTHORITY: GstMpegtsDVBDescriptorType = 115;
pub const GST_MTS_DESC_DVB_RELATED_CONTENT: GstMpegtsDVBDescriptorType = 116;
pub const GST_MTS_DESC_DVB_TVA_ID: GstMpegtsDVBDescriptorType = 117;
pub const GST_MTS_DESC_DVB_CONTENT_IDENTIFIER: GstMpegtsDVBDescriptorType = 118;
pub const GST_MTS_DESC_DVB_TIMESLICE_FEC_IDENTIFIER: GstMpegtsDVBDescriptorType = 119;
pub const GST_MTS_DESC_DVB_ECM_REPETITION_RATE: GstMpegtsDVBDescriptorType = 120;
pub const GST_MTS_DESC_DVB_S2_SATELLITE_DELIVERY_SYSTEM: GstMpegtsDVBDescriptorType = 121;
pub const GST_MTS_DESC_DVB_ENHANCED_AC3: GstMpegtsDVBDescriptorType = 122;
pub const GST_MTS_DESC_DVB_DTS: GstMpegtsDVBDescriptorType = 123;
pub const GST_MTS_DESC_DVB_AAC: GstMpegtsDVBDescriptorType = 124;
pub const GST_MTS_DESC_DVB_XAIT_LOCATION: GstMpegtsDVBDescriptorType = 125;
pub const GST_MTS_DESC_DVB_FTA_CONTENT_MANAGEMENT: GstMpegtsDVBDescriptorType = 126;
pub const GST_MTS_DESC_DVB_EXTENSION: GstMpegtsDVBDescriptorType = 127;

pub type GstMpegtsDVBExtendedDescriptorType = c_int;
pub const GST_MTS_DESC_EXT_DVB_IMAGE_ICON: GstMpegtsDVBExtendedDescriptorType = 0;
pub const GST_MTS_DESC_EXT_DVB_CPCM_DELIVERY_SIGNALLING: GstMpegtsDVBExtendedDescriptorType = 1;
pub const GST_MTS_DESC_EXT_DVB_CP: GstMpegtsDVBExtendedDescriptorType = 2;
pub const GST_MTS_DESC_EXT_DVB_CP_IDENTIFIER: GstMpegtsDVBExtendedDescriptorType = 3;
pub const GST_MTS_DESC_EXT_DVB_T2_DELIVERY_SYSTEM: GstMpegtsDVBExtendedDescriptorType = 4;
pub const GST_MTS_DESC_EXT_DVB_SH_DELIVERY_SYSTEM: GstMpegtsDVBExtendedDescriptorType = 5;
pub const GST_MTS_DESC_EXT_DVB_SUPPLEMENTARY_AUDIO: GstMpegtsDVBExtendedDescriptorType = 6;
pub const GST_MTS_DESC_EXT_DVB_NETWORK_CHANGE_NOTIFY: GstMpegtsDVBExtendedDescriptorType = 7;
pub const GST_MTS_DESC_EXT_DVB_MESSAGE: GstMpegtsDVBExtendedDescriptorType = 8;
pub const GST_MTS_DESC_EXT_DVB_TARGET_REGION: GstMpegtsDVBExtendedDescriptorType = 9;
pub const GST_MTS_DESC_EXT_DVB_TARGET_REGION_NAME: GstMpegtsDVBExtendedDescriptorType = 10;
pub const GST_MTS_DESC_EXT_DVB_SERVICE_RELOCATED: GstMpegtsDVBExtendedDescriptorType = 11;
pub const GST_MTS_DESC_EXT_DVB_XAIT_PID: GstMpegtsDVBExtendedDescriptorType = 12;
pub const GST_MTS_DESC_EXT_DVB_C2_DELIVERY_SYSTEM: GstMpegtsDVBExtendedDescriptorType = 13;
pub const GST_MTS_DESC_EXT_DVB_DTS_HD_AUDIO_STREAM: GstMpegtsDVBExtendedDescriptorType = 14;
pub const GST_MTS_DESC_EXT_DVB_DTS_NEUTRAL: GstMpegtsDVBExtendedDescriptorType = 15;
pub const GST_MTS_DESC_EXT_DVB_VIDEO_DEPTH_RANGE: GstMpegtsDVBExtendedDescriptorType = 16;
pub const GST_MTS_DESC_EXT_DVB_T2MI: GstMpegtsDVBExtendedDescriptorType = 17;
pub const GST_MTS_DESC_EXT_DVB_URI_LINKAGE: GstMpegtsDVBExtendedDescriptorType = 19;
pub const GST_MTS_DESC_EXT_DVB_AC4: GstMpegtsDVBExtendedDescriptorType = 21;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub const GST_MTS_DESC_EXT_DVB_AUDIO_PRESELECTION: GstMpegtsDVBExtendedDescriptorType = 25;

pub type GstMpegtsDVBLinkageHandOverType = c_int;
pub const GST_MPEGTS_DVB_LINKAGE_HAND_OVER_RESERVED: GstMpegtsDVBLinkageHandOverType = 0;
pub const GST_MPEGTS_DVB_LINKAGE_HAND_OVER_IDENTICAL: GstMpegtsDVBLinkageHandOverType = 1;
pub const GST_MPEGTS_DVB_LINKAGE_HAND_OVER_LOCAL_VARIATION: GstMpegtsDVBLinkageHandOverType = 2;
pub const GST_MPEGTS_DVB_LINKAGE_HAND_OVER_ASSOCIATED: GstMpegtsDVBLinkageHandOverType = 3;

pub type GstMpegtsDVBLinkageType = c_int;
pub const GST_MPEGTS_DVB_LINKAGE_RESERVED_00: GstMpegtsDVBLinkageType = 0;
pub const GST_MPEGTS_DVB_LINKAGE_INFORMATION: GstMpegtsDVBLinkageType = 1;
pub const GST_MPEGTS_DVB_LINKAGE_EPG: GstMpegtsDVBLinkageType = 2;
pub const GST_MPEGTS_DVB_LINKAGE_CA_REPLACEMENT: GstMpegtsDVBLinkageType = 3;
pub const GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_COMPLETE_SI: GstMpegtsDVBLinkageType = 4;
pub const GST_MPEGTS_DVB_LINKAGE_SERVICE_REPLACEMENT: GstMpegtsDVBLinkageType = 5;
pub const GST_MPEGTS_DVB_LINKAGE_DATA_BROADCAST: GstMpegtsDVBLinkageType = 6;
pub const GST_MPEGTS_DVB_LINKAGE_RCS_MAP: GstMpegtsDVBLinkageType = 7;
pub const GST_MPEGTS_DVB_LINKAGE_MOBILE_HAND_OVER: GstMpegtsDVBLinkageType = 8;
pub const GST_MPEGTS_DVB_LINKAGE_SYSTEM_SOFTWARE_UPDATE: GstMpegtsDVBLinkageType = 9;
pub const GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_SSU: GstMpegtsDVBLinkageType = 10;
pub const GST_MPEGTS_DVB_LINKAGE_IP_MAC_NOTIFICATION: GstMpegtsDVBLinkageType = 11;
pub const GST_MPEGTS_DVB_LINKAGE_TS_CONTAINING_INT: GstMpegtsDVBLinkageType = 12;
pub const GST_MPEGTS_DVB_LINKAGE_EVENT: GstMpegtsDVBLinkageType = 13;
pub const GST_MPEGTS_DVB_LINKAGE_EXTENDED_EVENT: GstMpegtsDVBLinkageType = 14;

pub type GstMpegtsDVBScramblingModeType = c_int;
pub const GST_MPEGTS_DVB_SCRAMBLING_MODE_RESERVED: GstMpegtsDVBScramblingModeType = 0;
pub const GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA1: GstMpegtsDVBScramblingModeType = 1;
pub const GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA2: GstMpegtsDVBScramblingModeType = 2;
pub const GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_STANDARD: GstMpegtsDVBScramblingModeType = 3;
pub const GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_MINIMAL_ENHANCED: GstMpegtsDVBScramblingModeType = 4;
pub const GST_MPEGTS_DVB_SCRAMBLING_MODE_CSA3_FULL_ENHANCED: GstMpegtsDVBScramblingModeType = 5;
pub const GST_MPEGTS_DVB_SCRAMBLING_MODE_CISSA: GstMpegtsDVBScramblingModeType = 16;
pub const GST_MPEGTS_DVB_SCRAMBLING_MODE_ATIS_0: GstMpegtsDVBScramblingModeType = 112;
pub const GST_MPEGTS_DVB_SCRAMBLING_MODE_ATIS_F: GstMpegtsDVBScramblingModeType = 127;

pub type GstMpegtsDVBServiceType = c_int;
pub const GST_DVB_SERVICE_RESERVED_00: GstMpegtsDVBServiceType = 0;
pub const GST_DVB_SERVICE_DIGITAL_TELEVISION: GstMpegtsDVBServiceType = 1;
pub const GST_DVB_SERVICE_DIGITAL_RADIO_SOUND: GstMpegtsDVBServiceType = 2;
pub const GST_DVB_SERVICE_TELETEXT: GstMpegtsDVBServiceType = 3;
pub const GST_DVB_SERVICE_NVOD_REFERENCE: GstMpegtsDVBServiceType = 4;
pub const GST_DVB_SERVICE_NVOD_TIME_SHIFTED: GstMpegtsDVBServiceType = 5;
pub const GST_DVB_SERVICE_MOSAIC: GstMpegtsDVBServiceType = 6;
pub const GST_DVB_SERVICE_FM_RADIO: GstMpegtsDVBServiceType = 7;
pub const GST_DVB_SERVICE_DVB_SRM: GstMpegtsDVBServiceType = 8;
pub const GST_DVB_SERVICE_RESERVED_09: GstMpegtsDVBServiceType = 9;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_DIGITAL_RADIO_SOUND: GstMpegtsDVBServiceType = 10;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_MOSAIC: GstMpegtsDVBServiceType = 11;
pub const GST_DVB_SERVICE_DATA_BROADCAST: GstMpegtsDVBServiceType = 12;
pub const GST_DVB_SERVICE_RESERVED_0D_COMMON_INTERFACE: GstMpegtsDVBServiceType = 13;
pub const GST_DVB_SERVICE_RCS_MAP: GstMpegtsDVBServiceType = 14;
pub const GST_DVB_SERVICE_RCS_FLS: GstMpegtsDVBServiceType = 15;
pub const GST_DVB_SERVICE_DVB_MHP: GstMpegtsDVBServiceType = 16;
pub const GST_DVB_SERVICE_MPEG2_HD_DIGITAL_TELEVISION: GstMpegtsDVBServiceType = 17;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_SD_DIGITAL_TELEVISION: GstMpegtsDVBServiceType = 22;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_SD_NVOD_TIME_SHIFTED: GstMpegtsDVBServiceType = 23;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_SD_NVOD_REFERENCE: GstMpegtsDVBServiceType = 24;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_HD_DIGITAL_TELEVISION: GstMpegtsDVBServiceType = 25;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_HD_NVOD_TIME_SHIFTED: GstMpegtsDVBServiceType = 26;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_HD_NVOD_REFERENCE: GstMpegtsDVBServiceType = 27;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_DIGITAL_TELEVISION: GstMpegtsDVBServiceType = 28;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_NVOD_TIME_SHIFTED: GstMpegtsDVBServiceType = 29;
pub const GST_DVB_SERVICE_ADVANCED_CODEC_STEREO_HD_NVOD_REFERENCE: GstMpegtsDVBServiceType = 30;
pub const GST_DVB_SERVICE_RESERVED_FF: GstMpegtsDVBServiceType = 31;

pub type GstMpegtsDVBTeletextType = c_int;
pub const INITIAL_PAGE: GstMpegtsDVBTeletextType = 1;
pub const SUBTITLE_PAGE: GstMpegtsDVBTeletextType = 2;
pub const ADDITIONAL_INFO_PAGE: GstMpegtsDVBTeletextType = 3;
pub const PROGRAMME_SCHEDULE_PAGE: GstMpegtsDVBTeletextType = 4;
pub const HEARING_IMPAIRED_PAGE: GstMpegtsDVBTeletextType = 5;

pub type GstMpegtsDescriptorType = c_int;
pub const GST_MTS_DESC_RESERVED_00: GstMpegtsDescriptorType = 0;
pub const GST_MTS_DESC_RESERVED_01: GstMpegtsDescriptorType = 1;
pub const GST_MTS_DESC_VIDEO_STREAM: GstMpegtsDescriptorType = 2;
pub const GST_MTS_DESC_AUDIO_STREAM: GstMpegtsDescriptorType = 3;
pub const GST_MTS_DESC_HIERARCHY: GstMpegtsDescriptorType = 4;
pub const GST_MTS_DESC_REGISTRATION: GstMpegtsDescriptorType = 5;
pub const GST_MTS_DESC_DATA_STREAM_ALIGNMENT: GstMpegtsDescriptorType = 6;
pub const GST_MTS_DESC_TARGET_BACKGROUND_GRID: GstMpegtsDescriptorType = 7;
pub const GST_MTS_DESC_VIDEO_WINDOW: GstMpegtsDescriptorType = 8;
pub const GST_MTS_DESC_CA: GstMpegtsDescriptorType = 9;
pub const GST_MTS_DESC_ISO_639_LANGUAGE: GstMpegtsDescriptorType = 10;
pub const GST_MTS_DESC_SYSTEM_CLOCK: GstMpegtsDescriptorType = 11;
pub const GST_MTS_DESC_MULTIPLEX_BUFFER_UTILISATION: GstMpegtsDescriptorType = 12;
pub const GST_MTS_DESC_COPYRIGHT: GstMpegtsDescriptorType = 13;
pub const GST_MTS_DESC_MAXIMUM_BITRATE: GstMpegtsDescriptorType = 14;
pub const GST_MTS_DESC_PRIVATE_DATA_INDICATOR: GstMpegtsDescriptorType = 15;
pub const GST_MTS_DESC_SMOOTHING_BUFFER: GstMpegtsDescriptorType = 16;
pub const GST_MTS_DESC_STD: GstMpegtsDescriptorType = 17;
pub const GST_MTS_DESC_IBP: GstMpegtsDescriptorType = 18;
pub const GST_MTS_DESC_DSMCC_CAROUSEL_IDENTIFIER: GstMpegtsDescriptorType = 19;
pub const GST_MTS_DESC_DSMCC_ASSOCIATION_TAG: GstMpegtsDescriptorType = 20;
pub const GST_MTS_DESC_DSMCC_DEFERRED_ASSOCIATION_TAG: GstMpegtsDescriptorType = 21;
pub const GST_MTS_DESC_DSMCC_NPT_REFERENCE: GstMpegtsDescriptorType = 23;
pub const GST_MTS_DESC_DSMCC_NPT_ENDPOINT: GstMpegtsDescriptorType = 24;
pub const GST_MTS_DESC_DSMCC_STREAM_MODE: GstMpegtsDescriptorType = 25;
pub const GST_MTS_DESC_DSMCC_STREAM_EVENT: GstMpegtsDescriptorType = 26;
pub const GST_MTS_DESC_MPEG4_VIDEO: GstMpegtsDescriptorType = 27;
pub const GST_MTS_DESC_MPEG4_AUDIO: GstMpegtsDescriptorType = 28;
pub const GST_MTS_DESC_IOD: GstMpegtsDescriptorType = 29;
pub const GST_MTS_DESC_SL: GstMpegtsDescriptorType = 30;
pub const GST_MTS_DESC_FMC: GstMpegtsDescriptorType = 31;
pub const GST_MTS_DESC_EXTERNAL_ES_ID: GstMpegtsDescriptorType = 32;
pub const GST_MTS_DESC_MUX_CODE: GstMpegtsDescriptorType = 33;
pub const GST_MTS_DESC_FMX_BUFFER_SIZE: GstMpegtsDescriptorType = 34;
pub const GST_MTS_DESC_MULTIPLEX_BUFFER: GstMpegtsDescriptorType = 35;
pub const GST_MTS_DESC_CONTENT_LABELING: GstMpegtsDescriptorType = 36;
pub const GST_MTS_DESC_METADATA_POINTER: GstMpegtsDescriptorType = 37;
pub const GST_MTS_DESC_METADATA: GstMpegtsDescriptorType = 38;
pub const GST_MTS_DESC_METADATA_STD: GstMpegtsDescriptorType = 39;
pub const GST_MTS_DESC_AVC_VIDEO: GstMpegtsDescriptorType = 40;
pub const GST_MTS_DESC_IPMP: GstMpegtsDescriptorType = 41;
pub const GST_MTS_DESC_AVC_TIMING_AND_HRD: GstMpegtsDescriptorType = 42;
pub const GST_MTS_DESC_MPEG2_AAC_AUDIO: GstMpegtsDescriptorType = 43;
pub const GST_MTS_DESC_FLEX_MUX_TIMING: GstMpegtsDescriptorType = 44;
pub const GST_MTS_DESC_MPEG4_TEXT: GstMpegtsDescriptorType = 45;
pub const GST_MTS_DESC_MPEG4_AUDIO_EXTENSION: GstMpegtsDescriptorType = 46;
pub const GST_MTS_DESC_AUXILIARY_VIDEO_STREAM: GstMpegtsDescriptorType = 47;
pub const GST_MTS_DESC_SVC_EXTENSION: GstMpegtsDescriptorType = 48;
pub const GST_MTS_DESC_MVC_EXTENSION: GstMpegtsDescriptorType = 49;
pub const GST_MTS_DESC_J2K_VIDEO: GstMpegtsDescriptorType = 50;
pub const GST_MTS_DESC_MVC_OPERATION_POINT: GstMpegtsDescriptorType = 51;
pub const GST_MTS_DESC_MPEG2_STEREOSCOPIC_VIDEO_FORMAT: GstMpegtsDescriptorType = 52;
pub const GST_MTS_DESC_STEREOSCOPIC_PROGRAM_INFO: GstMpegtsDescriptorType = 53;
pub const GST_MTS_DESC_STEREOSCOPIC_VIDEO_INFO: GstMpegtsDescriptorType = 54;

pub type GstMpegtsHdmvStreamType = c_int;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_LPCM: GstMpegtsHdmvStreamType = 128;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_AC3: GstMpegtsHdmvStreamType = 129;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_DTS: GstMpegtsHdmvStreamType = 130;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_AC3_TRUE_HD: GstMpegtsHdmvStreamType = 131;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_AC3_PLUS: GstMpegtsHdmvStreamType = 132;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_DTS_HD: GstMpegtsHdmvStreamType = 133;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_DTS_HD_MASTER_AUDIO: GstMpegtsHdmvStreamType = 134;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_EAC3: GstMpegtsHdmvStreamType = 135;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_SUBPICTURE_PGS: GstMpegtsHdmvStreamType = 144;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_IGS: GstMpegtsHdmvStreamType = 145;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_SUBTITLE: GstMpegtsHdmvStreamType = 146;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_AC3_PLUS_SECONDARY: GstMpegtsHdmvStreamType = 161;
pub const GST_MPEGTS_STREAM_TYPE_HDMV_AUDIO_DTS_HD_SECONDARY: GstMpegtsHdmvStreamType = 162;

pub type GstMpegtsISDBDescriptorType = c_int;
pub const GST_MTS_DESC_ISDB_HIERARCHICAL_TRANSMISSION: GstMpegtsISDBDescriptorType = 192;
pub const GST_MTS_DESC_ISDB_DIGITAL_COPY_CONTROL: GstMpegtsISDBDescriptorType = 193;
pub const GST_MTS_DESC_ISDB_NETWORK_IDENTIFICATION: GstMpegtsISDBDescriptorType = 194;
pub const GST_MTS_DESC_ISDB_PARTIAL_TS_TIME: GstMpegtsISDBDescriptorType = 195;
pub const GST_MTS_DESC_ISDB_AUDIO_COMPONENT: GstMpegtsISDBDescriptorType = 196;
pub const GST_MTS_DESC_ISDB_HYPERLINK: GstMpegtsISDBDescriptorType = 197;
pub const GST_MTS_DESC_ISDB_TARGET_REGION: GstMpegtsISDBDescriptorType = 198;
pub const GST_MTS_DESC_ISDB_DATA_CONTENT: GstMpegtsISDBDescriptorType = 199;
pub const GST_MTS_DESC_ISDB_VIDEO_DECODE_CONTROL: GstMpegtsISDBDescriptorType = 200;
pub const GST_MTS_DESC_ISDB_DOWNLOAD_CONTENT: GstMpegtsISDBDescriptorType = 201;
pub const GST_MTS_DESC_ISDB_CA_EMM_TS: GstMpegtsISDBDescriptorType = 202;
pub const GST_MTS_DESC_ISDB_CA_CONTRACT_INFORMATION: GstMpegtsISDBDescriptorType = 203;
pub const GST_MTS_DESC_ISDB_CA_SERVICE: GstMpegtsISDBDescriptorType = 204;
pub const GST_MTS_DESC_ISDB_TS_INFORMATION: GstMpegtsISDBDescriptorType = 205;
pub const GST_MTS_DESC_ISDB_EXTENDED_BROADCASTER: GstMpegtsISDBDescriptorType = 206;
pub const GST_MTS_DESC_ISDB_LOGO_TRANSMISSION: GstMpegtsISDBDescriptorType = 207;
pub const GST_MTS_DESC_ISDB_BASIC_LOCAL_EVENT: GstMpegtsISDBDescriptorType = 208;
pub const GST_MTS_DESC_ISDB_REFERENCE: GstMpegtsISDBDescriptorType = 209;
pub const GST_MTS_DESC_ISDB_NODE_RELATION: GstMpegtsISDBDescriptorType = 210;
pub const GST_MTS_DESC_ISDB_SHORT_NODE_INFORMATION: GstMpegtsISDBDescriptorType = 211;
pub const GST_MTS_DESC_ISDB_STC_REFERENCE: GstMpegtsISDBDescriptorType = 212;
pub const GST_MTS_DESC_ISDB_SERIES: GstMpegtsISDBDescriptorType = 213;
pub const GST_MTS_DESC_ISDB_EVENT_GROUP: GstMpegtsISDBDescriptorType = 214;
pub const GST_MTS_DESC_ISDB_SI_PARAMETER: GstMpegtsISDBDescriptorType = 215;
pub const GST_MTS_DESC_ISDB_BROADCASTER_NAME: GstMpegtsISDBDescriptorType = 216;
pub const GST_MTS_DESC_ISDB_COMPONENT_GROUP: GstMpegtsISDBDescriptorType = 217;
pub const GST_MTS_DESC_ISDB_SI_PRIME_TS: GstMpegtsISDBDescriptorType = 218;
pub const GST_MTS_DESC_ISDB_BOARD_INFORMATION: GstMpegtsISDBDescriptorType = 219;
pub const GST_MTS_DESC_ISDB_LDT_LINKAGE: GstMpegtsISDBDescriptorType = 220;
pub const GST_MTS_DESC_ISDB_CONNECTED_TRANSMISSION: GstMpegtsISDBDescriptorType = 221;
pub const GST_MTS_DESC_ISDB_CONTENT_AVAILABILITY: GstMpegtsISDBDescriptorType = 222;
pub const GST_MTS_DESC_ISDB_SERVICE_GROUP: GstMpegtsISDBDescriptorType = 224;

pub type GstMpegtsIso639AudioType = c_int;
pub const GST_MPEGTS_AUDIO_TYPE_UNDEFINED: GstMpegtsIso639AudioType = 0;
pub const GST_MPEGTS_AUDIO_TYPE_CLEAN_EFFECTS: GstMpegtsIso639AudioType = 1;
pub const GST_MPEGTS_AUDIO_TYPE_HEARING_IMPAIRED: GstMpegtsIso639AudioType = 2;
pub const GST_MPEGTS_AUDIO_TYPE_VISUAL_IMPAIRED_COMMENTARY: GstMpegtsIso639AudioType = 3;

pub type GstMpegtsMetadataFormat = c_int;
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub const GST_MPEGTS_METADATA_FORMAT_TEM: GstMpegtsMetadataFormat = 16;
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub const GST_MPEGTS_METADATA_FORMAT_BIM: GstMpegtsMetadataFormat = 17;
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub const GST_MPEGTS_METADATA_FORMAT_APPLICATION_FORMAT: GstMpegtsMetadataFormat = 63;
#[cfg(feature = "v1_24")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
pub const GST_MPEGTS_METADATA_FORMAT_IDENTIFIER_FIELD: GstMpegtsMetadataFormat = 255;

pub type GstMpegtsMiscDescriptorType = c_int;
pub const GST_MTS_DESC_DTG_LOGICAL_CHANNEL: GstMpegtsMiscDescriptorType = 131;

pub type GstMpegtsModulationType = c_int;
pub const GST_MPEGTS_MODULATION_QPSK: GstMpegtsModulationType = 0;
pub const GST_MPEGTS_MODULATION_QAM_16: GstMpegtsModulationType = 1;
pub const GST_MPEGTS_MODULATION_QAM_32: GstMpegtsModulationType = 2;
pub const GST_MPEGTS_MODULATION_QAM_64: GstMpegtsModulationType = 3;
pub const GST_MPEGTS_MODULATION_QAM_128: GstMpegtsModulationType = 4;
pub const GST_MPEGTS_MODULATION_QAM_256: GstMpegtsModulationType = 5;
pub const GST_MPEGTS_MODULATION_QAM_AUTO: GstMpegtsModulationType = 6;
pub const GST_MPEGTS_MODULATION_VSB_8: GstMpegtsModulationType = 7;
pub const GST_MPEGTS_MODULATION_VSB_16: GstMpegtsModulationType = 8;
pub const GST_MPEGTS_MODULATION_PSK_8: GstMpegtsModulationType = 9;
pub const GST_MPEGTS_MODULATION_APSK_16: GstMpegtsModulationType = 10;
pub const GST_MPEGTS_MODULATION_APSK_32: GstMpegtsModulationType = 11;
pub const GST_MPEGTS_MODULATION_DQPSK: GstMpegtsModulationType = 12;
pub const GST_MPEGTS_MODULATION_QAM_4_NR_: GstMpegtsModulationType = 13;
pub const GST_MPEGTS_MODULATION_NONE: GstMpegtsModulationType = 14;

pub type GstMpegtsRunningStatus = c_int;
pub const GST_MPEGTS_RUNNING_STATUS_UNDEFINED: GstMpegtsRunningStatus = 0;
pub const GST_MPEGTS_RUNNING_STATUS_NOT_RUNNING: GstMpegtsRunningStatus = 1;
pub const GST_MPEGTS_RUNNING_STATUS_STARTS_IN_FEW_SECONDS: GstMpegtsRunningStatus = 2;
pub const GST_MPEGTS_RUNNING_STATUS_PAUSING: GstMpegtsRunningStatus = 3;
pub const GST_MPEGTS_RUNNING_STATUS_RUNNING: GstMpegtsRunningStatus = 4;
pub const GST_MPEGTS_RUNNING_STATUS_OFF_AIR: GstMpegtsRunningStatus = 5;

pub type GstMpegtsSCTEDescriptorType = c_int;
pub const GST_MTS_DESC_SCTE_STUFFING: GstMpegtsSCTEDescriptorType = 128;
pub const GST_MTS_DESC_SCTE_AC3: GstMpegtsSCTEDescriptorType = 129;
pub const GST_MTS_DESC_SCTE_FRAME_RATE: GstMpegtsSCTEDescriptorType = 130;
pub const GST_MTS_DESC_SCTE_EXTENDED_VIDEO: GstMpegtsSCTEDescriptorType = 131;
pub const GST_MTS_DESC_SCTE_COMPONENT_NAME: GstMpegtsSCTEDescriptorType = 132;
pub const GST_MTS_DESC_SCTE_FREQUENCY_SPEC: GstMpegtsSCTEDescriptorType = 144;
pub const GST_MTS_DESC_SCTE_MODULATION_PARAMS: GstMpegtsSCTEDescriptorType = 145;
pub const GST_MTS_DESC_SCTE_TRANSPORT_STREAM_ID: GstMpegtsSCTEDescriptorType = 146;

pub type GstMpegtsSCTESpliceCommandType = c_int;
pub const GST_MTS_SCTE_SPLICE_COMMAND_NULL: GstMpegtsSCTESpliceCommandType = 0;
pub const GST_MTS_SCTE_SPLICE_COMMAND_SCHEDULE: GstMpegtsSCTESpliceCommandType = 4;
pub const GST_MTS_SCTE_SPLICE_COMMAND_INSERT: GstMpegtsSCTESpliceCommandType = 5;
pub const GST_MTS_SCTE_SPLICE_COMMAND_TIME: GstMpegtsSCTESpliceCommandType = 6;
pub const GST_MTS_SCTE_SPLICE_COMMAND_BANDWIDTH: GstMpegtsSCTESpliceCommandType = 7;
pub const GST_MTS_SCTE_SPLICE_COMMAND_PRIVATE: GstMpegtsSCTESpliceCommandType = 255;

pub type GstMpegtsSCTESpliceDescriptor = c_int;
pub const GST_MTS_SCTE_DESC_AVAIL: GstMpegtsSCTESpliceDescriptor = 0;
pub const GST_MTS_SCTE_DESC_DTMF: GstMpegtsSCTESpliceDescriptor = 1;
pub const GST_MTS_SCTE_DESC_SEGMENTATION: GstMpegtsSCTESpliceDescriptor = 2;
pub const GST_MTS_SCTE_DESC_TIME: GstMpegtsSCTESpliceDescriptor = 3;
pub const GST_MTS_SCTE_DESC_AUDIO: GstMpegtsSCTESpliceDescriptor = 4;

pub type GstMpegtsSatellitePolarizationType = c_int;
pub const GST_MPEGTS_POLARIZATION_LINEAR_HORIZONTAL: GstMpegtsSatellitePolarizationType = 0;
pub const GST_MPEGTS_POLARIZATION_LINEAR_VERTICAL: GstMpegtsSatellitePolarizationType = 1;
pub const GST_MPEGTS_POLARIZATION_CIRCULAR_LEFT: GstMpegtsSatellitePolarizationType = 2;
pub const GST_MPEGTS_POLARIZATION_CIRCULAR_RIGHT: GstMpegtsSatellitePolarizationType = 3;

pub type GstMpegtsSatelliteRolloff = c_int;
pub const GST_MPEGTS_ROLLOFF_35: GstMpegtsSatelliteRolloff = 0;
pub const GST_MPEGTS_ROLLOFF_20: GstMpegtsSatelliteRolloff = 1;
pub const GST_MPEGTS_ROLLOFF_25: GstMpegtsSatelliteRolloff = 2;
pub const GST_MPEGTS_ROLLOFF_RESERVED: GstMpegtsSatelliteRolloff = 3;
pub const GST_MPEGTS_ROLLOFF_AUTO: GstMpegtsSatelliteRolloff = 4;

pub type GstMpegtsScteStreamType = c_int;
pub const GST_MPEGTS_STREAM_TYPE_SCTE_SUBTITLING: GstMpegtsScteStreamType = 130;
pub const GST_MPEGTS_STREAM_TYPE_SCTE_ISOCH_DATA: GstMpegtsScteStreamType = 131;
pub const GST_MPEGTS_STREAM_TYPE_SCTE_SIT: GstMpegtsScteStreamType = 134;
pub const GST_MPEGTS_STREAM_TYPE_SCTE_DST_NRT: GstMpegtsScteStreamType = 149;
pub const GST_MPEGTS_STREAM_TYPE_SCTE_DSMCC_DCB: GstMpegtsScteStreamType = 176;
pub const GST_MPEGTS_STREAM_TYPE_SCTE_SIGNALING: GstMpegtsScteStreamType = 192;
pub const GST_MPEGTS_STREAM_TYPE_SCTE_SYNC_DATA: GstMpegtsScteStreamType = 194;
pub const GST_MPEGTS_STREAM_TYPE_SCTE_ASYNC_DATA: GstMpegtsScteStreamType = 195;

pub type GstMpegtsSectionATSCTableID = c_int;
pub const GST_MTS_TABLE_ID_ATSC_MASTER_GUIDE: GstMpegtsSectionATSCTableID = 199;
pub const GST_MTS_TABLE_ID_ATSC_TERRESTRIAL_VIRTUAL_CHANNEL: GstMpegtsSectionATSCTableID = 200;
pub const GST_MTS_TABLE_ID_ATSC_CABLE_VIRTUAL_CHANNEL: GstMpegtsSectionATSCTableID = 201;
pub const GST_MTS_TABLE_ID_ATSC_RATING_REGION: GstMpegtsSectionATSCTableID = 202;
pub const GST_MTS_TABLE_ID_ATSC_EVENT_INFORMATION: GstMpegtsSectionATSCTableID = 203;
pub const GST_MTS_TABLE_ID_ATSC_CHANNEL_OR_EVENT_EXTENDED_TEXT: GstMpegtsSectionATSCTableID = 204;
pub const GST_MTS_TABLE_ID_ATSC_SYSTEM_TIME: GstMpegtsSectionATSCTableID = 205;
pub const GST_MTS_TABLE_ID_ATSC_DATA_EVENT: GstMpegtsSectionATSCTableID = 206;
pub const GST_MTS_TABLE_ID_ATSC_DATA_SERVICE: GstMpegtsSectionATSCTableID = 207;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub const GST_MTS_TABLE_ID_ATSC_PROGRAM_IDENTIFIER: GstMpegtsSectionATSCTableID = 208;
pub const GST_MTS_TABLE_ID_ATSC_NETWORK_RESOURCE: GstMpegtsSectionATSCTableID = 209;
pub const GST_MTS_TABLE_ID_ATSC_LONG_TERM_SERVICE: GstMpegtsSectionATSCTableID = 210;
pub const GST_MTS_TABLE_ID_ATSC_DIRECTED_CHANNEL_CHANGE: GstMpegtsSectionATSCTableID = 211;
pub const GST_MTS_TABLE_ID_ATSC_DIRECTED_CHANNEL_CHANGE_SECTION_CODE: GstMpegtsSectionATSCTableID =
    212;
pub const GST_MTS_TABLE_ID_ATSC_AGGREGATE_EVENT_INFORMATION: GstMpegtsSectionATSCTableID = 214;
pub const GST_MTS_TABLE_ID_ATSC_AGGREGATE_EXTENDED_TEXT: GstMpegtsSectionATSCTableID = 215;
pub const GST_MTS_TABLE_ID_ATSC_AGGREGATE_DATA_EVENT: GstMpegtsSectionATSCTableID = 217;
pub const GST_MTS_TABLE_ID_ATSC_SATELLITE_VIRTUAL_CHANNEL: GstMpegtsSectionATSCTableID = 218;

pub type GstMpegtsSectionDVBTableID = c_int;
pub const GST_MTS_TABLE_ID_NETWORK_INFORMATION_ACTUAL_NETWORK: GstMpegtsSectionDVBTableID = 64;
pub const GST_MTS_TABLE_ID_NETWORK_INFORMATION_OTHER_NETWORK: GstMpegtsSectionDVBTableID = 65;
pub const GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_ACTUAL_TS: GstMpegtsSectionDVBTableID = 66;
pub const GST_MTS_TABLE_ID_SERVICE_DESCRIPTION_OTHER_TS: GstMpegtsSectionDVBTableID = 70;
pub const GST_MTS_TABLE_ID_BOUQUET_ASSOCIATION: GstMpegtsSectionDVBTableID = 74;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub const GST_MTS_TABLE_ID_UPDATE_NOTIFICATION: GstMpegtsSectionDVBTableID = 75;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub const GST_MTS_TABLE_ID_DOWNLOADABLE_FONT_INFO: GstMpegtsSectionDVBTableID = 76;
pub const GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_PRESENT: GstMpegtsSectionDVBTableID = 78;
pub const GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_PRESENT: GstMpegtsSectionDVBTableID = 79;
pub const GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_1: GstMpegtsSectionDVBTableID = 80;
pub const GST_MTS_TABLE_ID_EVENT_INFORMATION_ACTUAL_TS_SCHEDULE_N: GstMpegtsSectionDVBTableID = 95;
pub const GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_1: GstMpegtsSectionDVBTableID = 96;
pub const GST_MTS_TABLE_ID_EVENT_INFORMATION_OTHER_TS_SCHEDULE_N: GstMpegtsSectionDVBTableID = 111;
pub const GST_MTS_TABLE_ID_TIME_DATE: GstMpegtsSectionDVBTableID = 112;
pub const GST_MTS_TABLE_ID_RUNNING_STATUS: GstMpegtsSectionDVBTableID = 113;
pub const GST_MTS_TABLE_ID_STUFFING: GstMpegtsSectionDVBTableID = 114;
pub const GST_MTS_TABLE_ID_TIME_OFFSET: GstMpegtsSectionDVBTableID = 115;
pub const GST_MTS_TABLE_ID_APPLICATION_INFORMATION_TABLE: GstMpegtsSectionDVBTableID = 116;
pub const GST_MTS_TABLE_ID_CONTAINER: GstMpegtsSectionDVBTableID = 117;
pub const GST_MTS_TABLE_ID_RELATED_CONTENT: GstMpegtsSectionDVBTableID = 118;
pub const GST_MTS_TABLE_ID_CONTENT_IDENTIFIER: GstMpegtsSectionDVBTableID = 119;
pub const GST_MTS_TABLE_ID_MPE_FEC: GstMpegtsSectionDVBTableID = 120;
pub const GST_MTS_TABLE_ID_RESOLUTION_NOTIFICATION: GstMpegtsSectionDVBTableID = 121;
pub const GST_MTS_TABLE_ID_MPE_IFEC: GstMpegtsSectionDVBTableID = 122;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub const GST_MTS_TABLE_ID_PROTECTION_MESSAGE: GstMpegtsSectionDVBTableID = 123;
pub const GST_MTS_TABLE_ID_DISCONTINUITY_INFORMATION: GstMpegtsSectionDVBTableID = 126;
pub const GST_MTS_TABLE_ID_SELECTION_INFORMATION: GstMpegtsSectionDVBTableID = 127;
pub const GST_MTS_TABLE_ID_CA_MESSAGE_ECM_0: GstMpegtsSectionDVBTableID = 128;
pub const GST_MTS_TABLE_ID_CA_MESSAGE_ECM_1: GstMpegtsSectionDVBTableID = 129;
pub const GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_1: GstMpegtsSectionDVBTableID = 130;
pub const GST_MTS_TABLE_ID_CA_MESSAGE_SYSTEM_PRIVATE_N: GstMpegtsSectionDVBTableID = 143;
pub const GST_MTS_TABLE_ID_SCT: GstMpegtsSectionDVBTableID = 160;
pub const GST_MTS_TABLE_ID_FCT: GstMpegtsSectionDVBTableID = 161;
pub const GST_MTS_TABLE_ID_TCT: GstMpegtsSectionDVBTableID = 162;
pub const GST_MTS_TABLE_ID_SPT: GstMpegtsSectionDVBTableID = 163;
pub const GST_MTS_TABLE_ID_CMT: GstMpegtsSectionDVBTableID = 164;
pub const GST_MTS_TABLE_ID_TBTP: GstMpegtsSectionDVBTableID = 165;
pub const GST_MTS_TABLE_ID_PCR_PACKET_PAYLOAD: GstMpegtsSectionDVBTableID = 166;
pub const GST_MTS_TABLE_ID_TRANSMISSION_MODE_SUPPORT_PAYLOAD: GstMpegtsSectionDVBTableID = 170;
pub const GST_MTS_TABLE_ID_TIM: GstMpegtsSectionDVBTableID = 176;
pub const GST_MTS_TABLE_ID_LL_FEC_PARITY_DATA_TABLE: GstMpegtsSectionDVBTableID = 177;

pub type GstMpegtsSectionSCTETableID = c_int;
pub const GST_MTS_TABLE_ID_SCTE_EAS: GstMpegtsSectionSCTETableID = 216;
pub const GST_MTS_TABLE_ID_SCTE_EBIF: GstMpegtsSectionSCTETableID = 224;
pub const GST_MTS_TABLE_ID_SCTE_RESERVED: GstMpegtsSectionSCTETableID = 225;
pub const GST_MTS_TABLE_ID_SCTE_EISS: GstMpegtsSectionSCTETableID = 226;
pub const GST_MTS_TABLE_ID_SCTE_DII: GstMpegtsSectionSCTETableID = 227;
pub const GST_MTS_TABLE_ID_SCTE_DDB: GstMpegtsSectionSCTETableID = 228;
pub const GST_MTS_TABLE_ID_SCTE_SPLICE: GstMpegtsSectionSCTETableID = 252;

pub type GstMpegtsSectionTableID = c_int;
pub const GST_MTS_TABLE_ID_PROGRAM_ASSOCIATION: GstMpegtsSectionTableID = 0;
pub const GST_MTS_TABLE_ID_CONDITIONAL_ACCESS: GstMpegtsSectionTableID = 1;
pub const GST_MTS_TABLE_ID_TS_PROGRAM_MAP: GstMpegtsSectionTableID = 2;
pub const GST_MTS_TABLE_ID_TS_DESCRIPTION: GstMpegtsSectionTableID = 3;
pub const GST_MTS_TABLE_ID_14496_SCENE_DESCRIPTION: GstMpegtsSectionTableID = 4;
pub const GST_MTS_TABLE_ID_14496_OBJET_DESCRIPTOR: GstMpegtsSectionTableID = 5;
pub const GST_MTS_TABLE_ID_METADATA: GstMpegtsSectionTableID = 6;
pub const GST_MTS_TABLE_ID_IPMP_CONTROL_INFORMATION: GstMpegtsSectionTableID = 7;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub const GST_MTS_TABLE_ID_14496_SECTION: GstMpegtsSectionTableID = 8;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub const GST_MTS_TABLE_ID_23001_11_SECTION: GstMpegtsSectionTableID = 9;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub const GST_MTS_TABLE_ID_23001_10_SECTION: GstMpegtsSectionTableID = 10;
pub const GST_MTS_TABLE_ID_DSM_CC_MULTIPROTO_ENCAPSULATED_DATA: GstMpegtsSectionTableID = 58;
pub const GST_MTS_TABLE_ID_DSM_CC_U_N_MESSAGES: GstMpegtsSectionTableID = 59;
pub const GST_MTS_TABLE_ID_DSM_CC_DOWNLOAD_DATA_MESSAGES: GstMpegtsSectionTableID = 60;
pub const GST_MTS_TABLE_ID_DSM_CC_STREAM_DESCRIPTORS: GstMpegtsSectionTableID = 61;
pub const GST_MTS_TABLE_ID_DSM_CC_PRIVATE_DATA: GstMpegtsSectionTableID = 62;
pub const GST_MTS_TABLE_ID_DSM_CC_ADDRESSABLE_SECTIONS: GstMpegtsSectionTableID = 63;
pub const GST_MTS_TABLE_ID_UNSET: GstMpegtsSectionTableID = 255;

pub type GstMpegtsSectionType = c_int;
pub const GST_MPEGTS_SECTION_UNKNOWN: GstMpegtsSectionType = 0;
pub const GST_MPEGTS_SECTION_PAT: GstMpegtsSectionType = 1;
pub const GST_MPEGTS_SECTION_PMT: GstMpegtsSectionType = 2;
pub const GST_MPEGTS_SECTION_CAT: GstMpegtsSectionType = 3;
pub const GST_MPEGTS_SECTION_TSDT: GstMpegtsSectionType = 4;
pub const GST_MPEGTS_SECTION_EIT: GstMpegtsSectionType = 5;
pub const GST_MPEGTS_SECTION_NIT: GstMpegtsSectionType = 6;
pub const GST_MPEGTS_SECTION_BAT: GstMpegtsSectionType = 7;
pub const GST_MPEGTS_SECTION_SDT: GstMpegtsSectionType = 8;
pub const GST_MPEGTS_SECTION_TDT: GstMpegtsSectionType = 9;
pub const GST_MPEGTS_SECTION_TOT: GstMpegtsSectionType = 10;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub const GST_MPEGTS_SECTION_SIT: GstMpegtsSectionType = 11;
pub const GST_MPEGTS_SECTION_ATSC_TVCT: GstMpegtsSectionType = 12;
pub const GST_MPEGTS_SECTION_ATSC_CVCT: GstMpegtsSectionType = 13;
pub const GST_MPEGTS_SECTION_ATSC_MGT: GstMpegtsSectionType = 14;
pub const GST_MPEGTS_SECTION_ATSC_ETT: GstMpegtsSectionType = 15;
pub const GST_MPEGTS_SECTION_ATSC_EIT: GstMpegtsSectionType = 16;
pub const GST_MPEGTS_SECTION_ATSC_STT: GstMpegtsSectionType = 17;
pub const GST_MPEGTS_SECTION_ATSC_RRT: GstMpegtsSectionType = 18;
pub const GST_MPEGTS_SECTION_SCTE_SIT: GstMpegtsSectionType = 19;

pub type GstMpegtsStreamType = c_int;
pub const GST_MPEGTS_STREAM_TYPE_RESERVED_00: GstMpegtsStreamType = 0;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG1: GstMpegtsStreamType = 1;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2: GstMpegtsStreamType = 2;
pub const GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG1: GstMpegtsStreamType = 3;
pub const GST_MPEGTS_STREAM_TYPE_AUDIO_MPEG2: GstMpegtsStreamType = 4;
pub const GST_MPEGTS_STREAM_TYPE_PRIVATE_SECTIONS: GstMpegtsStreamType = 5;
pub const GST_MPEGTS_STREAM_TYPE_PRIVATE_PES_PACKETS: GstMpegtsStreamType = 6;
pub const GST_MPEGTS_STREAM_TYPE_MHEG: GstMpegtsStreamType = 7;
pub const GST_MPEGTS_STREAM_TYPE_DSM_CC: GstMpegtsStreamType = 8;
pub const GST_MPEGTS_STREAM_TYPE_H_222_1: GstMpegtsStreamType = 9;
pub const GST_MPEGTS_STREAM_TYPE_DSMCC_A: GstMpegtsStreamType = 10;
pub const GST_MPEGTS_STREAM_TYPE_DSMCC_B: GstMpegtsStreamType = 11;
pub const GST_MPEGTS_STREAM_TYPE_DSMCC_C: GstMpegtsStreamType = 12;
pub const GST_MPEGTS_STREAM_TYPE_DSMCC_D: GstMpegtsStreamType = 13;
pub const GST_MPEGTS_STREAM_TYPE_AUXILIARY: GstMpegtsStreamType = 14;
pub const GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_ADTS: GstMpegtsStreamType = 15;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG4: GstMpegtsStreamType = 16;
pub const GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_LATM: GstMpegtsStreamType = 17;
pub const GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_PES_PACKETS: GstMpegtsStreamType = 18;
pub const GST_MPEGTS_STREAM_TYPE_SL_FLEXMUX_SECTIONS: GstMpegtsStreamType = 19;
pub const GST_MPEGTS_STREAM_TYPE_SYNCHRONIZED_DOWNLOAD: GstMpegtsStreamType = 20;
pub const GST_MPEGTS_STREAM_TYPE_METADATA_PES_PACKETS: GstMpegtsStreamType = 21;
pub const GST_MPEGTS_STREAM_TYPE_METADATA_SECTIONS: GstMpegtsStreamType = 22;
pub const GST_MPEGTS_STREAM_TYPE_METADATA_DATA_CAROUSEL: GstMpegtsStreamType = 23;
pub const GST_MPEGTS_STREAM_TYPE_METADATA_OBJECT_CAROUSEL: GstMpegtsStreamType = 24;
pub const GST_MPEGTS_STREAM_TYPE_METADATA_SYNCHRONIZED_DOWNLOAD: GstMpegtsStreamType = 25;
pub const GST_MPEGTS_STREAM_TYPE_MPEG2_IPMP: GstMpegtsStreamType = 26;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_H264: GstMpegtsStreamType = 27;
pub const GST_MPEGTS_STREAM_TYPE_AUDIO_AAC_CLEAN: GstMpegtsStreamType = 28;
pub const GST_MPEGTS_STREAM_TYPE_MPEG4_TIMED_TEXT: GstMpegtsStreamType = 29;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_RVC: GstMpegtsStreamType = 30;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_H264_SVC_SUB_BITSTREAM: GstMpegtsStreamType = 31;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_H264_MVC_SUB_BITSTREAM: GstMpegtsStreamType = 32;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_JP2K: GstMpegtsStreamType = 33;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_MPEG2_STEREO_ADDITIONAL_VIEW: GstMpegtsStreamType = 34;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_H264_STEREO_ADDITIONAL_VIEW: GstMpegtsStreamType = 35;
pub const GST_MPEGTS_STREAM_TYPE_VIDEO_HEVC: GstMpegtsStreamType = 36;
pub const GST_MPEGTS_STREAM_TYPE_IPMP_STREAM: GstMpegtsStreamType = 127;
#[cfg(feature = "v1_20")]
#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
pub const GST_MPEGTS_STREAM_TYPE_USER_PRIVATE_EA: GstMpegtsStreamType = 234;

pub type GstMpegtsTerrestrialGuardInterval = c_int;
pub const GST_MPEGTS_GUARD_INTERVAL_1_32: GstMpegtsTerrestrialGuardInterval = 0;
pub const GST_MPEGTS_GUARD_INTERVAL_1_16: GstMpegtsTerrestrialGuardInterval = 1;
pub const GST_MPEGTS_GUARD_INTERVAL_1_8: GstMpegtsTerrestrialGuardInterval = 2;
pub const GST_MPEGTS_GUARD_INTERVAL_1_4: GstMpegtsTerrestrialGuardInterval = 3;
pub const GST_MPEGTS_GUARD_INTERVAL_AUTO: GstMpegtsTerrestrialGuardInterval = 4;
pub const GST_MPEGTS_GUARD_INTERVAL_1_128: GstMpegtsTerrestrialGuardInterval = 5;
pub const GST_MPEGTS_GUARD_INTERVAL_19_128: GstMpegtsTerrestrialGuardInterval = 6;
pub const GST_MPEGTS_GUARD_INTERVAL_19_256: GstMpegtsTerrestrialGuardInterval = 7;
pub const GST_MPEGTS_GUARD_INTERVAL_PN420: GstMpegtsTerrestrialGuardInterval = 8;
pub const GST_MPEGTS_GUARD_INTERVAL_PN595: GstMpegtsTerrestrialGuardInterval = 9;
pub const GST_MPEGTS_GUARD_INTERVAL_PN945: GstMpegtsTerrestrialGuardInterval = 10;

pub type GstMpegtsTerrestrialHierarchy = c_int;
pub const GST_MPEGTS_HIERARCHY_NONE: GstMpegtsTerrestrialHierarchy = 0;
pub const GST_MPEGTS_HIERARCHY_1: GstMpegtsTerrestrialHierarchy = 1;
pub const GST_MPEGTS_HIERARCHY_2: GstMpegtsTerrestrialHierarchy = 2;
pub const GST_MPEGTS_HIERARCHY_4: GstMpegtsTerrestrialHierarchy = 3;
pub const GST_MPEGTS_HIERARCHY_AUTO: GstMpegtsTerrestrialHierarchy = 4;

pub type GstMpegtsTerrestrialTransmissionMode = c_int;
pub const GST_MPEGTS_TRANSMISSION_MODE_2K: GstMpegtsTerrestrialTransmissionMode = 0;
pub const GST_MPEGTS_TRANSMISSION_MODE_8K: GstMpegtsTerrestrialTransmissionMode = 1;
pub const GST_MPEGTS_TRANSMISSION_MODE_AUTO: GstMpegtsTerrestrialTransmissionMode = 2;
pub const GST_MPEGTS_TRANSMISSION_MODE_4K: GstMpegtsTerrestrialTransmissionMode = 3;
pub const GST_MPEGTS_TRANSMISSION_MODE_1K: GstMpegtsTerrestrialTransmissionMode = 4;
pub const GST_MPEGTS_TRANSMISSION_MODE_16K: GstMpegtsTerrestrialTransmissionMode = 5;
pub const GST_MPEGTS_TRANSMISSION_MODE_32K: GstMpegtsTerrestrialTransmissionMode = 6;
pub const GST_MPEGTS_TRANSMISSION_MODE_C1: GstMpegtsTerrestrialTransmissionMode = 7;
pub const GST_MPEGTS_TRANSMISSION_MODE_C3780: GstMpegtsTerrestrialTransmissionMode = 8;

// Flags
pub type GstMpegtsRegistrationId = c_uint;
pub const GST_MTS_REGISTRATION_0: GstMpegtsRegistrationId = 0;
pub const GST_MTS_REGISTRATION_AC_3: GstMpegtsRegistrationId = 1094921523;
pub const GST_MTS_REGISTRATION_CUEI: GstMpegtsRegistrationId = 1129661769;
pub const GST_MTS_REGISTRATION_drac: GstMpegtsRegistrationId = 1685217635;
pub const GST_MTS_REGISTRATION_DTS1: GstMpegtsRegistrationId = 1146377009;
pub const GST_MTS_REGISTRATION_DTS2: GstMpegtsRegistrationId = 1146377010;
pub const GST_MTS_REGISTRATION_DTS3: GstMpegtsRegistrationId = 1146377011;
pub const GST_MTS_REGISTRATION_BSSD: GstMpegtsRegistrationId = 1112757060;
pub const GST_MTS_REGISTRATION_EAC3: GstMpegtsRegistrationId = 1161904947;
pub const GST_MTS_REGISTRATION_ETV1: GstMpegtsRegistrationId = 1163154993;
pub const GST_MTS_REGISTRATION_GA94: GstMpegtsRegistrationId = 1195456820;
pub const GST_MTS_REGISTRATION_HDMV: GstMpegtsRegistrationId = 1212435798;
pub const GST_MTS_REGISTRATION_KLVA: GstMpegtsRegistrationId = 1263294017;
pub const GST_MTS_REGISTRATION_OPUS: GstMpegtsRegistrationId = 1330664787;
pub const GST_MTS_REGISTRATION_TSHV: GstMpegtsRegistrationId = 1414744150;
pub const GST_MTS_REGISTRATION_VC_1: GstMpegtsRegistrationId = 1447243057;
pub const GST_MTS_REGISTRATION_AC_4: GstMpegtsRegistrationId = 1094921524;
pub const GST_MTS_REGISTRATION_OTHER_HEVC: GstMpegtsRegistrationId = 1212503619;

// Callbacks
pub type GstMpegtsPacketizeFunc = Option<unsafe extern "C" fn(*mut GstMpegtsSection) -> gboolean>;

// Records
#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscEIT {
    pub source_id: u16,
    pub protocol_version: u8,
    pub events: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscEIT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscEIT @ {self:p}"))
            .field("source_id", &self.source_id)
            .field("protocol_version", &self.protocol_version)
            .field("events", &self.events)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscEITEvent {
    pub event_id: u16,
    pub start_time: u32,
    pub etm_location: u8,
    pub length_in_seconds: u32,
    pub titles: *mut glib::GPtrArray,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscEITEvent {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscEITEvent @ {self:p}"))
            .field("event_id", &self.event_id)
            .field("start_time", &self.start_time)
            .field("etm_location", &self.etm_location)
            .field("length_in_seconds", &self.length_in_seconds)
            .field("titles", &self.titles)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscETT {
    pub ett_table_id_extension: u16,
    pub protocol_version: u16,
    pub etm_id: u32,
    pub messages: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscETT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscETT @ {self:p}"))
            .field("ett_table_id_extension", &self.ett_table_id_extension)
            .field("protocol_version", &self.protocol_version)
            .field("etm_id", &self.etm_id)
            .field("messages", &self.messages)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscMGT {
    pub protocol_version: u8,
    pub tables_defined: u16,
    pub tables: *mut glib::GPtrArray,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscMGT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscMGT @ {self:p}"))
            .field("protocol_version", &self.protocol_version)
            .field("tables_defined", &self.tables_defined)
            .field("tables", &self.tables)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscMGTTable {
    pub table_type: u16,
    pub pid: u16,
    pub version_number: u8,
    pub number_bytes: u32,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscMGTTable {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscMGTTable @ {self:p}"))
            .field("table_type", &self.table_type)
            .field("pid", &self.pid)
            .field("version_number", &self.version_number)
            .field("number_bytes", &self.number_bytes)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscMultString {
    pub iso_639_langcode: [c_char; 4],
    pub segments: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscMultString {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscMultString @ {self:p}"))
            .field("iso_639_langcode", &self.iso_639_langcode)
            .field("segments", &self.segments)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscRRT {
    pub protocol_version: u8,
    pub names: *mut glib::GPtrArray,
    pub dimensions_defined: u8,
    pub dimensions: *mut glib::GPtrArray,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscRRT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscRRT @ {self:p}"))
            .field("protocol_version", &self.protocol_version)
            .field("names", &self.names)
            .field("dimensions_defined", &self.dimensions_defined)
            .field("dimensions", &self.dimensions)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscRRTDimension {
    pub names: *mut glib::GPtrArray,
    pub graduated_scale: gboolean,
    pub values_defined: u8,
    pub values: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscRRTDimension {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscRRTDimension @ {self:p}"))
            .field("names", &self.names)
            .field("graduated_scale", &self.graduated_scale)
            .field("values_defined", &self.values_defined)
            .field("values", &self.values)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscRRTDimensionValue {
    pub abbrev_ratings: *mut glib::GPtrArray,
    pub ratings: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscRRTDimensionValue {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscRRTDimensionValue @ {self:p}"))
            .field("abbrev_ratings", &self.abbrev_ratings)
            .field("ratings", &self.ratings)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscSTT {
    pub protocol_version: u8,
    pub system_time: u32,
    pub gps_utc_offset: u8,
    pub ds_status: gboolean,
    pub ds_dayofmonth: u8,
    pub ds_hour: u8,
    pub descriptors: *mut glib::GPtrArray,
    pub utc_datetime: *mut gst::GstDateTime,
}

impl ::std::fmt::Debug for GstMpegtsAtscSTT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscSTT @ {self:p}"))
            .field("protocol_version", &self.protocol_version)
            .field("system_time", &self.system_time)
            .field("gps_utc_offset", &self.gps_utc_offset)
            .field("ds_status", &self.ds_status)
            .field("ds_dayofmonth", &self.ds_dayofmonth)
            .field("ds_hour", &self.ds_hour)
            .field("descriptors", &self.descriptors)
            .field("utc_datetime", &self.utc_datetime)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscStringSegment {
    pub compression_type: u8,
    pub mode: u8,
    pub compressed_data_size: u8,
    pub compressed_data: *mut u8,
    pub cached_string: *mut c_char,
}

impl ::std::fmt::Debug for GstMpegtsAtscStringSegment {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscStringSegment @ {self:p}"))
            .field("compression_type", &self.compression_type)
            .field("mode", &self.mode)
            .field("compressed_data_size", &self.compressed_data_size)
            .field("compressed_data", &self.compressed_data)
            .field("cached_string", &self.cached_string)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscVCT {
    pub transport_stream_id: u16,
    pub protocol_version: u8,
    pub sources: *mut glib::GPtrArray,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscVCT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscVCT @ {self:p}"))
            .field("transport_stream_id", &self.transport_stream_id)
            .field("protocol_version", &self.protocol_version)
            .field("sources", &self.sources)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAtscVCTSource {
    pub short_name: *mut c_char,
    pub major_channel_number: u16,
    pub minor_channel_number: u16,
    pub modulation_mode: u8,
    pub carrier_frequency: u32,
    pub channel_TSID: u16,
    pub program_number: u16,
    pub ETM_location: u8,
    pub access_controlled: gboolean,
    pub hidden: gboolean,
    pub path_select: gboolean,
    pub out_of_band: gboolean,
    pub hide_guide: gboolean,
    pub service_type: u8,
    pub source_id: u16,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsAtscVCTSource {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAtscVCTSource @ {self:p}"))
            .field("short_name", &self.short_name)
            .field("major_channel_number", &self.major_channel_number)
            .field("minor_channel_number", &self.minor_channel_number)
            .field("modulation_mode", &self.modulation_mode)
            .field("carrier_frequency", &self.carrier_frequency)
            .field("channel_TSID", &self.channel_TSID)
            .field("program_number", &self.program_number)
            .field("ETM_location", &self.ETM_location)
            .field("access_controlled", &self.access_controlled)
            .field("hidden", &self.hidden)
            .field("path_select", &self.path_select)
            .field("out_of_band", &self.out_of_band)
            .field("hide_guide", &self.hide_guide)
            .field("service_type", &self.service_type)
            .field("source_id", &self.source_id)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsAudioPreselectionDescriptor {
    pub preselection_id: u8,
    pub audio_rendering_indication: u8,
    pub audio_description: gboolean,
    pub spoken_subtitles: gboolean,
    pub dialogue_enhancement: gboolean,
    pub interactivity_enabled: gboolean,
    pub language_code_present: gboolean,
    pub text_label_present: gboolean,
    pub multi_stream_info_present: gboolean,
    pub future_extension: gboolean,
    pub language_code: *mut c_char,
    pub message_id: u8,
}

impl ::std::fmt::Debug for GstMpegtsAudioPreselectionDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsAudioPreselectionDescriptor @ {self:p}"))
            .field("preselection_id", &self.preselection_id)
            .field(
                "audio_rendering_indication",
                &self.audio_rendering_indication,
            )
            .field("audio_description", &self.audio_description)
            .field("spoken_subtitles", &self.spoken_subtitles)
            .field("dialogue_enhancement", &self.dialogue_enhancement)
            .field("interactivity_enabled", &self.interactivity_enabled)
            .field("language_code_present", &self.language_code_present)
            .field("text_label_present", &self.text_label_present)
            .field("multi_stream_info_present", &self.multi_stream_info_present)
            .field("future_extension", &self.future_extension)
            .field("language_code", &self.language_code)
            .field("message_id", &self.message_id)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsBAT {
    pub descriptors: *mut glib::GPtrArray,
    pub streams: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsBAT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsBAT @ {self:p}"))
            .field("descriptors", &self.descriptors)
            .field("streams", &self.streams)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsBATStream {
    pub transport_stream_id: u16,
    pub original_network_id: u16,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsBATStream {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsBATStream @ {self:p}"))
            .field("transport_stream_id", &self.transport_stream_id)
            .field("original_network_id", &self.original_network_id)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsCableDeliverySystemDescriptor {
    pub frequency: u32,
    pub outer_fec: GstMpegtsCableOuterFECScheme,
    pub modulation: GstMpegtsModulationType,
    pub symbol_rate: u32,
    pub fec_inner: GstMpegtsDVBCodeRate,
}

impl ::std::fmt::Debug for GstMpegtsCableDeliverySystemDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!(
            "GstMpegtsCableDeliverySystemDescriptor @ {self:p}"
        ))
        .field("frequency", &self.frequency)
        .field("outer_fec", &self.outer_fec)
        .field("modulation", &self.modulation)
        .field("symbol_rate", &self.symbol_rate)
        .field("fec_inner", &self.fec_inner)
        .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsComponentDescriptor {
    pub stream_content: u8,
    pub component_type: u8,
    pub component_tag: u8,
    pub language_code: *mut c_char,
    pub text: *mut c_char,
}

impl ::std::fmt::Debug for GstMpegtsComponentDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsComponentDescriptor @ {self:p}"))
            .field("stream_content", &self.stream_content)
            .field("component_type", &self.component_type)
            .field("component_tag", &self.component_tag)
            .field("language_code", &self.language_code)
            .field("text", &self.text)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsContent {
    pub content_nibble_1: GstMpegtsContentNibbleHi,
    pub content_nibble_2: u8,
    pub user_byte: u8,
}

impl ::std::fmt::Debug for GstMpegtsContent {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsContent @ {self:p}"))
            .field("content_nibble_1", &self.content_nibble_1)
            .field("content_nibble_2", &self.content_nibble_2)
            .field("user_byte", &self.user_byte)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDVBLinkageDescriptor {
    pub transport_stream_id: u16,
    pub original_network_id: u16,
    pub service_id: u16,
    pub linkage_type: GstMpegtsDVBLinkageType,
    pub linkage_data: gpointer,
    pub private_data_length: u8,
    pub private_data_bytes: *mut u8,
}

impl ::std::fmt::Debug for GstMpegtsDVBLinkageDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsDVBLinkageDescriptor @ {self:p}"))
            .field("transport_stream_id", &self.transport_stream_id)
            .field("original_network_id", &self.original_network_id)
            .field("service_id", &self.service_id)
            .field("linkage_type", &self.linkage_type)
            .field("private_data_length", &self.private_data_length)
            .field("private_data_bytes", &self.private_data_bytes)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDVBLinkageEvent {
    pub target_event_id: u16,
    pub target_listed: gboolean,
    pub event_simulcast: gboolean,
}

impl ::std::fmt::Debug for GstMpegtsDVBLinkageEvent {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsDVBLinkageEvent @ {self:p}"))
            .field("target_event_id", &self.target_event_id)
            .field("target_listed", &self.target_listed)
            .field("event_simulcast", &self.event_simulcast)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDVBLinkageExtendedEvent {
    pub target_event_id: u16,
    pub target_listed: gboolean,
    pub event_simulcast: gboolean,
    pub link_type: u8,
    pub target_id_type: u8,
    pub original_network_id_flag: gboolean,
    pub service_id_flag: gboolean,
    pub user_defined_id: u16,
    pub target_transport_stream_id: u16,
    pub target_original_network_id: u16,
    pub target_service_id: u16,
}

impl ::std::fmt::Debug for GstMpegtsDVBLinkageExtendedEvent {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsDVBLinkageExtendedEvent @ {self:p}"))
            .field("target_event_id", &self.target_event_id)
            .field("target_listed", &self.target_listed)
            .field("event_simulcast", &self.event_simulcast)
            .field("link_type", &self.link_type)
            .field("target_id_type", &self.target_id_type)
            .field("original_network_id_flag", &self.original_network_id_flag)
            .field("service_id_flag", &self.service_id_flag)
            .field("user_defined_id", &self.user_defined_id)
            .field(
                "target_transport_stream_id",
                &self.target_transport_stream_id,
            )
            .field(
                "target_original_network_id",
                &self.target_original_network_id,
            )
            .field("target_service_id", &self.target_service_id)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDVBLinkageMobileHandOver {
    pub hand_over_type: GstMpegtsDVBLinkageHandOverType,
    pub origin_type: gboolean,
    pub network_id: u16,
    pub initial_service_id: u16,
}

impl ::std::fmt::Debug for GstMpegtsDVBLinkageMobileHandOver {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsDVBLinkageMobileHandOver @ {self:p}"))
            .field("hand_over_type", &self.hand_over_type)
            .field("origin_type", &self.origin_type)
            .field("network_id", &self.network_id)
            .field("initial_service_id", &self.initial_service_id)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDVBParentalRatingItem {
    pub country_code: *mut c_char,
    pub rating: u8,
}

impl ::std::fmt::Debug for GstMpegtsDVBParentalRatingItem {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsDVBParentalRatingItem @ {self:p}"))
            .field("country_code", &self.country_code)
            .field("rating", &self.rating)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDVBServiceListItem {
    pub service_id: u16,
    pub type_: GstMpegtsDVBServiceType,
}

impl ::std::fmt::Debug for GstMpegtsDVBServiceListItem {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsDVBServiceListItem @ {self:p}"))
            .field("service_id", &self.service_id)
            .field("type_", &self.type_)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDataBroadcastDescriptor {
    pub data_broadcast_id: u16,
    pub component_tag: u8,
    pub length: u8,
    pub selector_bytes: *mut u8,
    pub language_code: *mut c_char,
    pub text: *mut c_char,
}

impl ::std::fmt::Debug for GstMpegtsDataBroadcastDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsDataBroadcastDescriptor @ {self:p}"))
            .field("data_broadcast_id", &self.data_broadcast_id)
            .field("component_tag", &self.component_tag)
            .field("length", &self.length)
            .field("selector_bytes", &self.selector_bytes)
            .field("language_code", &self.language_code)
            .field("text", &self.text)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDescriptor {
    pub tag: u8,
    pub tag_extension: u8,
    pub length: u8,
    pub data: *mut u8,
    pub _gst_reserved: [gpointer; 4],
}

impl ::std::fmt::Debug for GstMpegtsDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsDescriptor @ {self:p}"))
            .field("tag", &self.tag)
            .field("tag_extension", &self.tag_extension)
            .field("length", &self.length)
            .field("data", &self.data)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDvbMultilingualBouquetNameItem {
    pub language_code: *mut c_char,
    pub bouquet_name: *mut c_char,
}

impl ::std::fmt::Debug for GstMpegtsDvbMultilingualBouquetNameItem {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!(
            "GstMpegtsDvbMultilingualBouquetNameItem @ {self:p}"
        ))
        .field("language_code", &self.language_code)
        .field("bouquet_name", &self.bouquet_name)
        .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDvbMultilingualComponentItem {
    pub language_code: *mut c_char,
    pub description: *mut c_char,
}

impl ::std::fmt::Debug for GstMpegtsDvbMultilingualComponentItem {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsDvbMultilingualComponentItem @ {self:p}"))
            .field("language_code", &self.language_code)
            .field("description", &self.description)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDvbMultilingualNetworkNameItem {
    pub language_code: *mut c_char,
    pub network_name: *mut c_char,
}

impl ::std::fmt::Debug for GstMpegtsDvbMultilingualNetworkNameItem {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!(
            "GstMpegtsDvbMultilingualNetworkNameItem @ {self:p}"
        ))
        .field("language_code", &self.language_code)
        .field("network_name", &self.network_name)
        .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsDvbMultilingualServiceNameItem {
    pub language_code: *mut c_char,
    pub provider_name: *mut c_char,
    pub service_name: *mut c_char,
}

impl ::std::fmt::Debug for GstMpegtsDvbMultilingualServiceNameItem {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!(
            "GstMpegtsDvbMultilingualServiceNameItem @ {self:p}"
        ))
        .field("language_code", &self.language_code)
        .field("provider_name", &self.provider_name)
        .field("service_name", &self.service_name)
        .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsEIT {
    pub transport_stream_id: u16,
    pub original_network_id: u16,
    pub segment_last_section_number: u8,
    pub last_table_id: u8,
    pub actual_stream: gboolean,
    pub present_following: gboolean,
    pub events: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsEIT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsEIT @ {self:p}"))
            .field("transport_stream_id", &self.transport_stream_id)
            .field("original_network_id", &self.original_network_id)
            .field(
                "segment_last_section_number",
                &self.segment_last_section_number,
            )
            .field("last_table_id", &self.last_table_id)
            .field("actual_stream", &self.actual_stream)
            .field("present_following", &self.present_following)
            .field("events", &self.events)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsEITEvent {
    pub event_id: u16,
    pub start_time: *mut gst::GstDateTime,
    pub duration: u32,
    pub running_status: GstMpegtsRunningStatus,
    pub free_CA_mode: gboolean,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsEITEvent {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsEITEvent @ {self:p}"))
            .field("event_id", &self.event_id)
            .field("start_time", &self.start_time)
            .field("duration", &self.duration)
            .field("running_status", &self.running_status)
            .field("free_CA_mode", &self.free_CA_mode)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsExtendedEventDescriptor {
    pub descriptor_number: u8,
    pub last_descriptor_number: u8,
    pub language_code: *mut c_char,
    pub items: *mut glib::GPtrArray,
    pub text: *mut c_char,
}

impl ::std::fmt::Debug for GstMpegtsExtendedEventDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsExtendedEventDescriptor @ {self:p}"))
            .field("descriptor_number", &self.descriptor_number)
            .field("last_descriptor_number", &self.last_descriptor_number)
            .field("language_code", &self.language_code)
            .field("items", &self.items)
            .field("text", &self.text)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsExtendedEventItem {
    pub item_description: *mut c_char,
    pub item: *mut c_char,
}

impl ::std::fmt::Debug for GstMpegtsExtendedEventItem {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsExtendedEventItem @ {self:p}"))
            .field("item_description", &self.item_description)
            .field("item", &self.item)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsISO639LanguageDescriptor {
    pub nb_language: c_uint,
    pub language: [*mut c_char; 64],
    pub audio_type: [GstMpegtsIso639AudioType; 64],
}

impl ::std::fmt::Debug for GstMpegtsISO639LanguageDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsISO639LanguageDescriptor @ {self:p}"))
            .field("nb_language", &self.nb_language)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsLogicalChannel {
    pub service_id: u16,
    pub visible_service: gboolean,
    pub logical_channel_number: u16,
}

impl ::std::fmt::Debug for GstMpegtsLogicalChannel {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsLogicalChannel @ {self:p}"))
            .field("service_id", &self.service_id)
            .field("visible_service", &self.visible_service)
            .field("logical_channel_number", &self.logical_channel_number)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsLogicalChannelDescriptor {
    pub nb_channels: c_uint,
    pub channels: [GstMpegtsLogicalChannel; 64],
}

impl ::std::fmt::Debug for GstMpegtsLogicalChannelDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsLogicalChannelDescriptor @ {self:p}"))
            .field("nb_channels", &self.nb_channels)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsMetadataDescriptor {
    pub metadata_application_format: u16,
    pub metadata_format: GstMpegtsMetadataFormat,
    pub metadata_format_identifier: u32,
    pub metadata_service_id: u8,
    pub decoder_config_flags: u8,
    pub dsm_cc_flag: gboolean,
}

impl ::std::fmt::Debug for GstMpegtsMetadataDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsMetadataDescriptor @ {self:p}"))
            .field(
                "metadata_application_format",
                &self.metadata_application_format,
            )
            .field("metadata_format", &self.metadata_format)
            .field(
                "metadata_format_identifier",
                &self.metadata_format_identifier,
            )
            .field("metadata_service_id", &self.metadata_service_id)
            .field("decoder_config_flags", &self.decoder_config_flags)
            .field("dsm_cc_flag", &self.dsm_cc_flag)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsNIT {
    pub actual_network: gboolean,
    pub network_id: u16,
    pub descriptors: *mut glib::GPtrArray,
    pub streams: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsNIT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsNIT @ {self:p}"))
            .field("actual_network", &self.actual_network)
            .field("network_id", &self.network_id)
            .field("descriptors", &self.descriptors)
            .field("streams", &self.streams)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsNITStream {
    pub transport_stream_id: u16,
    pub original_network_id: u16,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsNITStream {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsNITStream @ {self:p}"))
            .field("transport_stream_id", &self.transport_stream_id)
            .field("original_network_id", &self.original_network_id)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsPESMetadataMeta {
    pub meta: gst::GstMeta,
    pub metadata_service_id: u8,
    pub flags: u8,
}

impl ::std::fmt::Debug for GstMpegtsPESMetadataMeta {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsPESMetadataMeta @ {self:p}"))
            .field("meta", &self.meta)
            .field("metadata_service_id", &self.metadata_service_id)
            .field("flags", &self.flags)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsPMT {
    pub pcr_pid: u16,
    pub program_number: u16,
    pub descriptors: *mut glib::GPtrArray,
    pub streams: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsPMT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsPMT @ {self:p}"))
            .field("pcr_pid", &self.pcr_pid)
            .field("program_number", &self.program_number)
            .field("descriptors", &self.descriptors)
            .field("streams", &self.streams)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsPMTStream {
    pub stream_type: u8,
    pub pid: u16,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsPMTStream {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsPMTStream @ {self:p}"))
            .field("stream_type", &self.stream_type)
            .field("pid", &self.pid)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsPatProgram {
    pub program_number: u16,
    pub network_or_program_map_PID: u16,
}

impl ::std::fmt::Debug for GstMpegtsPatProgram {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsPatProgram @ {self:p}"))
            .field("program_number", &self.program_number)
            .field(
                "network_or_program_map_PID",
                &self.network_or_program_map_PID,
            )
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsSCTESIT {
    pub encrypted_packet: gboolean,
    pub encryption_algorithm: u8,
    pub pts_adjustment: u64,
    pub cw_index: u8,
    pub tier: u16,
    pub splice_command_length: u16,
    pub splice_command_type: GstMpegtsSCTESpliceCommandType,
    pub splice_time_specified: gboolean,
    pub splice_time: u64,
    pub splices: *mut glib::GPtrArray,
    pub descriptors: *mut glib::GPtrArray,
    pub fully_parsed: gboolean,
    pub is_running_time: gboolean,
}

impl ::std::fmt::Debug for GstMpegtsSCTESIT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsSCTESIT @ {self:p}"))
            .field("encrypted_packet", &self.encrypted_packet)
            .field("encryption_algorithm", &self.encryption_algorithm)
            .field("pts_adjustment", &self.pts_adjustment)
            .field("cw_index", &self.cw_index)
            .field("tier", &self.tier)
            .field("splice_command_length", &self.splice_command_length)
            .field("splice_command_type", &self.splice_command_type)
            .field("splice_time_specified", &self.splice_time_specified)
            .field("splice_time", &self.splice_time)
            .field("splices", &self.splices)
            .field("descriptors", &self.descriptors)
            .field("fully_parsed", &self.fully_parsed)
            .field("is_running_time", &self.is_running_time)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsSCTESpliceComponent {
    pub tag: u8,
    pub splice_time_specified: gboolean,
    pub splice_time: u64,
    pub utc_splice_time: u32,
}

impl ::std::fmt::Debug for GstMpegtsSCTESpliceComponent {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsSCTESpliceComponent @ {self:p}"))
            .field("tag", &self.tag)
            .field("splice_time_specified", &self.splice_time_specified)
            .field("splice_time", &self.splice_time)
            .field("utc_splice_time", &self.utc_splice_time)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsSCTESpliceEvent {
    pub insert_event: gboolean,
    pub splice_event_id: u32,
    pub splice_event_cancel_indicator: gboolean,
    pub out_of_network_indicator: gboolean,
    pub program_splice_flag: gboolean,
    pub duration_flag: gboolean,
    pub splice_immediate_flag: gboolean,
    pub program_splice_time_specified: gboolean,
    pub program_splice_time: u64,
    pub utc_splice_time: u32,
    pub components: *mut glib::GPtrArray,
    pub break_duration_auto_return: gboolean,
    pub break_duration: u64,
    pub unique_program_id: u16,
    pub avail_num: u8,
    pub avails_expected: u8,
}

impl ::std::fmt::Debug for GstMpegtsSCTESpliceEvent {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsSCTESpliceEvent @ {self:p}"))
            .field("insert_event", &self.insert_event)
            .field("splice_event_id", &self.splice_event_id)
            .field(
                "splice_event_cancel_indicator",
                &self.splice_event_cancel_indicator,
            )
            .field("out_of_network_indicator", &self.out_of_network_indicator)
            .field("program_splice_flag", &self.program_splice_flag)
            .field("duration_flag", &self.duration_flag)
            .field("splice_immediate_flag", &self.splice_immediate_flag)
            .field(
                "program_splice_time_specified",
                &self.program_splice_time_specified,
            )
            .field("program_splice_time", &self.program_splice_time)
            .field("utc_splice_time", &self.utc_splice_time)
            .field("components", &self.components)
            .field(
                "break_duration_auto_return",
                &self.break_duration_auto_return,
            )
            .field("break_duration", &self.break_duration)
            .field("unique_program_id", &self.unique_program_id)
            .field("avail_num", &self.avail_num)
            .field("avails_expected", &self.avails_expected)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsSDT {
    pub original_network_id: u16,
    pub actual_ts: gboolean,
    pub transport_stream_id: u16,
    pub services: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsSDT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsSDT @ {self:p}"))
            .field("original_network_id", &self.original_network_id)
            .field("actual_ts", &self.actual_ts)
            .field("transport_stream_id", &self.transport_stream_id)
            .field("services", &self.services)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsSDTService {
    pub service_id: u16,
    pub EIT_schedule_flag: gboolean,
    pub EIT_present_following_flag: gboolean,
    pub running_status: GstMpegtsRunningStatus,
    pub free_CA_mode: gboolean,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsSDTService {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsSDTService @ {self:p}"))
            .field("service_id", &self.service_id)
            .field("EIT_schedule_flag", &self.EIT_schedule_flag)
            .field(
                "EIT_present_following_flag",
                &self.EIT_present_following_flag,
            )
            .field("running_status", &self.running_status)
            .field("free_CA_mode", &self.free_CA_mode)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsSIT {
    pub descriptors: *mut glib::GPtrArray,
    pub services: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsSIT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsSIT @ {self:p}"))
            .field("descriptors", &self.descriptors)
            .field("services", &self.services)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsSITService {
    pub service_id: u16,
    pub running_status: GstMpegtsRunningStatus,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsSITService {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsSITService @ {self:p}"))
            .field("service_id", &self.service_id)
            .field("running_status", &self.running_status)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsSatelliteDeliverySystemDescriptor {
    pub frequency: u32,
    pub orbital_position: c_float,
    pub west_east: gboolean,
    pub polarization: GstMpegtsSatellitePolarizationType,
    pub roll_off: GstMpegtsSatelliteRolloff,
    pub modulation_system: gboolean,
    pub modulation_type: GstMpegtsModulationType,
    pub symbol_rate: u32,
    pub fec_inner: GstMpegtsDVBCodeRate,
}

impl ::std::fmt::Debug for GstMpegtsSatelliteDeliverySystemDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!(
            "GstMpegtsSatelliteDeliverySystemDescriptor @ {self:p}"
        ))
        .field("frequency", &self.frequency)
        .field("orbital_position", &self.orbital_position)
        .field("west_east", &self.west_east)
        .field("polarization", &self.polarization)
        .field("roll_off", &self.roll_off)
        .field("modulation_system", &self.modulation_system)
        .field("modulation_type", &self.modulation_type)
        .field("symbol_rate", &self.symbol_rate)
        .field("fec_inner", &self.fec_inner)
        .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsSection {
    pub parent: gst::GstMiniObject,
    pub section_type: GstMpegtsSectionType,
    pub pid: u16,
    pub table_id: u8,
    pub subtable_extension: u16,
    pub version_number: u8,
    pub current_next_indicator: gboolean,
    pub section_number: u8,
    pub last_section_number: u8,
    pub crc: u32,
    pub data: *mut u8,
    pub section_length: c_uint,
    pub cached_parsed: *mut gpointer,
    pub destroy_parsed: glib::GDestroyNotify,
    pub offset: u64,
    pub short_section: gboolean,
    pub packetizer: GstMpegtsPacketizeFunc,
    pub _gst_reserved: [gpointer; 4],
}

impl ::std::fmt::Debug for GstMpegtsSection {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsSection @ {self:p}"))
            .field("section_type", &self.section_type)
            .field("pid", &self.pid)
            .field("table_id", &self.table_id)
            .field("subtable_extension", &self.subtable_extension)
            .field("version_number", &self.version_number)
            .field("current_next_indicator", &self.current_next_indicator)
            .field("section_number", &self.section_number)
            .field("last_section_number", &self.last_section_number)
            .field("crc", &self.crc)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsT2DeliverySystemCell {
    pub cell_id: u16,
    pub centre_frequencies: *mut glib::GArray,
    pub sub_cells: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsT2DeliverySystemCell {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsT2DeliverySystemCell @ {self:p}"))
            .field("cell_id", &self.cell_id)
            .field("centre_frequencies", &self.centre_frequencies)
            .field("sub_cells", &self.sub_cells)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsT2DeliverySystemCellExtension {
    pub cell_id_extension: u8,
    pub transposer_frequency: u32,
}

impl ::std::fmt::Debug for GstMpegtsT2DeliverySystemCellExtension {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!(
            "GstMpegtsT2DeliverySystemCellExtension @ {self:p}"
        ))
        .field("cell_id_extension", &self.cell_id_extension)
        .field("transposer_frequency", &self.transposer_frequency)
        .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsT2DeliverySystemDescriptor {
    pub plp_id: u8,
    pub t2_system_id: u16,
    pub siso_miso: u8,
    pub bandwidth: u32,
    pub guard_interval: GstMpegtsTerrestrialGuardInterval,
    pub transmission_mode: GstMpegtsTerrestrialTransmissionMode,
    pub other_frequency: gboolean,
    pub tfs: gboolean,
    pub cells: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsT2DeliverySystemDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsT2DeliverySystemDescriptor @ {self:p}"))
            .field("plp_id", &self.plp_id)
            .field("t2_system_id", &self.t2_system_id)
            .field("siso_miso", &self.siso_miso)
            .field("bandwidth", &self.bandwidth)
            .field("guard_interval", &self.guard_interval)
            .field("transmission_mode", &self.transmission_mode)
            .field("other_frequency", &self.other_frequency)
            .field("tfs", &self.tfs)
            .field("cells", &self.cells)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsTOT {
    pub utc_time: *mut gst::GstDateTime,
    pub descriptors: *mut glib::GPtrArray,
}

impl ::std::fmt::Debug for GstMpegtsTOT {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!("GstMpegtsTOT @ {self:p}"))
            .field("utc_time", &self.utc_time)
            .field("descriptors", &self.descriptors)
            .finish()
    }
}

#[derive(Copy, Clone)]
#[repr(C)]
pub struct GstMpegtsTerrestrialDeliverySystemDescriptor {
    pub frequency: u32,
    pub bandwidth: u32,
    pub priority: gboolean,
    pub time_slicing: gboolean,
    pub mpe_fec: gboolean,
    pub constellation: GstMpegtsModulationType,
    pub hierarchy: GstMpegtsTerrestrialHierarchy,
    pub code_rate_hp: GstMpegtsDVBCodeRate,
    pub code_rate_lp: GstMpegtsDVBCodeRate,
    pub guard_interval: GstMpegtsTerrestrialGuardInterval,
    pub transmission_mode: GstMpegtsTerrestrialTransmissionMode,
    pub other_frequency: gboolean,
}

impl ::std::fmt::Debug for GstMpegtsTerrestrialDeliverySystemDescriptor {
    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
        f.debug_struct(&format!(
            "GstMpegtsTerrestrialDeliverySystemDescriptor @ {self:p}"
        ))
        .field("frequency", &self.frequency)
        .field("bandwidth", &self.bandwidth)
        .field("priority", &self.priority)
        .field("time_slicing", &self.time_slicing)
        .field("mpe_fec", &self.mpe_fec)
        .field("constellation", &self.constellation)
        .field("hierarchy", &self.hierarchy)
        .field("code_rate_hp", &self.code_rate_hp)
        .field("code_rate_lp", &self.code_rate_lp)
        .field("guard_interval", &self.guard_interval)
        .field("transmission_mode", &self.transmission_mode)
        .field("other_frequency", &self.other_frequency)
        .finish()
    }
}

#[link(name = "gstmpegts-1.0")]
extern "C" {

    //=========================================================================
    // GstMpegtsAtscEIT
    //=========================================================================
    pub fn gst_mpegts_atsc_eit_get_type() -> GType;

    //=========================================================================
    // GstMpegtsAtscEITEvent
    //=========================================================================
    pub fn gst_mpegts_atsc_eit_event_get_type() -> GType;

    //=========================================================================
    // GstMpegtsAtscETT
    //=========================================================================
    pub fn gst_mpegts_atsc_ett_get_type() -> GType;

    //=========================================================================
    // GstMpegtsAtscMGT
    //=========================================================================
    pub fn gst_mpegts_atsc_mgt_get_type() -> GType;
    pub fn gst_mpegts_atsc_mgt_new() -> *mut GstMpegtsAtscMGT;

    //=========================================================================
    // GstMpegtsAtscMGTTable
    //=========================================================================
    pub fn gst_mpegts_atsc_mgt_table_get_type() -> GType;

    //=========================================================================
    // GstMpegtsAtscMultString
    //=========================================================================
    pub fn gst_mpegts_atsc_mult_string_get_type() -> GType;

    //=========================================================================
    // GstMpegtsAtscRRT
    //=========================================================================
    #[cfg(feature = "v1_18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
    pub fn gst_mpegts_atsc_rrt_get_type() -> GType;
    #[cfg(feature = "v1_18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
    pub fn gst_mpegts_atsc_rrt_new() -> *mut GstMpegtsAtscRRT;

    //=========================================================================
    // GstMpegtsAtscRRTDimension
    //=========================================================================
    #[cfg(feature = "v1_18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
    pub fn gst_mpegts_atsc_rrt_dimension_get_type() -> GType;
    #[cfg(feature = "v1_18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
    pub fn gst_mpegts_atsc_rrt_dimension_new() -> *mut GstMpegtsAtscRRTDimension;

    //=========================================================================
    // GstMpegtsAtscRRTDimensionValue
    //=========================================================================
    #[cfg(feature = "v1_18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
    pub fn gst_mpegts_atsc_rrt_dimension_value_get_type() -> GType;
    #[cfg(feature = "v1_18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
    pub fn gst_mpegts_atsc_rrt_dimension_value_new() -> *mut GstMpegtsAtscRRTDimensionValue;

    //=========================================================================
    // GstMpegtsAtscSTT
    //=========================================================================
    pub fn gst_mpegts_atsc_stt_get_type() -> GType;
    pub fn gst_mpegts_atsc_stt_new() -> *mut GstMpegtsAtscSTT;
    pub fn gst_mpegts_atsc_stt_get_datetime_utc(
        stt: *mut GstMpegtsAtscSTT,
    ) -> *mut gst::GstDateTime;

    //=========================================================================
    // GstMpegtsAtscStringSegment
    //=========================================================================
    pub fn gst_mpegts_atsc_string_segment_get_type() -> GType;
    pub fn gst_mpegts_atsc_string_segment_get_string(
        seg: *mut GstMpegtsAtscStringSegment,
    ) -> *const c_char;
    pub fn gst_mpegts_atsc_string_segment_set_string(
        seg: *mut GstMpegtsAtscStringSegment,
        string: *mut c_char,
        compression_type: u8,
        mode: u8,
    ) -> gboolean;

    //=========================================================================
    // GstMpegtsAtscVCT
    //=========================================================================
    pub fn gst_mpegts_atsc_vct_get_type() -> GType;

    //=========================================================================
    // GstMpegtsAtscVCTSource
    //=========================================================================
    pub fn gst_mpegts_atsc_vct_source_get_type() -> GType;

    //=========================================================================
    // GstMpegtsBAT
    //=========================================================================
    pub fn gst_mpegts_bat_get_type() -> GType;

    //=========================================================================
    // GstMpegtsBATStream
    //=========================================================================
    pub fn gst_mpegts_bat_stream_get_type() -> GType;

    //=========================================================================
    // GstMpegtsCableDeliverySystemDescriptor
    //=========================================================================
    pub fn gst_mpegts_dvb_cable_delivery_system_descriptor_get_type() -> GType;
    pub fn gst_mpegts_dvb_cable_delivery_system_descriptor_free(
        source: *mut GstMpegtsCableDeliverySystemDescriptor,
    );

    //=========================================================================
    // GstMpegtsComponentDescriptor
    //=========================================================================
    pub fn gst_mpegts_component_descriptor_get_type() -> GType;

    //=========================================================================
    // GstMpegtsContent
    //=========================================================================
    pub fn gst_mpegts_content_get_type() -> GType;

    //=========================================================================
    // GstMpegtsDVBLinkageDescriptor
    //=========================================================================
    pub fn gst_mpegts_dvb_linkage_descriptor_get_type() -> GType;
    pub fn gst_mpegts_dvb_linkage_descriptor_free(source: *mut GstMpegtsDVBLinkageDescriptor);
    pub fn gst_mpegts_dvb_linkage_descriptor_get_event(
        desc: *const GstMpegtsDVBLinkageDescriptor,
    ) -> *const GstMpegtsDVBLinkageEvent;
    pub fn gst_mpegts_dvb_linkage_descriptor_get_extended_event(
        desc: *const GstMpegtsDVBLinkageDescriptor,
    ) -> *const glib::GPtrArray;
    pub fn gst_mpegts_dvb_linkage_descriptor_get_mobile_hand_over(
        desc: *const GstMpegtsDVBLinkageDescriptor,
    ) -> *const GstMpegtsDVBLinkageMobileHandOver;

    //=========================================================================
    // GstMpegtsDVBLinkageEvent
    //=========================================================================
    pub fn gst_mpegts_dvb_linkage_event_get_type() -> GType;

    //=========================================================================
    // GstMpegtsDVBLinkageExtendedEvent
    //=========================================================================
    pub fn gst_mpegts_dvb_linkage_extended_event_get_type() -> GType;

    //=========================================================================
    // GstMpegtsDVBLinkageMobileHandOver
    //=========================================================================
    pub fn gst_mpegts_dvb_linkage_mobile_hand_over_get_type() -> GType;

    //=========================================================================
    // GstMpegtsDVBParentalRatingItem
    //=========================================================================
    pub fn gst_mpegts_dvb_parental_rating_item_get_type() -> GType;

    //=========================================================================
    // GstMpegtsDVBServiceListItem
    //=========================================================================
    pub fn gst_mpegts_dvb_service_list_item_get_type() -> GType;

    //=========================================================================
    // GstMpegtsDataBroadcastDescriptor
    //=========================================================================
    pub fn gst_mpegts_dvb_data_broadcast_descriptor_get_type() -> GType;
    pub fn gst_mpegts_dvb_data_broadcast_descriptor_free(
        source: *mut GstMpegtsDataBroadcastDescriptor,
    );

    //=========================================================================
    // GstMpegtsDescriptor
    //=========================================================================
    pub fn gst_mpegts_descriptor_get_type() -> GType;
    pub fn gst_mpegts_descriptor_free(desc: *mut GstMpegtsDescriptor);
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_descriptor_parse_audio_preselection_list(
        descriptor: *const GstMpegtsDescriptor,
        list: *mut *mut glib::GPtrArray,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_ca(
        descriptor: *mut GstMpegtsDescriptor,
        ca_system_id: *mut u16,
        ca_pid: *mut u16,
        private_data: *mut *const u8,
        private_data_size: *mut size_t,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_cable_delivery_system(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut GstMpegtsCableDeliverySystemDescriptor,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_bouquet_name(
        descriptor: *const GstMpegtsDescriptor,
        bouquet_name: *mut *mut c_char,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_ca_identifier(
        descriptor: *const GstMpegtsDescriptor,
        list: *mut *mut glib::GArray,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_component(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut *mut GstMpegtsComponentDescriptor,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_content(
        descriptor: *const GstMpegtsDescriptor,
        content: *mut *mut glib::GPtrArray,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_data_broadcast(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut *mut GstMpegtsDataBroadcastDescriptor,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_data_broadcast_id(
        descriptor: *const GstMpegtsDescriptor,
        data_broadcast_id: *mut u16,
        id_selector_bytes: *mut *mut u8,
        len: *mut u8,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_extended_event(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut *mut GstMpegtsExtendedEventDescriptor,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_frequency_list(
        descriptor: *const GstMpegtsDescriptor,
        offset: *mut gboolean,
        list: *mut *mut glib::GArray,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_linkage(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut *mut GstMpegtsDVBLinkageDescriptor,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_multilingual_bouquet_name(
        descriptor: *const GstMpegtsDescriptor,
        bouquet_name_items: *mut *mut glib::GPtrArray,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_multilingual_component(
        descriptor: *const GstMpegtsDescriptor,
        component_tag: *mut u8,
        component_description_items: *mut *mut glib::GPtrArray,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_multilingual_network_name(
        descriptor: *const GstMpegtsDescriptor,
        network_name_items: *mut *mut glib::GPtrArray,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_multilingual_service_name(
        descriptor: *const GstMpegtsDescriptor,
        service_name_items: *mut *mut glib::GPtrArray,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_network_name(
        descriptor: *const GstMpegtsDescriptor,
        name: *mut *mut c_char,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_parental_rating(
        descriptor: *const GstMpegtsDescriptor,
        rating: *mut *mut glib::GPtrArray,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_private_data_specifier(
        descriptor: *const GstMpegtsDescriptor,
        private_data_specifier: *mut u32,
        private_data: *mut *mut u8,
        length: *mut u8,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_scrambling(
        descriptor: *const GstMpegtsDescriptor,
        scrambling_mode: *mut GstMpegtsDVBScramblingModeType,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_service(
        descriptor: *const GstMpegtsDescriptor,
        service_type: *mut GstMpegtsDVBServiceType,
        service_name: *mut *mut c_char,
        provider_name: *mut *mut c_char,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_service_list(
        descriptor: *const GstMpegtsDescriptor,
        list: *mut *mut glib::GPtrArray,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_short_event(
        descriptor: *const GstMpegtsDescriptor,
        language_code: *mut *mut c_char,
        event_name: *mut *mut c_char,
        text: *mut *mut c_char,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_stream_identifier(
        descriptor: *const GstMpegtsDescriptor,
        component_tag: *mut u8,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_stuffing(
        descriptor: *const GstMpegtsDescriptor,
        stuffing_bytes: *mut *mut u8,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_subtitling_idx(
        descriptor: *const GstMpegtsDescriptor,
        idx: c_uint,
        lang: *mut *mut c_char,
        type_: *mut u8,
        composition_page_id: *mut u16,
        ancillary_page_id: *mut u16,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_subtitling_nb(
        descriptor: *const GstMpegtsDescriptor,
    ) -> c_uint;
    pub fn gst_mpegts_descriptor_parse_dvb_t2_delivery_system(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut *mut GstMpegtsT2DeliverySystemDescriptor,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_teletext_idx(
        descriptor: *const GstMpegtsDescriptor,
        idx: c_uint,
        language_code: *mut *mut c_char,
        teletext_type: *mut GstMpegtsDVBTeletextType,
        magazine_number: *mut u8,
        page_number: *mut u8,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_dvb_teletext_nb(
        descriptor: *const GstMpegtsDescriptor,
    ) -> c_uint;
    pub fn gst_mpegts_descriptor_parse_iso_639_language(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut *mut GstMpegtsISO639LanguageDescriptor,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_iso_639_language_idx(
        descriptor: *const GstMpegtsDescriptor,
        idx: c_uint,
        lang: *mut *mut c_char,
        audio_type: *mut GstMpegtsIso639AudioType,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_iso_639_language_nb(
        descriptor: *const GstMpegtsDescriptor,
    ) -> c_uint;
    pub fn gst_mpegts_descriptor_parse_logical_channel(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut GstMpegtsLogicalChannelDescriptor,
    ) -> gboolean;
    #[cfg(feature = "v1_24")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
    pub fn gst_mpegts_descriptor_parse_metadata(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut *mut GstMpegtsMetadataDescriptor,
    ) -> gboolean;
    #[cfg(feature = "v1_24")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
    pub fn gst_mpegts_descriptor_parse_metadata_std(
        descriptor: *const GstMpegtsDescriptor,
        metadata_input_leak_rate: *mut u32,
        metadata_buffer_size: *mut u32,
        metadata_output_leak_rate: *mut u32,
    ) -> gboolean;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_descriptor_parse_registration(
        descriptor: *mut GstMpegtsDescriptor,
        registration_id: *mut u32,
        additional_info: *mut *mut u8,
        additional_info_length: *mut size_t,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_satellite_delivery_system(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut GstMpegtsSatelliteDeliverySystemDescriptor,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_parse_terrestrial_delivery_system(
        descriptor: *const GstMpegtsDescriptor,
        res: *mut GstMpegtsTerrestrialDeliverySystemDescriptor,
    ) -> gboolean;
    pub fn gst_mpegts_descriptor_from_custom(
        tag: u8,
        data: *const u8,
        length: size_t,
    ) -> *mut GstMpegtsDescriptor;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_descriptor_from_custom_with_extension(
        tag: u8,
        tag_extension: u8,
        data: *const u8,
        length: size_t,
    ) -> *mut GstMpegtsDescriptor;
    pub fn gst_mpegts_descriptor_from_dvb_network_name(
        name: *const c_char,
    ) -> *mut GstMpegtsDescriptor;
    pub fn gst_mpegts_descriptor_from_dvb_service(
        service_type: GstMpegtsDVBServiceType,
        service_name: *const c_char,
        service_provider: *const c_char,
    ) -> *mut GstMpegtsDescriptor;
    pub fn gst_mpegts_descriptor_from_dvb_subtitling(
        lang: *const c_char,
        type_: u8,
        composition: u16,
        ancillary: u16,
    ) -> *mut GstMpegtsDescriptor;
    pub fn gst_mpegts_descriptor_from_iso_639_language(
        language: *const c_char,
    ) -> *mut GstMpegtsDescriptor;
    pub fn gst_mpegts_descriptor_from_registration(
        format_identifier: *const c_char,
        additional_info: *mut u8,
        additional_info_length: size_t,
    ) -> *mut GstMpegtsDescriptor;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_descriptor_parse_audio_preselection_dump(
        source: *mut GstMpegtsAudioPreselectionDescriptor,
    );
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_descriptor_parse_audio_preselection_free(
        source: *mut GstMpegtsAudioPreselectionDescriptor,
    );

    //=========================================================================
    // GstMpegtsDvbMultilingualBouquetNameItem
    //=========================================================================
    pub fn gst_mpegts_dvb_multilingual_bouquet_name_item_get_type() -> GType;

    //=========================================================================
    // GstMpegtsDvbMultilingualComponentItem
    //=========================================================================
    pub fn gst_mpegts_dvb_multilingual_component_item_get_type() -> GType;

    //=========================================================================
    // GstMpegtsDvbMultilingualNetworkNameItem
    //=========================================================================
    pub fn gst_mpegts_dvb_multilingual_network_name_item_get_type() -> GType;

    //=========================================================================
    // GstMpegtsDvbMultilingualServiceNameItem
    //=========================================================================
    pub fn gst_mpegts_dvb_multilingual_service_name_item_get_type() -> GType;

    //=========================================================================
    // GstMpegtsEIT
    //=========================================================================
    pub fn gst_mpegts_eit_get_type() -> GType;

    //=========================================================================
    // GstMpegtsEITEvent
    //=========================================================================
    pub fn gst_mpegts_eit_event_get_type() -> GType;

    //=========================================================================
    // GstMpegtsExtendedEventDescriptor
    //=========================================================================
    pub fn gst_mpegts_extended_event_descriptor_get_type() -> GType;
    pub fn gst_mpegts_extended_event_descriptor_free(source: *mut GstMpegtsExtendedEventDescriptor);

    //=========================================================================
    // GstMpegtsExtendedEventItem
    //=========================================================================
    pub fn gst_mpegts_extended_event_item_get_type() -> GType;

    //=========================================================================
    // GstMpegtsISO639LanguageDescriptor
    //=========================================================================
    pub fn gst_mpegts_iso_639_language_get_type() -> GType;
    pub fn gst_mpegts_iso_639_language_descriptor_free(
        desc: *mut GstMpegtsISO639LanguageDescriptor,
    );

    //=========================================================================
    // GstMpegtsLogicalChannel
    //=========================================================================
    pub fn gst_mpegts_logical_channel_get_type() -> GType;

    //=========================================================================
    // GstMpegtsLogicalChannelDescriptor
    //=========================================================================
    pub fn gst_mpegts_logical_channel_descriptor_get_type() -> GType;

    //=========================================================================
    // GstMpegtsMetadataDescriptor
    //=========================================================================
    #[cfg(feature = "v1_24")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
    pub fn gst_mpegts_metadata_descriptor_get_type() -> GType;

    //=========================================================================
    // GstMpegtsNIT
    //=========================================================================
    pub fn gst_mpegts_nit_get_type() -> GType;
    pub fn gst_mpegts_nit_new() -> *mut GstMpegtsNIT;

    //=========================================================================
    // GstMpegtsNITStream
    //=========================================================================
    pub fn gst_mpegts_nit_stream_get_type() -> GType;
    pub fn gst_mpegts_nit_stream_new() -> *mut GstMpegtsNITStream;

    //=========================================================================
    // GstMpegtsPESMetadataMeta
    //=========================================================================
    #[cfg(feature = "v1_24")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
    pub fn gst_mpegts_pes_metadata_meta_get_info() -> *const gst::GstMetaInfo;

    //=========================================================================
    // GstMpegtsPMT
    //=========================================================================
    pub fn gst_mpegts_pmt_get_type() -> GType;
    pub fn gst_mpegts_pmt_new() -> *mut GstMpegtsPMT;

    //=========================================================================
    // GstMpegtsPMTStream
    //=========================================================================
    pub fn gst_mpegts_pmt_stream_get_type() -> GType;
    pub fn gst_mpegts_pmt_stream_new() -> *mut GstMpegtsPMTStream;

    //=========================================================================
    // GstMpegtsPatProgram
    //=========================================================================
    pub fn gst_mpegts_pat_program_get_type() -> GType;
    pub fn gst_mpegts_pat_program_new() -> *mut GstMpegtsPatProgram;

    //=========================================================================
    // GstMpegtsSCTESIT
    //=========================================================================
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_scte_sit_get_type() -> GType;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_scte_sit_new() -> *mut GstMpegtsSCTESIT;

    //=========================================================================
    // GstMpegtsSCTESpliceComponent
    //=========================================================================
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_scte_splice_component_get_type() -> GType;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_scte_splice_component_new(tag: u8) -> *mut GstMpegtsSCTESpliceComponent;

    //=========================================================================
    // GstMpegtsSCTESpliceEvent
    //=========================================================================
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_scte_splice_event_get_type() -> GType;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_scte_splice_event_new() -> *mut GstMpegtsSCTESpliceEvent;

    //=========================================================================
    // GstMpegtsSDT
    //=========================================================================
    pub fn gst_mpegts_sdt_get_type() -> GType;
    pub fn gst_mpegts_sdt_new() -> *mut GstMpegtsSDT;

    //=========================================================================
    // GstMpegtsSDTService
    //=========================================================================
    pub fn gst_mpegts_sdt_service_get_type() -> GType;
    pub fn gst_mpegts_sdt_service_new() -> *mut GstMpegtsSDTService;

    //=========================================================================
    // GstMpegtsSIT
    //=========================================================================
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_sit_get_type() -> GType;

    //=========================================================================
    // GstMpegtsSITService
    //=========================================================================
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_sit_service_get_type() -> GType;

    //=========================================================================
    // GstMpegtsSatelliteDeliverySystemDescriptor
    //=========================================================================
    pub fn gst_mpegts_satellite_delivery_system_descriptor_get_type() -> GType;

    //=========================================================================
    // GstMpegtsSection
    //=========================================================================
    pub fn gst_mpegts_section_get_type() -> GType;
    pub fn gst_mpegts_section_new(
        pid: u16,
        data: *mut u8,
        data_size: size_t,
    ) -> *mut GstMpegtsSection;
    pub fn gst_mpegts_section_get_atsc_cvct(
        section: *mut GstMpegtsSection,
    ) -> *const GstMpegtsAtscVCT;
    pub fn gst_mpegts_section_get_atsc_eit(
        section: *mut GstMpegtsSection,
    ) -> *const GstMpegtsAtscEIT;
    pub fn gst_mpegts_section_get_atsc_ett(
        section: *mut GstMpegtsSection,
    ) -> *const GstMpegtsAtscETT;
    pub fn gst_mpegts_section_get_atsc_mgt(
        section: *mut GstMpegtsSection,
    ) -> *const GstMpegtsAtscMGT;
    #[cfg(feature = "v1_18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
    pub fn gst_mpegts_section_get_atsc_rrt(
        section: *mut GstMpegtsSection,
    ) -> *const GstMpegtsAtscRRT;
    pub fn gst_mpegts_section_get_atsc_stt(
        section: *mut GstMpegtsSection,
    ) -> *const GstMpegtsAtscSTT;
    pub fn gst_mpegts_section_get_atsc_tvct(
        section: *mut GstMpegtsSection,
    ) -> *const GstMpegtsAtscVCT;
    pub fn gst_mpegts_section_get_bat(section: *mut GstMpegtsSection) -> *const GstMpegtsBAT;
    pub fn gst_mpegts_section_get_cat(section: *mut GstMpegtsSection) -> *mut glib::GPtrArray;
    pub fn gst_mpegts_section_get_data(section: *mut GstMpegtsSection) -> *mut glib::GBytes;
    pub fn gst_mpegts_section_get_eit(section: *mut GstMpegtsSection) -> *const GstMpegtsEIT;
    pub fn gst_mpegts_section_get_nit(section: *mut GstMpegtsSection) -> *const GstMpegtsNIT;
    pub fn gst_mpegts_section_get_pat(section: *mut GstMpegtsSection) -> *mut glib::GPtrArray;
    pub fn gst_mpegts_section_get_pmt(section: *mut GstMpegtsSection) -> *const GstMpegtsPMT;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_section_get_scte_sit(
        section: *mut GstMpegtsSection,
    ) -> *const GstMpegtsSCTESIT;
    pub fn gst_mpegts_section_get_sdt(section: *mut GstMpegtsSection) -> *const GstMpegtsSDT;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_section_get_sit(section: *mut GstMpegtsSection) -> *const GstMpegtsSIT;
    pub fn gst_mpegts_section_get_tdt(section: *mut GstMpegtsSection) -> *mut gst::GstDateTime;
    pub fn gst_mpegts_section_get_tot(section: *mut GstMpegtsSection) -> *const GstMpegtsTOT;
    pub fn gst_mpegts_section_get_tsdt(section: *mut GstMpegtsSection) -> *mut glib::GPtrArray;
    pub fn gst_mpegts_section_packetize(
        section: *mut GstMpegtsSection,
        output_size: *mut size_t,
    ) -> *mut u8;
    pub fn gst_mpegts_section_send_event(
        section: *mut GstMpegtsSection,
        element: *mut gst::GstElement,
    ) -> gboolean;
    #[cfg(feature = "v1_18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
    pub fn gst_mpegts_section_from_atsc_mgt(mgt: *mut GstMpegtsAtscMGT) -> *mut GstMpegtsSection;
    #[cfg(feature = "v1_18")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
    pub fn gst_mpegts_section_from_atsc_rrt(rrt: *mut GstMpegtsAtscRRT) -> *mut GstMpegtsSection;
    pub fn gst_mpegts_section_from_atsc_stt(stt: *mut GstMpegtsAtscSTT) -> *mut GstMpegtsSection;
    pub fn gst_mpegts_section_from_nit(nit: *mut GstMpegtsNIT) -> *mut GstMpegtsSection;
    pub fn gst_mpegts_section_from_pat(
        programs: *mut glib::GPtrArray,
        ts_id: u16,
    ) -> *mut GstMpegtsSection;
    pub fn gst_mpegts_section_from_pmt(pmt: *mut GstMpegtsPMT, pid: u16) -> *mut GstMpegtsSection;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_section_from_scte_sit(
        sit: *mut GstMpegtsSCTESIT,
        pid: u16,
    ) -> *mut GstMpegtsSection;
    pub fn gst_mpegts_section_from_sdt(sdt: *mut GstMpegtsSDT) -> *mut GstMpegtsSection;

    //=========================================================================
    // GstMpegtsT2DeliverySystemCell
    //=========================================================================
    pub fn gst_mpegts_t2_delivery_system_cell_get_type() -> GType;

    //=========================================================================
    // GstMpegtsT2DeliverySystemCellExtension
    //=========================================================================
    pub fn gst_mpegts_t2_delivery_system_cell_extension_get_type() -> GType;

    //=========================================================================
    // GstMpegtsT2DeliverySystemDescriptor
    //=========================================================================
    pub fn gst_mpegts_t2_delivery_system_descriptor_get_type() -> GType;
    pub fn gst_mpegts_t2_delivery_system_descriptor_free(
        source: *mut GstMpegtsT2DeliverySystemDescriptor,
    );

    //=========================================================================
    // GstMpegtsTOT
    //=========================================================================
    pub fn gst_mpegts_tot_get_type() -> GType;

    //=========================================================================
    // GstMpegtsTerrestrialDeliverySystemDescriptor
    //=========================================================================
    pub fn gst_mpegts_terrestrial_delivery_system_descriptor_get_type() -> GType;

    //=========================================================================
    // Other functions
    //=========================================================================
    #[cfg(feature = "v1_24")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
    pub fn gst_buffer_add_mpegts_pes_metadata_meta(
        buffer: *mut gst::GstBuffer,
    ) -> *mut GstMpegtsPESMetadataMeta;
    pub fn gst_mpegts_dvb_component_descriptor_free(source: *mut GstMpegtsComponentDescriptor);
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_event_new_mpegts_section(section: *mut GstMpegtsSection) -> *mut gst::GstEvent;
    pub fn gst_event_parse_mpegts_section(event: *mut gst::GstEvent) -> *mut GstMpegtsSection;
    pub fn gst_mpegts_find_descriptor(
        descriptors: *mut glib::GPtrArray,
        tag: u8,
    ) -> *const GstMpegtsDescriptor;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_find_descriptor_with_extension(
        descriptors: *mut glib::GPtrArray,
        tag: u8,
        tag_extension: u8,
    ) -> *const GstMpegtsDescriptor;
    pub fn gst_mpegts_initialize();
    pub fn gst_message_new_mpegts_section(
        parent: *mut gst::GstObject,
        section: *mut GstMpegtsSection,
    ) -> *mut gst::GstMessage;
    pub fn gst_message_parse_mpegts_section(message: *mut gst::GstMessage)
        -> *mut GstMpegtsSection;
    pub fn gst_mpegts_parse_descriptors(buffer: *mut u8, buf_len: size_t) -> *mut glib::GPtrArray;
    pub fn gst_mpegts_pat_new() -> *mut glib::GPtrArray;
    #[cfg(feature = "v1_24")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
    pub fn gst_mpegts_pes_metadata_meta_api_get_type() -> GType;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_scte_cancel_new(event_id: u32) -> *mut GstMpegtsSCTESIT;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_scte_null_new() -> *mut GstMpegtsSCTESIT;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_scte_splice_in_new(
        event_id: u32,
        splice_time: gst::GstClockTime,
    ) -> *mut GstMpegtsSCTESIT;
    #[cfg(feature = "v1_20")]
    #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
    pub fn gst_mpegts_scte_splice_out_new(
        event_id: u32,
        splice_time: gst::GstClockTime,
        duration: gst::GstClockTime,
    ) -> *mut GstMpegtsSCTESIT;

}
