From: Lucía D. R. <ld...@gr...> - 2014-06-04 20:42:20
|
Thank for your answer!! I've tried doing what exif_entry_initialize() does but I get a compiler error at: exifentry->data = exif_entry_alloc (exifentry, exifentry->size); because that is a private function on exif-entry.c. So I've tried doing what that function does, that is: exifentry->data = exif_mem_alloc (exifentry->priv->mem, exifentry->size); but this also fails, because the compiler doesn't know exifentry->priv->mem (error: invalid use of incomplete type ‘ExifEntryPrivate {aka struct _ExifEntryPrivate}’). And I could find where that is to give some reference to the compiler. That's why I tried the write.exif.c bit: buf = exif_mem_alloc(mem, exifentry->size); assert(buf != NULL); /* Fill in the entry */ exifentry->data = (unsigned char *)buf; But the firs line results in segmentation fault, so that doesn't work either. So I really don't know what to do to make it work like it is supposed to, that why I asked if is true that it works :)) Thanks again, Lucía 2014-06-04 21:07 GMT+02:00 Dan Fandrich <da...@co...>: > On Wed, Jun 04, 2014 at 04:33:51PM +0200, Lucía Díaz Rodríguez wrote: > > I'm trying to add Exif information to a JPEG file. I've tried the exif > command > > line tool (v0.6.21) and the libexif API (v0.6.21-1). > > Everything works fine until I get to the GPS information (Latitude, > > LatitudeRef, Longitude and LongitudeRef). I'm able to read it if it > already > > exits but i'm not able to create or modify it. > > > > Using the exif command line tool (in Mint 16 64bits and also in Ubuntu > 12.04 > > 32-bits), like so: > > exif -c --ifd=GPS --tag=0x0001 --set-value="N" foto-exif.mjpg > > I get this error: > > Setting a value for this tag is unsupported! > > (Same result using --tag=GPSLatitudeRef). > > That's a limitation in the command-line program that flows from missing > tags in > the library. There's no good reason for the tags to be missing, except that > it's really a convenience function that most programs don't actually need. > It would be possible to add command-line options to exif to support > arbitrary > tag data; I'm happy to review patches! > > > Using the libexif API, when I try: exif_entry_initialize (exifentry, > tag), the > > tag is not listed in the switch cases so default it's used and the entry > gets > > FORMAT_UNDEFINED and components=0, which doesn't allocate any memory for > the > > associated data. > > Even if I try to initialize the entry myself (like in the write-exif.c > example) > > I'm not able to do so for the data field (I get a segmentation fault on > > exif_mem_alloc(mem, exifentry->size)). > > That should work fine, except that write-exif.c relies on > exif_entry_initialize > to create the empty tag, so it's not a complete solution. Take a look at > the code > in exif_entry_initialize itself to figure out the rest. > > > Now, I've found a bug report from 2005 (https://bugs.debian.org/cgi-bin/ > > bugreport.cgi?bug=309127) mentioning the GPS tags editing. In its > response it's > > stated that editing this sort of tags it's possible since exif 0.6.15. > > Has anything changed since then? If not, would you be so kind as to > explain to > > me what am I doing wrong? I've already tried all I could think of and got > > nowhere. > > I don't recall what changes were made since then that would affect this, > but > libexif got more strict in a number of ways since then. I don't think any > existing (working) functionality was removed. > > >>> Dan > > > ------------------------------------------------------------------------------ > Learn Graph Databases - Download FREE O'Reilly Book > "Graph Databases" is the definitive new guide to graph databases and their > applications. Written by three acclaimed leaders in the field, > this first edition is now available. Download your free book today! > http://p.sf.net/sfu/NeoTech > _______________________________________________ > libexif-devel mailing list > lib...@li... > https://lists.sourceforge.net/lists/listinfo/libexif-devel > -- |