summaryrefslogtreecommitdiff
path: root/gst-libs/gst/mpegts/gst-dvb-descriptor.h
diff options
context:
space:
mode:
authorStefan Ringel <linuxtv@stefanringel.de>2014-02-10 21:52:28 +0100
committerSebastian Dröge <sebastian@centricular.com>2014-02-16 10:13:53 +0100
commite6cb996cea42b91ae0c6188f90c64f2c111dc3da (patch)
treea5817c412fbb33e1b503631f15b5a11fe1a3fae4 /gst-libs/gst/mpegts/gst-dvb-descriptor.h
parent22b4223c86d5e996aa6a9df3d6b7f4ba56d572a8 (diff)
downloadgstreamer-plugins-bad-e6cb996cea42b91ae0c6188f90c64f2c111dc3da.tar.gz
mpegts: Add support for DVB terrestrial delivery system descriptor
https://bugzilla.gnome.org/show_bug.cgi?id=724069
Diffstat (limited to 'gst-libs/gst/mpegts/gst-dvb-descriptor.h')
-rw-r--r--gst-libs/gst/mpegts/gst-dvb-descriptor.h83
1 files changed, 82 insertions, 1 deletions
diff --git a/gst-libs/gst/mpegts/gst-dvb-descriptor.h b/gst-libs/gst/mpegts/gst-dvb-descriptor.h
index 3d703acc2..cd627ab80 100644
--- a/gst-libs/gst/mpegts/gst-dvb-descriptor.h
+++ b/gst-libs/gst/mpegts/gst-dvb-descriptor.h
@@ -376,7 +376,88 @@ GstMpegTsDescriptor * gst_mpegts_descriptor_from_dvb_subtitling (const gchar *la
/* GST_MTS_DESC_DVB_TERRESTRIAL_DELIVERY_SYSTEM (0x5A) */
-/* FIXME : Implement */
+typedef struct _GstMpegTsTerrestrialDeliverySystemDescriptor GstMpegTsTerrestrialDeliverySystemDescriptor;
+
+typedef enum {
+ GST_MPEGTS_BANDWIDTH_8 = 0,
+ GST_MPEGTS_BANDWIDTH_7,
+ GST_MPEGTS_BANDWIDTH_6,
+ GST_MPEGTS_BANDWIDTH_AUTO,
+ GST_MPEGTS_BANDWIDTH_5,
+ GST_MPEGTS_BANDWIDTH_10,
+ GST_MPEGTS_BANDWIDTH_1_172
+} GstMpegTsTerrestrialBandwidth;
+
+typedef enum {
+ GST_MPEGTS_TRANSMISSION_MODE_2K = 0,
+ GST_MPEGTS_TRANSMISSION_MODE_8K,
+ GST_MPEGTS_TRANSMISSION_MODE_AUTO,
+ GST_MPEGTS_TRANSMISSION_MODE_4K,
+ GST_MPEGTS_TRANSMISSION_MODE_1K,
+ GST_MPEGTS_TRANSMISSION_MODE_16K,
+ GST_MPEGTS_TRANSMISSION_MODE_32K,
+ GST_MPEGTS_TRANSMISSION_MODE_C1,
+ GST_MPEGTS_TRANSMISSION_MODE_C3780
+} GstMpegTsTerrestrialTransmissionMode;
+
+typedef enum {
+ GST_MPEGTS_GUARD_INTERVAL_1_32 = 0,
+ GST_MPEGTS_GUARD_INTERVAL_1_16,
+ GST_MPEGTS_GUARD_INTERVAL_1_8,
+ GST_MPEGTS_GUARD_INTERVAL_1_4,
+ GST_MPEGTS_GUARD_INTERVAL_AUTO,
+ GST_MPEGTS_GUARD_INTERVAL_1_128,
+ GST_MPEGTS_GUARD_INTERVAL_19_128,
+ GST_MPEGTS_GUARD_INTERVAL_19_256,
+ GST_MPEGTS_GUARD_INTERVAL_PN420,
+ GST_MPEGTS_GUARD_INTERVAL_PN595,
+ GST_MPEGTS_GUARD_INTERVAL_PN945
+} GstMpegTsTerrestrialGuardInterval;
+
+typedef enum {
+ GST_MPEGTS_HIERARCHY_NONE = 0,
+ GST_MPEGTS_HIERARCHY_1,
+ GST_MPEGTS_HIERARCHY_2,
+ GST_MPEGTS_HIERARCHY_4,
+ GST_MPEGTS_HIERARCHY_AUTO
+} GstMpegTsTerrestrialHierarchy;
+
+/**
+ * GstMpegTsTerrestrialDeliverySystemDescriptor:
+ * @frequency: the frequency in Hz (Hertz)
+ * @bandwidth: the bandwidth
+ * @priority: %TRUE High Priority %FALSE Low Priority
+ * @time_slicing: %TRUE no time slicing %FALSE time slicing
+ * @mpe_fec: %TRUE no mpe-fec is used %FALSE mpe-fec is use
+ * @constellation: the constallation
+ * @hierarchy: the hierarchy
+ * @code_rate_hp:
+ * @code_rate_lp:
+ * @guard_interval:
+ * @transmission_mode:
+ * @other_frequency: %TRUE more frequency are use, else not
+ *
+ * Terrestrial Delivery System Descriptor (EN 300 468 v.1.13.1)
+ */
+
+struct _GstMpegTsTerrestrialDeliverySystemDescriptor
+{
+ guint32 frequency;
+ GstMpegTsTerrestrialBandwidth bandwidth;
+ gboolean priority;
+ gboolean time_slicing;
+ gboolean mpe_fec;
+ GstMpegTsModulationType constellation;
+ GstMpegTsTerrestrialHierarchy hierarchy;
+ GstMpegTsDVBCodeRate code_rate_hp;
+ GstMpegTsDVBCodeRate code_rate_lp;
+ GstMpegTsTerrestrialGuardInterval guard_interval;
+ GstMpegTsTerrestrialTransmissionMode transmission_mode;
+ gboolean other_frequency;
+};
+
+gboolean gst_mpegts_descriptor_parse_terrestrial_delivery_system (const GstMpegTsDescriptor
+ *descriptor, GstMpegTsTerrestrialDeliverySystemDescriptor * res);
/* GST_MTS_DESC_DVB_FREQUENCY_LIST (0x62) */
/* FIXME : Implement */