aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/gstreamer_extractor.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/gstreamer_extractor.c')
-rw-r--r--src/plugins/gstreamer_extractor.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/plugins/gstreamer_extractor.c b/src/plugins/gstreamer_extractor.c
index 81f2d5b..2d6a2bb 100644
--- a/src/plugins/gstreamer_extractor.c
+++ b/src/plugins/gstreamer_extractor.c
@@ -847,7 +847,8 @@ send_structure_foreach (GQuark field_id, const GValue *value,
847{ 847{
848 PrivStruct *ps = (PrivStruct *) user_data; 848 PrivStruct *ps = (PrivStruct *) user_data;
849 gchar *str; 849 gchar *str;
850 const char *field_name = g_quark_to_string (field_id); 850 const gchar *field_name = g_quark_to_string (field_id);
851 const gchar *type_name = g_type_name (G_VALUE_TYPE (value));
851 852
852 /* TODO: check a list of known quarks, use specific EXTRACTOR_MetaType */ 853 /* TODO: check a list of known quarks, use specific EXTRACTOR_MetaType */
853 switch (G_VALUE_TYPE (value)) 854 switch (G_VALUE_TYPE (value))
@@ -856,9 +857,17 @@ send_structure_foreach (GQuark field_id, const GValue *value,
856 str = g_value_dup_string (value); 857 str = g_value_dup_string (value);
857 break; 858 break;
858 case G_TYPE_UINT: 859 case G_TYPE_UINT:
860 case G_TYPE_INT:
859 case G_TYPE_DOUBLE: 861 case G_TYPE_DOUBLE:
860 default: 862 case G_TYPE_BOOLEAN:
861 str = gst_value_serialize (value); 863 str = gst_value_serialize (value);
864 break;
865 default:
866 /* This is a potential source of invalid characters */
867 /* And it also might attempt to serialize binary data - such as images. */
868 str = NULL;
869 g_print ("Will not try to serialize structure field %s (%s)\n", field_name, type_name);
870 break;
862 } 871 }
863 if (str != NULL) 872 if (str != NULL)
864 { 873 {
@@ -1164,7 +1173,9 @@ send_tag_foreach (const GstTagList * tags, const gchar * tag,
1164 str = g_value_dup_string (&val); 1173 str = g_value_dup_string (&val);
1165 break; 1174 break;
1166 case G_TYPE_UINT: 1175 case G_TYPE_UINT:
1176 case G_TYPE_INT:
1167 case G_TYPE_DOUBLE: 1177 case G_TYPE_DOUBLE:
1178 case G_TYPE_BOOLEAN:
1168 str = gst_value_serialize (&val); 1179 str = gst_value_serialize (&val);
1169 break; 1180 break;
1170 default: 1181 default:
@@ -1319,9 +1330,12 @@ send_toc_tags_foreach (const GstTagList * tags, const gchar * tag,
1319 PrivStruct *ps = (PrivStruct *) user_data; 1330 PrivStruct *ps = (PrivStruct *) user_data;
1320 GValue val = { 0, }; 1331 GValue val = { 0, };
1321 gchar *topen, *str, *tclose; 1332 gchar *topen, *str, *tclose;
1333 const gchar *type_name;
1322 1334
1323 gst_tag_list_copy_value (&val, tags, tag); 1335 gst_tag_list_copy_value (&val, tags, tag);
1324 1336
1337 type_name = g_type_name (G_VALUE_TYPE (&val));
1338
1325 switch (G_VALUE_TYPE (&val)) 1339 switch (G_VALUE_TYPE (&val))
1326 { 1340 {
1327 case G_TYPE_STRING: 1341 case G_TYPE_STRING:
@@ -1336,6 +1350,7 @@ send_toc_tags_foreach (const GstTagList * tags, const gchar * tag,
1336 /* This is a potential source of invalid characters */ 1350 /* This is a potential source of invalid characters */
1337 /* And it also might attempt to serialize binary data - such as images. */ 1351 /* And it also might attempt to serialize binary data - such as images. */
1338 str = NULL; 1352 str = NULL;
1353 g_print ("Will not try to serialize tag %s (%s)\n", tag, type_name);
1339 break; 1354 break;
1340 } 1355 }
1341 if (str != NULL) 1356 if (str != NULL)