gst_mpegts_descriptor_parse_dvb_stuffing
<SUBSECTION bouquet_name>
gst_mpegts_descriptor_parse_dvb_bouquet_name
+<SUBSECTION multilingual_network_name>
+GstMpegTsDvbMultilingualNetworkNameItem
+gst_mpegts_descriptor_parse_dvb_multilingual_network_name
<SUBSECTION Standard>
GST_TYPE_MPEG_TSDVB_CODE_RATE
gst_mpegts_dvb_code_rate_get_type
return TRUE;
}
+/* GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME (0x5B) */
+static void
+ _gst_mpegts_dvb_multilingual_network_name_item_free
+ (GstMpegTsDvbMultilingualNetworkNameItem * item)
+{
+ g_slice_free (GstMpegTsDvbMultilingualNetworkNameItem, item);
+}
+
+/**
+ * gst_mpegts_descriptor_parse_dvb_multilingual_network_name:
+ * @descriptor: a %GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME
+ * #GstMpegTsDescriptor
+ * @network_name_items: (out) (element-type GstMpegTsDvbMultilingualNetworkNameItem):
+ * a #GstMpegTsDvbMultilingualNetworkNameItem
+ *
+ * Parses out the multilingual network name from the @descriptor.
+ *
+ * Returns: %TRUE if the parsing happened correctly, else %FALSE.
+ */
+gboolean
+gst_mpegts_descriptor_parse_dvb_multilingual_network_name (const
+ GstMpegTsDescriptor * descriptor, GPtrArray ** network_name_items)
+{
+ guint8 *data, i, len;
+ GstMpegTsDvbMultilingualNetworkNameItem *item;
+
+ g_return_val_if_fail (descriptor != NULL && network_name_items != NULL,
+ FALSE);
+ __common_desc_checks (descriptor, GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME,
+ 5, FALSE);
+
+ data = (guint8 *) descriptor->data + 2;
+
+ *network_name_items = g_ptr_array_new_with_free_func ((GDestroyNotify)
+ _gst_mpegts_dvb_multilingual_network_name_item_free);
+
+ for (i = 0; i < descriptor->length - 3;) {
+ item = g_slice_new0 (GstMpegTsDvbMultilingualNetworkNameItem);
+ g_ptr_array_add (*network_name_items, item);
+ memcpy (data, item->language_code, 3);
+ data += 3;
+ i += 3;
+
+ len = *data;
+ item->network_name =
+ get_encoding_and_convert ((const gchar *) data + 1, len);
+ data += len + 1;
+ i += len + 1;
+ }
+
+ return TRUE;
+}
+
/* GST_MTS_DESC_DVB_PRIVATE_DATA_SPECIFIER (0x5F) */
/**
* gst_mpegts_descriptor_parse_dvb_private_data_specifier:
gboolean gst_mpegts_descriptor_parse_terrestrial_delivery_system (const GstMpegTsDescriptor
*descriptor, GstMpegTsTerrestrialDeliverySystemDescriptor * res);
+/* GST_MTS_DESC_DVB_MULTILINGUAL_NETWORK_NAME (0x5B) */
+typedef struct _GstMpegTsDvbMultilingualNetworkNameItem GstMpegTsDvbMultilingualNetworkNameItem;
+
+/**
+ * GstMpegTsDvbMultilingualNetworkNameItem:
+ * @language_code: the ISO 639 language code
+ * @network_name: the network name
+ *
+ * a multilingual network name entry
+ */
+struct _GstMpegTsDvbMultilingualNetworkNameItem
+{
+ gchar language_code[3];
+ gchar *network_name;
+};
+
+gboolean gst_mpegts_descriptor_parse_dvb_multilingual_network_name (const GstMpegTsDescriptor
+ *descriptor, GPtrArray ** network_name_items);
+
/* GST_MTS_DESC_DVB_PRIVATE_DATA_SPECIFIER (0x5F) */
gboolean gst_mpegts_descriptor_parse_dvb_private_data_specifier (const GstMpegTsDescriptor
* descriptor, guint32 * private_data_specifier, guint8 ** private_data,