GST_LOG ("UTC timezone");
/* Having a Z at the end means UTC */
- datetime = gst_date_time_new (year, month, day, hour, minute,
- second, usecs, 0);
+ datetime = gst_date_time_new (0, year, month, day, hour, minute,
+ second + usecs / 1000000.0);
} else {
gchar *plus_pos = NULL;
gchar *neg_pos = NULL;
GST_LOG ("Timezone offset: %f (%d minutes)", gmt_offset / 60.0,
gmt_offset);
+
/* no way to know if it is DST or not */
- datetime = gst_date_time_new (year, month, day, hour, minute,
- second, usecs, gmt_offset / 60.0f);
+ datetime =
+ gst_date_time_new (gmt_offset / 60.0,
+ year, month, day, hour, minute,
+ second + usecs / ((gdouble) G_USEC_PER_SEC));
} else {
GST_WARNING ("Failed to parse timezone information");
}
(gint) g_date_get_day (date));
} else if (G_VALUE_TYPE (value) == GST_TYPE_DATE_TIME) {
gint year, month, day, hour, min, sec, microsec;
- gint gmt_offset = 0;
+ gfloat gmt_offset = 0;
gint gmt_offset_hour, gmt_offset_min;
GstDateTime *datetime = (GstDateTime *) g_value_get_boxed (value);
min = gst_date_time_get_minute (datetime);
sec = gst_date_time_get_second (datetime);
microsec = gst_date_time_get_microsecond (datetime);
- gmt_offset = (gint) (60 * gst_date_time_get_time_zone_offset (datetime));
+ gmt_offset = gst_date_time_get_time_zone_offset (datetime);
if (gmt_offset == 0) {
/* UTC */
return g_strdup_printf ("%04d-%02d-%02dT%02d:%02d:%02d.%06dZ",
year, month, day, hour, min, sec, microsec);
} else {
- gmt_offset_hour = ABS (gmt_offset) / 60;
- gmt_offset_min = ABS (gmt_offset) % 60;
+ gmt_offset_hour = ABS (gmt_offset);
+ gmt_offset_min = (ABS (gmt_offset) - gmt_offset_hour) * 60;
return g_strdup_printf ("%04d-%02d-%02dT%02d:%02d:%02d.%06d%c%02d:%02d",
year, month, day, hour, min, sec, microsec,
g_value_unset (&value);
g_value_init (&value, GST_TYPE_DATE_TIME);
- datetime = gst_date_time_new (2010, 6, 22, 12, 5, 10, 0, 0);
+ datetime = gst_date_time_new (0, 2010, 6, 22, 12, 5, 10);
g_value_set_boxed (&value, datetime);
gst_date_time_unref (datetime);
do_simple_xmp_tag_serialization_deserialization (GST_TAG_DATE_TIME, &value);
- datetime = gst_date_time_new (2010, 6, 22, 12, 5, 10, 125, 0);
+ datetime = gst_date_time_new (0, 2010, 6, 22, 12, 5, 10.000125);
g_value_set_boxed (&value, datetime);
gst_date_time_unref (datetime);
do_simple_xmp_tag_serialization_deserialization (GST_TAG_DATE_TIME, &value);
- datetime = gst_date_time_new (2010, 6, 22, 12, 5, 10, 1, 0);
+ datetime = gst_date_time_new (0, 2010, 6, 22, 12, 5, 10.000001);
g_value_set_boxed (&value, datetime);
gst_date_time_unref (datetime);
do_simple_xmp_tag_serialization_deserialization (GST_TAG_DATE_TIME, &value);
- datetime = gst_date_time_new (2010, 6, 22, 12, 5, 10, 123456, 0);
+ datetime = gst_date_time_new (0, 2010, 6, 22, 12, 5, 10.123456);
g_value_set_boxed (&value, datetime);
gst_date_time_unref (datetime);
do_simple_xmp_tag_serialization_deserialization (GST_TAG_DATE_TIME, &value);
- datetime = gst_date_time_new (2010, 6, 22, 12, 5, 10, 123456, -3);
+ datetime = gst_date_time_new (-3, 2010, 6, 22, 12, 5, 10.123456);
g_value_set_boxed (&value, datetime);
gst_date_time_unref (datetime);
do_simple_xmp_tag_serialization_deserialization (GST_TAG_DATE_TIME, &value);
- datetime = gst_date_time_new (2010, 6, 22, 12, 5, 10, 123456, 5);
+ datetime = gst_date_time_new (5, 2010, 6, 22, 12, 5, 10.123456);
g_value_set_boxed (&value, datetime);
gst_date_time_unref (datetime);
do_simple_xmp_tag_serialization_deserialization (GST_TAG_DATE_TIME, &value);
- datetime = gst_date_time_new_local_time (2010, 12, 2, 12, 5, 10, 43);
+ datetime = gst_date_time_new_local_time (2010, 12, 2, 12, 5, 10.000043);
g_value_set_boxed (&value, datetime);
gst_date_time_unref (datetime);
do_simple_xmp_tag_serialization_deserialization (GST_TAG_DATE_TIME, &value);
GST_TAG_IMAGE_VERTICAL_PPI, 300.0, NULL);
g_value_init (&value, GST_TYPE_DATE_TIME);
- datetime = gst_date_time_new_local_time (2010, 6, 22, 12, 5, 10, 0);
+ datetime = gst_date_time_new_local_time (2010, 6, 22, 12, 5, 10);
g_value_set_boxed (&value, datetime);
gst_date_time_unref (datetime);
gst_tag_list_add_value (taglist, GST_TAG_MERGE_APPEND, GST_TAG_DATE_TIME,
g_value_unset (&value);
g_value_init (&value, GST_TYPE_DATE_TIME);
- datetime = gst_date_time_new_local_time (2010, 6, 22, 12, 5, 10, 0);
+ datetime = gst_date_time_new_local_time (2010, 6, 22, 12, 5, 10);
g_value_set_boxed (&value, datetime);
gst_date_time_unref (datetime);
do_simple_exif_tag_serialization_deserialization (GST_TAG_DATE_TIME, &value);