[Rawstudio-commit] r2002 - trunk/src

Anders Brander anders at brander.dk
Mon Sep 15 21:06:22 CEST 2008


Author: abrander
Date: 2008-09-15 21:06:22 +0200 (Mon, 15 Sep 2008)
New Revision: 2002

Modified:
   trunk/src/tiff-meta.c
Log:
Fixed Panasonic regression.

Modified: trunk/src/tiff-meta.c
===================================================================
--- trunk/src/tiff-meta.c	2008-09-15 18:08:56 UTC (rev 2001)
+++ trunk/src/tiff-meta.c	2008-09-15 19:06:22 UTC (rev 2002)
@@ -234,6 +234,7 @@
 static gboolean
 makernote_leica(RAWFILE *rawfile, guint offset, RS_METADATA *meta)
 {
+	gboolean ret = FALSE;
 	gushort number_of_entries = 0;
 	guint version = 0;
 
@@ -289,17 +290,40 @@
 				switch(ifd.tag)
 				{
 					case 0x0001: /* Raw version */
-						if (ifd.value_offset == 0x30303130)
-							version = 100;
-						else if (ifd.value_offset == 0x30303230)
-							version = 200;
+						switch (ifd.value_offset)
+						{
+							case 0x30303130: /* Leica */
+								version = 100;
+								ret = TRUE;
+								break;
+							case 0x30303230: /* Leica / Panasonic */
+								version = 200;
+								ret = FALSE;
+								break;
+							case 0x30313230: /* Panasonic */
+								version = 210;
+								ret = FALSE;
+								break;
+							case 0x31303230: /* Panasonic */
+								version = 201;
+								ret = FALSE;
+								break;
+							case 0x32303230: /* Panasonic */
+								version = 202;
+								ret = FALSE;
+								break;
+							default:
+								ret = FALSE;
+								break;
+						}
+						break;
 				}
 				break;
 		}
 	}
 	rs_metadata_normalize_wb(meta);
 
-	return TRUE;
+	return ret;
 }
 
 static gboolean
@@ -1047,7 +1071,8 @@
 		switch (meta->make)
 		{
 			case MAKE_LEICA:
-				makernote_leica(rawfile, offset, meta);
+				if (!makernote_leica(rawfile, offset, meta))
+					ifd_reader(rawfile, offset, meta);
 				break;
 			default:
 				ifd_reader(rawfile, offset, meta);




More information about the Rawstudio-commit mailing list