Bug 174108 - digiKam and exiv2 crash with AVI file - Use ExifTool instead.
Summary: digiKam and exiv2 crash with AVI file - Use ExifTool instead.
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Metadata-Video (show other bugs)
Version: unspecified
Platform: Kubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-11-02 16:00 UTC by Geoff King
Modified: 2022-04-10 13:13 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 8.0.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Geoff King 2008-11-02 16:00:45 UTC
Version:           0.10.0-beta6 (rev.: 879099) (using 4.1.2 (KDE 4.1.2), Kubuntu packages)
Compiler:          cc
OS:                Linux (i686) release 2.6.27-7-generic

digikam4 and exiv2 crash with an AVI file.  The avi file was from a canon camera and it can be played fine on the system with mplayer. Exiv2 version is latest svn exiv2 0.18-pre2 (from a few hours ago).

This was in the terminal:
digikam(15814) Digikam::isJpegImage: mimetype =  "JPEG"
digikam(15814) KExiv2Iface::KExiv2::getImageOrientation: Orientation => Exif.Image.Orientation =>  1
digikam(15814) Digikam::isJpegImage: mimetype =  "JPEG"
digikam(15814) KExiv2Iface::KExiv2::getImageOrientation: Orientation => Exif.Image.Orientation =>  1
terminate called after throwing an instance of 'Exiv2::Error'
  what():  /home/gsking/Pictures/DVDRAW023/2008-09-02/img-000015.AVI: The file contains data of an unknown image type
KCrash: Application 'digikam' crashing...
sock_file=/home/gsking/.kde4/socket-blaster/kdeinit4__0
digikam: Fatal IO error: client killed

If I use only exiv2 on the file this is the error:
exiv2 img-000015.AVI
terminate called after throwing an instance of 'Exiv2::Error'
  what():  img-000015.AVI: The file contains data of an unknown image type
Aborted

This is the Krash log.:

Application: digiKam (digikam), signal SIGABRT
[Thread debugging using libthread_db enabled]
[New Thread 0xb4abf6c0 (LWP 15814)]
[New Thread 0xb1dfeb90 (LWP 15818)]
[New Thread 0xb31ccb90 (LWP 15815)]
[KCrash handler]
#6  0xb8015430 in __kernel_vsyscall ()
#7  0xb51ad880 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0xb51af248 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0xb53ab6f8 in __gnu_cxx::__verbose_terminate_handler ()
   from /usr/lib/libstdc++.so.6
#10 0xb53a95d5 in ?? () from /usr/lib/libstdc++.so.6
#11 0xb53a9612 in std::terminate () from /usr/lib/libstdc++.so.6
#12 0xb53a974a in __cxa_throw () from /usr/lib/libstdc++.so.6
#13 0xb4ba3a8d in Exiv2::ImageFactory::open ()
   from /usr/local/lib/libexiv2.so.5
#14 0xb5567989 in KExiv2Iface::KExiv2::load (this=0xb1dfde30, 
    filePath=@0xb15b674)
    at /home/gsking/programs/src/svn/digikam4/kdegraphics/libs/libkexiv2/libkexiv2/kexiv2.cpp:238
