Author: akv
Date: 2010-01-24 01:51:04 +0100 (Sun, 24 Jan 2010)
New Revision: 3067
Modified:
branches/rawstudio-ng-color/plugins/meta-tiff/tiff-meta.c
Log:
Reading LensType (ID) from Sony cameras.
Modified: branches/rawstudio-ng-color/plugins/meta-tiff/tiff-meta.c
===================================================================
--- branches/rawstudio-ng-color/plugins/meta-tiff/tiff-meta.c 2010-01-23
23:10:39 UTC (rev 3066)
+++ branches/rawstudio-ng-color/plugins/meta-tiff/tiff-meta.c 2010-01-24
00:51:04 UTC (rev 3067)
@@ -63,6 +63,7 @@
static gboolean makernote_olympus_equipment(RAWFILE *rawfile, guint base,
guint offset, RSMetadata *meta);
static gboolean makernote_panasonic(RAWFILE *rawfile, guint offset, RSMetadata
*meta);
static gboolean makernote_pentax(RAWFILE *rawfile, guint offset, RSMetadata
*meta);
+static gboolean makernote_sony(RAWFILE *rawfile, guint offset, RSMetadata
*meta);
static void sony_decrypt(SonyMeta *sony, guint *data, gint len);
static gboolean private_sony(RAWFILE *rawfile, guint offset, RSMetadata *meta);
static gboolean exif_reader(RAWFILE *rawfile, guint offset, RSMetadata *meta);
@@ -1045,6 +1046,36 @@
return TRUE;
}
+static gboolean
+makernote_sony(RAWFILE *rawfile, guint offset, RSMetadata *meta)
+{
+ gushort number_of_entries = 0;
+ guint uint_temp1;
+
+ struct IFD ifd;
+
+ /* get number of entries */
+ if(!raw_get_ushort(rawfile, offset, &number_of_entries))
+ return FALSE;
+ offset += 2;
+
+ while(number_of_entries--)
+ {
+ read_ifd(rawfile, offset, &ifd);
+ offset += 12;
+ print_ifd(rawfile, &ifd);
+ switch (ifd.tag)
+ {
+ case 0xb027: /* LensType */
+ raw_get_uint(rawfile, offset-4, &uint_temp1);
+ meta->lens_id = uint_temp1;
+ break;
+ }
+ }
+
+ return TRUE;
+}
+
static void
sony_decrypt(SonyMeta *sony, guint *data, gint len)
{
@@ -1214,6 +1245,9 @@
else if (raw_strcmp(rawfile,
ifd.value_offset, "OLYMP", 5))
makernote_olympus(rawfile, ifd.value_offset+8, ifd.value_offset+8, meta);
break;
+ case MAKE_SONY:
+ makernote_sony(rawfile,
ifd.value_offset, meta);
+ break;
default:
break;
}
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit