Bug 267262

Summary: Digikam not compliant with "Metadata Working Group" specification when reading caption
Product: [Applications] digikam Reporter: thdox
Component: Metadata-EngineAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles, cliff.dugal, thdox
Priority: NOR    
Version: 2.0.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 3.0.0
Sentry Crash Report:
Attachments: File with XMP-dc:Description

Description thdox 2011-02-27 17:19:18 UTC
Version:           1.4.0
OS:                Linux

Here is link to Metadata Working Group specification (=MWG)
http://www.metadataworkinggroup.org/pdf/mwg_guidance.pdf

1. Please start with a jpg image without comment in any metadata field.
2. On command line : exiftool -MWG:Description="Julie" image.jpg
3. The field EXIF:ImageDescription and XMP:Description have been written.
4. When image.jpg is opened in Digikam, the caption (in French "légende") is empty. In section 3.1.3 "It (the consumer) MUST reconcile between different forms of metadata in the image.", and in section 5.2, the listed tags are Exif:ImageDescription IPTC:Caption XMP-dc:description[“x-default”].

Digikam MUST reconcile tags, and prefer EXIF value.


Reproducible: Didn't try

Steps to Reproduce:
1. Please start with a jpg image without comment in any metadata field.
2. On command line : exiftool -MWG:Description="Julie" image.jpg
3. The field EXIF:ImageDescription and XMP:Description have been written.


Actual Results:  
4. When image.jpg is opened in Digikam, the caption (in French "légende") is empty. 

Expected Results:  
In section 3.1.3 "It (the consumer) MUST reconcile between different forms of metadata in the image.", and in section 5.2, the listed tags are Exif:ImageDescription IPTC:Caption XMP-dc:description[“x-default”].


Digikam MUST reconcile tags, and prefer EXIF value.

OS: Linux (x86_64) release 2.6.35-25-generic
Compiler: cc
Comment 1 thdox 2011-02-27 17:20:48 UTC
Created attachment 57554 [details]
File with XMP-dc:Description
Comment 2 thdox 2011-02-27 17:36:14 UTC
Additional steps:
5. I added the IPTC caption to my image file, using command line : exiftool -IPTC:Caption-Abstract="Julie" 20050417_0013.jpg (now the tags are synchronized : Exif:ImageDescription IPTC:Caption XMP-dc:description[“x-default”] )
6. Inside digikam, I did (in French) "Album/Lire à nouveau les métadonnées à partir des images". Probable translation is "Album/Reread metadata from image files".
7. Digikam is silently causing data loss by removing IPTC:Caption and XMP-dc:description.
Comment 3 caulier.gilles 2011-03-15 09:20:57 UTC
NOTE : In your jpg test image, Exif description is patched but not XMP :

[gilles@localhost test]$ exiv2 -pa 267262.jpg |grep Julie
Exif.Image.ImageDescription                  Ascii       6  Julie

