Endianess of Nikon V1 makernotes is now guessed, it might not be the same
authorJan Patera <patera@pictview.com>
Mon, 25 Jun 2007 05:55:23 +0000 (07:55 +0200)
committerJan Patera <patera@pictview.com>
Mon, 25 Jun 2007 05:55:23 +0000 (07:55 +0200)
as of the main IFD.

libexif/olympus/exif-mnote-data-olympus.c

index 4e5f651..179609e 100644 (file)
@@ -267,6 +267,16 @@ exif_mnote_data_olympus_load (ExifMnoteData *en,
                case nikonV1:
 
                        base = MNOTE_NIKON1_TAG_BASE;
+                       /* Fix endianness, if needed */
+                       if (o2 >= buf_size) return;
+                       c = exif_get_short (buf + o2, n->order);
+                       if ((!(c & 0xFF)) && (c > 0x500)) {
+                               if (n->order == EXIF_BYTE_ORDER_INTEL) {
+                                       n->order = EXIF_BYTE_ORDER_MOTOROLA;
+                               } else {
+                                       n->order = EXIF_BYTE_ORDER_INTEL;
+                               }
+                       }
                        break;
 
                case nikonV2: