mpegts: Ensure NULL-terminated language code

Yup, it breaks API and ABI, I know. But let's avoid people and bindings
printing out garbage
This commit is contained in:
Edward Hervey 2014-05-27 17:32:52 +02:00
parent f7b1b5fcd3
commit 1797802bd2
2 changed files with 10 additions and 8 deletions

View file

@ -941,6 +941,7 @@ gst_mpegts_descriptor_parse_dvb_extended_event (const GstMpegTsDescriptor
data += 1; data += 1;
memcpy (res->language_code, data, 3); memcpy (res->language_code, data, 3);
res->language_code[3] = 0;
data += 3; data += 3;

View file

@ -473,6 +473,7 @@ struct _GstMpegTsExtendedEventItem
* GstMpegTsExtendedEventDescriptor: * GstMpegTsExtendedEventDescriptor:
* @desctiptor_number: * @desctiptor_number:
* @last_descriptor_number: * @last_descriptor_number:
* @language_code: NULL terminated language code.
* @items: (element-type GstMpegTsExtendedEventItem): the #GstMpegTsExtendedEventItem * @items: (element-type GstMpegTsExtendedEventItem): the #GstMpegTsExtendedEventItem
* @text: * @text:
* *
@ -482,7 +483,7 @@ struct _GstMpegTsExtendedEventDescriptor
{ {
guint8 descriptor_number; guint8 descriptor_number;
guint8 last_descriptor_number; guint8 last_descriptor_number;
gchar language_code[3]; gchar language_code[4];
GPtrArray *items; GPtrArray *items;
gchar *text; gchar *text;
}; };
@ -498,7 +499,7 @@ struct _GstMpegTsComponentDescriptor
guint8 component_type; guint8 component_type;
guint8 component_tag; guint8 component_tag;
/* FIXME : Make it a separate (allocated, null-terminated) return value */ /* FIXME : Make it a separate (allocated, null-terminated) return value */
gchar language_code[3]; gchar language_code[4];
gchar *text; gchar *text;
}; };
@ -536,7 +537,7 @@ typedef struct _GstMpegTsDVBParentalRatingItem GstMpegTsDVBParentalRatingItem;
*/ */
struct _GstMpegTsDVBParentalRatingItem struct _GstMpegTsDVBParentalRatingItem
{ {
gchar country_code[3]; gchar country_code[4];
guint8 rating; guint8 rating;
}; };
@ -665,7 +666,7 @@ typedef struct _GstMpegTsDvbMultilingualNetworkNameItem GstMpegTsDvbMultilingual
*/ */
struct _GstMpegTsDvbMultilingualNetworkNameItem struct _GstMpegTsDvbMultilingualNetworkNameItem
{ {
gchar language_code[3]; gchar language_code[4];
gchar *network_name; gchar *network_name;
}; };
@ -684,7 +685,7 @@ typedef struct _GstMpegTsDvbMultilingualBouquetNameItem GstMpegTsDvbMultilingual
*/ */
struct _GstMpegTsDvbMultilingualBouquetNameItem struct _GstMpegTsDvbMultilingualBouquetNameItem
{ {
gchar language_code[3]; gchar language_code[4];
gchar *bouquet_name; gchar *bouquet_name;
}; };
@ -704,7 +705,7 @@ typedef struct _GstMpegTsDvbMultilingualServiceNameItem GstMpegTsDvbMultilingual
*/ */
struct _GstMpegTsDvbMultilingualServiceNameItem struct _GstMpegTsDvbMultilingualServiceNameItem
{ {
gchar language_code[3]; gchar language_code[4];
gchar *provider_name; gchar *provider_name;
gchar *service_name; gchar *service_name;
}; };
@ -722,7 +723,7 @@ typedef struct _GstMpegTsDvbMultilingualComponentItem GstMpegTsDvbMultilingualCo
*/ */
struct _GstMpegTsDvbMultilingualComponentItem struct _GstMpegTsDvbMultilingualComponentItem
{ {
gchar language_code[3]; gchar language_code[4];
gchar *description; gchar *description;
}; };
@ -754,7 +755,7 @@ struct _GstMpegTsDataBroadcastDescriptor
guint16 data_broadcast_id; guint16 data_broadcast_id;
guint8 component_tag; guint8 component_tag;
guint8 *selector_bytes; guint8 *selector_bytes;
gchar language_code[3]; gchar language_code[4];
gchar *text; gchar *text;
}; };