[gilles@localhost test]$ exiv2 -pa 267262.jpg 
Exif.Image.ProcessingSoftware                Ascii      14  digiKam-1.4.0
Exif.Image.ImageDescription                  Ascii       6  Julie
Exif.Image.Make                              Ascii      24  OLYMPUS IMAGING CORP.  
Exif.Image.Model                             Ascii      17  u40D,S500,uD500 
Exif.Image.Orientation                       Short       1  top, left
Exif.Image.XResolution                       Rational    1  314
Exif.Image.YResolution                       Rational    1  314
Exif.Image.ResolutionUnit                    Short       1  inch
Exif.Image.Software                          Ascii      32  Version 1.0                    
Exif.Image.DateTime                          Ascii      20  2005:04:17 15:03:10
Exif.Image.YCbCrPositioning                  Short       1  Co-sited
Exif.Image.ExifTag                           Long        1  828
Exif.Photo.ExposureTime                      Rational    1  1/60 s
Exif.Photo.FNumber                           Rational    1  F4.1
Exif.Photo.ExposureProgram                   Short       1  Auto
Exif.Photo.ISOSpeedRatings                   Short       1  100
Exif.Photo.ExifVersion                       Undefined   4  2.21
Exif.Photo.DateTimeOriginal                  Ascii      20  2005:04:17 15:03:10
Exif.Photo.DateTimeDigitized                 Ascii      20  2005:04:17 15:03:10
Exif.Photo.ComponentsConfiguration           Undefined   4  YCbCr
Exif.Photo.ExposureBiasValue                 SRational   1  0 EV
Exif.Photo.MaxApertureValue                  Rational    1  F3.1
Exif.Photo.MeteringMode                      Short       1  Multi-segment
Exif.Photo.LightSource                       Short       1  Unknown
Exif.Photo.Flash                             Short       1  Yes, auto, red-eye reduction
Exif.Photo.FocalLength                       Rational    1  11.5 mm
Exif.Photo.MakerNote                         Undefined 5070  (Binary value suppressed)
Exif.MakerNote.Offset                        Long        1  1274
Exif.MakerNote.ByteOrder                     Ascii       3  II
Exif.Olympus.SpecialMode                     Long        3  Normal
Exif.Olympus.Quality                         Short       1  High Quality (HQ)
Exif.Olympus.Macro                           Short       1  Off
Exif.Olympus.BWMode                          Short       1  Off
Exif.Olympus.DigitalZoom                     Rational    1  None
Exif.Olympus.FocalPlaneDiagonal              Rational    1  715/100
Exif.Olympus.LensDistortionParams            SShort      6  0 0 0 0 0 0
Exif.Olympus.CameraType                      Ascii       6  D4221
Exif.Olympus.CameraID                        Undefined  32  OLYMPUS DIGITAL CAMERA         
Exif.Olympus.Equipment                       Undefined 156  (Binary value suppressed)
Exif.Olympus.CameraSettings                  Undefined 662  (Binary value suppressed)
Exif.Olympus.RawDevelopment                  Undefined  30  2 0 0 0 7 0 4 0 0 0 48 49 48 48 11 1 3 0 1 0 0 0 0 0 0 0 0 0 0 0
Exif.Olympus.ImageProcessing                 Undefined 324  (Binary value suppressed)
Exif.Olympus.FocusInfo                       Undefined 3638  (Binary value suppressed)
Exif.Photo.FlashpixVersion                   Undefined   4  1.00
Exif.Photo.ColorSpace                        Short       1  sRGB
Exif.Photo.PixelXDimension                   Long        1  800
Exif.Photo.PixelYDimension                   Long        1  600
Exif.Photo.InteroperabilityTag               Long        1  6352
Exif.Iop.InteroperabilityIndex               Ascii       4  R98
Exif.Iop.InteroperabilityVersion             Undefined   4  1.00
Exif.Photo.FileSource                        Undefined   1  Digital still camera
Exif.Photo.CustomRendered                    Short       1  Normal process
Exif.Photo.ExposureMode                      Short       1  Auto
Exif.Photo.WhiteBalance                      Short       1  Auto
Exif.Photo.DigitalZoomRatio                  Rational    1  1.0
Exif.Photo.SceneCaptureType                  Short       1  Standard
Exif.Photo.GainControl                       Short       1  Low gain up
Exif.Photo.Contrast                          Short       1  Normal
Exif.Photo.Saturation                        Short       1  Normal
Exif.Photo.Sharpness                         Short       1  Normal
Exif.Image.PrintImageMatching                Undefined 528  (Binary value suppressed)
Exif.Thumbnail.Compression                   Short       1  JPEG (old-style)
Exif.Thumbnail.XResolution                   Rational    1  72
Exif.Thumbnail.YResolution                   Rational    1  72
Exif.Thumbnail.ResolutionUnit                Short       1  inch
Exif.Thumbnail.JPEGInterchangeFormat         Long        1  6476
Exif.Thumbnail.JPEGInterchangeFormatLength   Long        1  8458
Iptc.Application2.Program                    String      7  digiKam
Iptc.Application2.ProgramVersion             String      5  1.4.0
Iptc.Application2.DateCreated                Date        8  2005-04-17
Iptc.Application2.TimeCreated                Time       11  15:03:10+00:00
Xmp.xmp.CreatorTool                          XmpText    13  digiKam-1.4.0
Xmp.xmp.CreateDate                           XmpText    19  2005-04-17T15:03:10
Xmp.xmp.MetadataDate                         XmpText    19  2005-04-17T15:03:10
Xmp.xmp.ModifyDate                           XmpText    19  2005-04-17T15:03:10
Xmp.tiff.Software                            XmpText    13  digiKam-1.4.0
Xmp.tiff.DateTime                            XmpText    19  2005-04-17T15:03:10
Xmp.exif.DateTimeOriginal                    XmpText    19  2005:04:17 15:03:10
Xmp.photoshop.DateCreated                    XmpText    19  2005-04-17T15:03:10

Gilles Caulier
Comment 4 caulier.gilles 2011-03-15 09:55:51 UTC
Git commit be683c328a9df0a418a407e3a56dc5bf73b14f14 by Gilles Caulier.
Committed on 15/03/2011 at 09:54.
Pushed by cgilles into branch 'master'.

do not forget to handle Exif.Image.Description when comment is scanned from Exif metadata
BUGS: 267262

M  +15   -3    libkexiv2/kexiv2exif.cpp     

http://commits.kde.org/libkexiv2/be683c328a9df0a418a407e3a56dc5bf73b14f14
Comment 5 Marcel Wiesweg 2011-04-16 16:00:23 UTC
I have encountered a problem with the last commit here: From my camera, the Exif ImageDescription field is always set to "SONY DSC", so all new photos have this annoying comment.
No problems with other manufacturers? We could install a blacklist, marking "SONY DSC" as nonsense content.
Comment 6 Marcel Wiesweg 2011-04-17 12:03:04 UTC
Git commit 2ff60c357314ed68d3e1481a6a0b45ee785d6a2e by Marcel Wiesweg.
Committed on 17/04/2011 at 12:09.
Pushed by mwiesweg into branch 'master'.

Add blacklist for nonsense values in Exif.Image.ImageDescription (Sony cameras)

CCBUG: 267262

M  +7    -1    libkexiv2/kexiv2exif.cpp     

http://commits.kde.org/libkexiv2/2ff60c357314ed68d3e1481a6a0b45ee785d6a2e
Comment 7 Cliff Dugal 2012-07-04 02:18:00 UTC
All of my captions in digiKam are coming up as "OLYMPUS DIGITAL CAMERA         " for my Olympus Stylus 1030SW. Any chance that this string can be blacklisted too?
Comment 8 Marcel Wiesweg 2012-07-04 19:45:02 UTC
Sure. I believe there's a release freeze for KDE atm, will commit later.
Comment 9 Marcel Wiesweg 2012-09-29 12:32:44 UTC
Git commit cb33be41841e62bff20f447ae4e3d42979584df9 by Marcel Wiesweg.
Committed on 04/07/2012 at 21:43.
Pushed by mwiesweg into branch 'master'.

Blacklist nonsense value in Exif.Image.ImageDescription for Olympus cameras

M  +1    -0    libkexiv2/kexiv2exif.cpp

http://commits.kde.org/libkexiv2/cb33be41841e62bff20f447ae4e3d42979584df9