Skip to content
  • Paulo Neves's avatar
    exiftag: Increase serialized geo precision · 5dd720e0
    Paulo Neves authored
    The serialization of double typed geographical
    coordinates to DMS system supported by the exif
    standards was previously truncated without need.
    
    The previous code truncated the seconds part of
    the coordinate to a fraction with denominator
    equal to 1 causing a bug on the deserialization
    when the test for the coordinate to be serialized
    was more precise.
    
    This patch applies a 10E6 multiplier to the numerator
    equal to the denominator of the rational number.
    
    Eg. Latitude = 89.5688643 Serialization
    
    DMS Old code = 89/1 deg, 34/1 min, 7/1 sec
    DMS New code = 89/1 deg, 34/1 min, 79114800UL/10000000UL
    
    Deserialization
    
    DMS Old code = 89.5686111111
    DMS New code = 89.5688643
    
    The new test tries to serialize a higher precision
    coordinate.
    
    The types of the coordinates are also guint32 instead
    of gint like previously. guint32 is the type of the
    fraction components in the exif.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=767537
    5dd720e0