Hi list,
I initially sent this mail to Raphaël, who seems to be away of some
kind. I think there are a lot of extraordinary C programmers on the list
so I give it a try:
-------------
I'm still working on the metadata browser. Though haven't gone very
far, also because I can't spend much time in this. The manual drains
more time than I thought.
Anyways - I hope you can help me in a (hopefully) simple question. If
you don't have time currently and think the question is better be
answered on the developer mailing list, let me know.
I'm currently just trying to store the EXIF metadata in the XMP block
during load of a JPEG file.
The weird thing just happens during the few steps:
1. loading the JPEG
2. call:
jpeg-load.c: L 330
gimp_metadata_store_exif (image_ID, exif_data);
3. call:
gimpexif.c: L 70
return_vals = gimp_run_procedure ("plug-in-metadata-decode-exif",
&nreturn_vals,
GIMP_PDB_IMAGE, image_ID,
GIMP_PDB_INT32, exif_data->size,
GIMP_PDB_INT8ARRAY, exif_data,
GIMP_PDB_END);
4. call:
metadata.c: L 454
data = (ExifData *) param[2].data.d_int8array;
exif_data_size = param[1].data.d_int32;
if (! xmp_merge_from_exifbuffer (xmp_model,
data,
exif_data_size,
&error))
5. call:
exif-decode.c: L 5
if (data->size)
exif_iter_content (xmp_model, data);
6. call:
exif-decode.c: L 104
for (i=0; i < EXIF_IFD_COUNT; i++)
{
content = data->ifd[i]; /* BANG! */
At this point, I'm iterating over the exif content and entries. When I
try to access the entries I'm getting a Segmentation fault *Bang*.
A segmentation fault also happens if I'm trying to access the EXIF
entries at the point in the metadata.c file. So I'm just guessing that I
missed something but I don't have any clue what ...
I created a patch against the current TRUNK with my changes and put it
on:
http://amy.gocept.com/~roman/metadata.patch
It's not productive code, just my lousy attempt to get more the EXIF
content displayed in the metadata browser ;) And of course more
experience with C.
Thanks for any helpful ideas!!!!