#15 0xb7c65eac in Digikam::DMetadata::load (this=0xb1dfde30, 
    filePath=@0xb15b674)
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/libs/dmetadata/dmetadata.cpp:76
#16 0xb7c65ff1 in DMetadata (this=0xb1dfde30, filePath=@0xb15b674)
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/libs/dmetadata/dmetadata.cpp:64
#17 0xb7cedf71 in Digikam::ThumbnailCreator::loadImagePreview (this=0x9e08ef8, 
    path=@0xb15b674)
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/libs/threadimageio/thumbnailcreator.cpp:290
#18 0xb7cee8f8 in Digikam::ThumbnailCreator::load (this=0x9e08ef8, 
    path=@0xb15b674)
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/libs/threadimageio/thumbnailcreator.cpp:181
#19 0xb7cf4f14 in Digikam::ThumbnailLoadingTask::execute (this=0xb15b668)
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/libs/threadimageio/thumbnailtask.cpp:136
#20 0xb7cdcb8f in Digikam::LoadSaveThread::run (this=0x9e04748)
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/libs/threadimageio/loadsavethread.cpp:132
#21 0xb65716ae in ?? () from /usr/lib/libQtCore.so.4
#22 0xb566950f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#23 0xb52637ee in clone () from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb4abf6c0 (LWP 15814)):
#0  0xb8015430 in __kernel_vsyscall ()
#1  0xb566d075 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb65726f2 in QWaitCondition::wait () from /usr/lib/libQtCore.so.4
#3  0xb6571853 in QThread::wait () from /usr/lib/libQtCore.so.4
#4  0xb7cdd310 in ~LoadSaveThread (this=0x9e04748)
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/libs/threadimageio/loadsavethread.cpp:80
#5  0xb7ce13ec in ~ManagedLoadSaveThread (this=0x9e04748)
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/libs/threadimageio/managedloadsavethread.cpp:70
#6  0xb7cf1ab0 in ~ThumbnailLoadThread (this=0x9e04748)
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/libs/threadimageio/thumbnailloadthread.cpp:107
#7  0xb7cf0577 in destroy ()
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/libs/threadimageio/thumbnailloadthread.cpp:89
#8  0xb7cf3271 in ~KCleanUpGlobalStatic (this=0xb7e68d48)
    at /usr/include/kglobal.h:67
#9  0xb51b0d69 in exit () from /lib/tls/i686/cmov/libc.so.6
#10 0xb5ac3d6b in ?? () from /usr/lib/libQtGui.so.4
#11 0xb76400da in KApplication::xioErrhandler () from /usr/lib/libkdeui.so.5
#12 0xb7640116 in ?? () from /usr/lib/libkdeui.so.5
#13 0xb62a8062 in _XIOError () from /usr/lib/libX11.so.6
#14 0xb62b0135 in ?? () from /usr/lib/libX11.so.6
#15 0xb62b0985 in _XEventsQueued () from /usr/lib/libX11.so.6
#16 0xb629890f in XEventsQueued () from /usr/lib/libX11.so.6
#17 0xb5afe11a in ?? () from /usr/lib/libQtGui.so.4
#18 0xb4e6a602 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#19 0xb4e6aa8a in ?? () from /usr/lib/libglib-2.0.so.0
#20 0xb4e6af61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#21 0xb668c497 in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#22 0xb5afdee5 in ?? () from /usr/lib/libQtGui.so.4
#23 0xb666052a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#24 0xb66606ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#25 0xb6662da5 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#26 0xb5a63767 in QApplication::exec () from /usr/lib/libQtGui.so.4
#27 0x082a2372 in main (argc=1, argv=0xbfb14dd4)
    at /home/gsking/programs/src/svn/digikam4/graphics/digikam/digikam/main.cpp:178
#0  0xb8015430 in __kernel_vsyscall ()
Comment 1 caulier.gilles 2008-11-03 14:33:22 UTC
Andreas,

What do you think about ?

Gilles
Comment 2 Andreas Huggel 2008-11-03 16:04:15 UTC
There is a 'catch' statement but it doesn't work, right?
I just stumbled upon something very similar here.

Geoff,
Can you try with exiv2 0.18-pre2 aka current svn revision minus this change:
http://dev.robotbattle.com/cgi-bin/viewvc.cgi/exiv2/trunk/src/error.hpp?r1=1645&r2=1646
I suspect that's where the problem was introduced (to make the Microsoft compiler happy)

Andreas
Comment 3 Geoff King 2008-11-03 17:13:12 UTC
Sure - I will try this evening. 
Comment 4 Andreas Huggel 2008-11-03 17:44:14 UTC
Thanks. I've checked in a change which hopefully fixes this. Please re-try with exiv2 rev. 1662; no editing required.

Andreas
Comment 5 Geoff King 2008-11-04 02:31:55 UTC
That seems to fix it.  Digikam does not crash and I get this message with only exiv2...

exiv2 img-000015.AVI
Exiv2 exception in print action for file img-000015.AVI:
img-000015.AVI: The file contains data of an unknown image type

Thanks, Geoff
Comment 6 caulier.gilles 2022-04-10 13:12:59 UTC
Fixed with the new support of ExifTool to read metadata in place of Exiv2 with video files.