Bug 401645 - Digikam crashes on possibly damaged video-file
Summary: Digikam crashes on possibly damaged video-file
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Metadata-Video (other bugs)
Version First Reported In: 6.0.0
Platform: Appimage Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-12-02 10:26 UTC by Ernest Beinrohr
Modified: 2021-04-24 02:34 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ernest Beinrohr 2018-12-02 10:26:58 UTC
SUMMARY


STEPS TO REPRODUCE
1. start digikam 6.0.0 b2
2. let it scan a folder containg this video
3. crash once scanner reaches video-file

OBSERVED RESULT
crash

EXPECTED RESULT
ignore damaged file and continue scanning

SOFTWARE/OS VERSIONS
Linux/KDE Plasma:       Fedora 28
KDE Plasma Version:     
KDE Frameworks Version: 
Qt Version:             5.13.5-1.fc28.x86_64

ADDITIONAL INFORMATION
console output:

Digikam::MetaEngine::Private::printExiv2ExceptionError: Cannot load metadata from file   (Error # 11 :  /raid/fotky/_2_process/2011/2011-08-14 - autocopy/2011-08-13_12-33-53_raw.avi: The file contains data of an unknown image type
Digikam::DMetadata::loadUsingFFmpeg: Parse metadada with FFMpeg: "/raid/fotky/_2_process/2011/2011-08-14 - autocopy/2011-08-13_12-33-53_raw.avi"
/tmp/.mount_digikab9MDfR/AppRun: riadok 115: 25892 Chyba segmentácie      (bol uložený výpis pamäte) digikam $@


PS: The video file cannot be played with mpv nor vlc on my system. 700MB : https://drive.google.com/open?id=136a1Z8nPQZgpvM710J5jBJCsk4o65Z7D
PSS: I have quite many damaged video files in my folder. Unfortunately, digikam crashed after a long scanning time and I have to start all over after removing that file :(
Comment 1 caulier.gilles 2018-12-02 10:43:59 UTC
Perhaps we can wrap ffmpeg library call in video metadata wrapper with C++ exception handling. After all, this code run in separated thread, so we can certainly limit the crash to the thread by this way.

I recommend also to try to open this file with ffmpeg. Something like ffmpeg -i 'file' is used inside digiKam to get the metadata. If this command line crash, so, ffmpeg must be consolidated. If not, so there is a possible mechanism to back-port in digiKam to prevent this kind of crash.

Best

Gilles Caulier
Comment 2 caulier.gilles 2018-12-02 11:35:33 UTC
this is the result of ffmpeg parser :

[gilles@localhost Téléchargements]$ ffmpeg -i 2011-08-13_12-33-53_raw.avi 
ffmpeg version 3.3.8 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 5.5.0 (Mageia 5.5.0-1.mga6)
  configuration: --prefix=/usr --enable-shared --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include --disable-stripping --enable-postproc --enable-gpl --enable-pthreads --enable-libtheora --enable-libvorbis --disable-encoder=vorbis --enable-libvpx --enable-runtime-cpudetect --enable-libdc1394 --enable-libschroedinger --enable-librtmp --enable-libspeex --enable-libfreetype --enable-libnut --enable-libgsm --enable-libcelt --enable-libopus --enable-libopencv --enable-libopenjpeg --enable-libtwolame --enable-libxavs --enable-frei0r --enable-libmodplug --enable-libass --enable-gnutls --enable-libcdio --enable-libpulse --enable-libv4l2 --enable-avresample --enable-opencl --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libx264 --enable-libx265 --enable-libvo-amrwbenc --enable-libxvid
  libavutil      55. 58.100 / 55. 58.100
  libavcodec     57. 89.100 / 57. 89.100
  libavformat    57. 71.100 / 57. 71.100
  libavdevice    57.  6.100 / 57.  6.100
  libavfilter     6. 82.100 /  6. 82.100
  libavresample   3.  5.  0 /  3.  5.  0
  libswscale      4.  6.100 /  4.  6.100
  libswresample   2.  7.100 /  2.  7.100
  libpostproc    54.  5.100 / 54.  5.100
[avi @ 0x7bba40] Could not find codec parameters for stream 0 (Video: none (422P / 0x50323234), none, 1280x720, 362647 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, avi, from '2011-08-13_12-33-53_raw.avi':
  Metadata:
    encoder         : MEncoder SVN-1.rc4.0.r31086.3plf2010.1-4.4.3
  Duration: 00:00:17.00, start: 0.000000, bitrate: 361765 kb/s
    Stream #0:0: Video: none (422P / 0x50323234), none, 1280x720, 362647 kb/s, SAR 1:1 DAR 16:9, 24 fps, 24 tbr, 24 tbn, 24 tbc
At least one output file must be specified
 
==> no crash
Comment 3 caulier.gilles 2018-12-02 11:39:04 UTC
I think the problem is not reall relevant of ffmpeg lib :

digikam.database: Finishing took 0 ms
digikam.metaengine: Parse metadada with FFMpeg: "/mnt/data/photos/TESTS/2011-08-13_12-33-53_raw.avi"

Thread 5 "Digikam::ScanCo" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffc35ef700 (LWP 19737)]
0x00007ffff6122f38 in Digikam::DMetadata::loadUsingFFmpeg (this=0x7fffb80faf30, filePath=...) at /mnt/devel/GIT/6.x/core/libs/metadataengine/dmetadata/dmetadata_video.cpp:384
384                      QString::fromUtf8(avcodec_descriptor_get_by_name(cname)->long_name));
Missing separate debuginfos, use: debuginfo-install breeze-5.12.2-1.mga6.x86_64 kimageformats-5.42.0-2.mga6.x86_64 lib64alsa2-1.1.4.1-1.mga6.x86_64 lib64ass9-0.13.6-1.mga6.x86_64 lib64astro1-17.12.2-1.1.mga6.x86_64 lib64asyncns0-0.8-9.mga6.x86_64 lib64attica5-5.42.0-1.mga6.x86_64 lib64avcodec57-3.3.8-1.mga6.tainted.x86_64 lib64avfilter6-3.3.8-1.mga6.tainted.x86_64 lib64avformat57-3.3.8-1.mga6.tainted.x86_64 lib64avresample3-3.3.8-1.mga6.tainted.x86_64 lib64avutil55-3.3.8-1.mga6.tainted.x86_64 lib64blkid1-2.28.2-2.1.mga6.x86_64 lib64bsd0-0.8.3-1.mga6.x86_64 lib64bzip2_1-1.0.6-10.mga6.x86_64 lib64cdio-paranoia2-10.2.0.93.1-8.mga6.x86_64 lib64cdio16-0.94-1.1.mga6.x86_64 lib64celt0_2-0.11.3-6.mga6.x86_64 lib64dbus1_3-1.10.16-1.mga6.x86_64 lib64dbusmenu-qt5_2-0.9.3-1.20160218.1.mga6.x86_64 lib64dc1394_22-2.2.5-2.mga6.x86_64 lib64dri-drivers-17.3.9-1.mga6.x86_64 lib64drm2-2.4.91-1.1.mga6.x86_64 lib64drm_amdgpu1-2.4.91-1.1.mga6.x86_64 lib64drm_nouveau2-2.4.91-1.1.mga6.x86_64 lib64drm_radeon1-2.4.91-1.1.mga6.x86_64 lib64elfutils1-0.169-1.mga6.x86_64 lib64exif12-0.6.21-9.2.mga6.x86_64 lib64expat1-2.2.1-1.mga6.x86_64 lib64fam0-0.1.10-17.mga6.x86_64 lib64ffi6-3.2.1-5.mga6.x86_64 lib64flac8-1.3.2-1.1.mga6.x86_64 lib64fontconfig1-2.12.1-2.mga6.x86_64 lib64freetype6-2.7.1-2.2.mga6.tainted.x86_64 lib64fribidi0-0.19.7-3.mga6.x86_64 lib64gcrypt20-1.7.10-1.mga6.x86_64 lib64gio2.0_0-2.54.3-1.2.mga6.x86_64 lib64glapi0-17.3.9-1.mga6.x86_64 lib64glib2.0_0-2.54.3-1.2.mga6.x86_64 lib64gmp10-6.1.2-1.mga6.x86_64 lib64gnutls30-3.5.13-1.1.mga6.x86_64 lib64gpg-error0-1.24-1.mga6.x86_64 lib64gphoto2_6-2.5.14-1.mga6.x86_64 lib64gphoto2_port12-2.5.14-1.mga6.x86_64 lib64graphite2_3-1.3.10-1.1.mga6.x86_64 lib64gsm1-1.0.17-1.mga6.x86_64 lib64gstreamer-plugins-base1.0_0-1.10.4-1.mga6.x86_64 lib64gstreamer1.0_0-1.10.4-1.mga6.x86_64 lib64harfbuzz0-1.3.2-5.mga6.x86_64 lib64hyphen0-2.8.8-6.mga6.x86_64 lib64ice6-1.0.9-5.mga6.x86_64 lib64icu58-58.2-3.2.mga6.x86_64 lib64ieee1284_3-0.2.11-15.mga6.x86_64 lib64ilmbase12-2.2.0-5.mga6.x86_64 lib64ilmimf2_2_22-2.2.0-10.mga6.x86_64 lib64jack0-1.9.10-6.mga6.x86_64 lib64jasper1-1.900.23-5.1.mga6.x86_64 lib64jbig1-2.1-4.mga6.x86_64 lib64jpeg8-1.5.1-1.2.mga6.x86_64 lib64karchive5-5.42.0-1.mga6.x86_64 lib64kconfigCore5-5.42.0-1.mga6.x86_64 lib64kconfigGui5-5.42.0-1.mga6.x86_64 lib64kf5auth5-5.42.0-1.mga6.x86_64 lib64kf5bookmarks5-5.42.0-1.2.mga6.x86_64 lib64kf5codecs5-5.42.0-1.1.mga6.x86_64 lib64kf5completion5-5.42.0-2.2.mga6.x86_64 lib64kf5configwidgets5-5.42.0-1.1.mga6.x86_64 lib64kf5coreaddons5-5.42.0-1.mga6.x86_64 lib64kf5dbusaddons5-5.42.0-1.mga6.x86_64 lib64kf5globalaccel5-5.42.0-1.mga6.x86_64 lib64kf5guiaddons5-5.42.0-1.mga6.x86_64 lib64kf5i18n5-5.42.0-1.mga6.x86_64 lib64kf5iconthemes5-5.42.0-1.mga6.x86_64 lib64kf5jobwidgets5-5.42.0-1.2.mga6.x86_64 lib64kf5kiocore5-5.42.0-1.mga6.x86_64 lib64kf5kiofilewidgets5-5.42.0-1.mga6.x86_64 lib64kf5kiowidgets5-5.42.0-1.mga6.x86_64 lib64kf5notifications5-5.42.0-1.mga6.x86_64 lib64kf5notifyconfig5-5.42.0-1.2.mga6.x86_64 lib64kf5parts5-5.42.0-1.mga6.x86_64 lib64kf5service5-5.42.0-1.mga6.x86_64 lib64kf5solid5-5.42.0-1.mga6.x86_64 lib64kf5sonnetcore5-5.42.0-1.mga6.x86_64 lib64kf5sonnetui5-5.42.0-1.mga6.x86_64 lib64kf5style5-5.42.0-1.mga6.x86_64 lib64kf5textwidgets5-5.42.0-1.2.mga6.x86_64 lib64kf5threadweaver5-5.42.0-1.mga6.x86_64 lib64kf5wallet5-5.42.0-1.mga6.x86_64 lib64kf5wayland5-5.42.0-1.mga6.x86_64 lib64kf5webkit5-5.42.0-1.mga6.x86_64 lib64kf5widgetsaddons5-5.42.0-1.1.mga6.x86_64 lib64kf5windowsystem5-5.42.0-1.mga6.x86_64 lib64kf5xmlgui5-5.42.0-1.mga6.x86_64 lib64kitemviews5-5.42.0-1.2.mga6.x86_64 lib64lcms2_2-2.8-2.1.mga6.x86_64 lib64llvm3.9-3.9.1-6.mga6.x86_64 lib64lqr0-0.4.2-5.mga6.x86_64 lib64ltdl7-2.4.6-5.mga6.x86_64 lib64lzma5-5.2.3-1.mga6.x86_64 lib64marblewidget-qt5_28-17.12.2-1.1.mga6.x86_64 lib64mesagl1-17.3.9-1.mga6.x86_64 lib64mesaglu1-9.0.0-6.1.mga6.x86_64 lib64modplug1-0.8.9.0-1.mga6.x86_64 lib64mount1-2.28.2-2.1.mga6.x86_64 lib64mp3lame0-3.100-1.2.mga6.x86_64 lib64ncurses6-6.0-8.3.mga6.x86_64 lib64nut0-0.0.675-8.mga6.x86_64 lib64ogg0-1.3.2-4.mga6.x86_64 lib64openal1-1.17.2-4.mga6.x86_64 lib64opencl1-2.2.11-1.mga6.x86_64 lib64opencore-amr0-0.1.3-1.mga6.tainted.x86_64 lib64opencv_core2.4-2.4.12.3-5.mga6.x86_64 lib64opencv_imgproc2.4-2.4.12.3-5.mga6.x86_64 lib64openjpeg5-1.5.2-8.mga6.x86_64 lib64openssl1.0.0-1.0.2q-1.mga6.x86_64 lib64opus0-1.1.5-1.mga6.x86_64 lib64orc0.4_0-0.4.26-1.mga6.x86_64 lib64p11-kit0-0.23.2-2.mga6.x86_64 lib64pcre1-8.41-1.mga6.x86_64 lib64phonon4qt5_4-4.10.0-1.mga6.x86_64 lib64png16_16-1.6.35-1.mga6.x86_64 lib64postproc54-3.3.8-1.mga6.tainted.x86_64 lib64pulseaudio0-10.0-1.1.mga6.x86_64 lib64pulsecommon10.0-10.0-1.1.mga6.x86_64 lib64pulseglib20-10.0-1.1.mga6.x86_64 lib64qt5-database-plugin-sqlite-5.9.4-1.1.mga6.x86_64 lib64qt5concurrent5-5.9.4-1.1.mga6.x86_64 lib64qt5core5-5.9.4-1.1.mga6.x86_64 lib64qt5dbus5-5.9.4-1.1.mga6.x86_64 lib64qt5gui5-5.9.4-1.1.mga6.x86_64 lib64qt5labstemplates5-5.9.4-1.mga6.x86_64 lib64qt5network5-5.9.4-1.1.mga6.x86_64 lib64qt5opengl5-5.9.4-1.1.mga6.x86_64 lib64qt5positioning5-5.9.4-1.mga6.x86_64 lib64qt5printsupport5-5.9.4-1.1.mga6.x86_64 lib64qt5qml5-5.9.4-1.mga6.x86_64 lib64qt5quick5-5.9.4-1.mga6.x86_64 lib64qt5quicktemplates5-5.9.4-1.mga6.x86_64 lib64qt5sensors5-5.9.4-1.mga6.x86_64 lib64qt5sql5-5.9.4-1.1.mga6.x86_64 lib64qt5svg5-5.9.4-1.mga6.x86_64 lib64qt5webchannel5-5.9.4-1.mga6.x86_64 lib64qt5webkit5-5.212.0-1.alpha2.7.1.mga6.x86_64 lib64qt5webkitwidgets5-5.212.0-1.alpha2.7.1.mga6.x86_64 lib64qt5widgets5-5.9.4-1.1.mga6.x86_64 lib64qt5x11extras5-5.9.4-1.mga6.x86_64 lib64qt5xcbqpa5-5.9.4-1.1.mga6.x86_64 lib64qt5xml5-5.9.4-1.1.mga6.x86_64 lib64qt5xmlpatterns5-5.9.4-1.mga6.x86_64 lib64qtav1-1.12.0-1.mga6.x86_64 lib64qtavwidgets1-1.12.0-1.mga6.x86_64 lib64raw1394_11-2.1.2-1.mga6.x86_64 lib64rtmp1-2.4-0.git20160101.3.mga6.x86_64 lib64sane1-1.0.25-5.mga6.x86_64 lib64schroedinger1.0_0-1.0.11-8.mga6.x86_64 lib64sdl2.0_0-2.0.9-1.mga6.x86_64 lib64sm6-1.2.2-6.mga6.x86_64 lib64sndfile1-1.0.28-3.3.mga6.x86_64 lib64speex1-1.2-0.rc2.2.mga6.x86_64 lib64sqlite3_0-3.22.0-2.1.mga6.x86_64 lib64swresample2-3.3.8-1.mga6.tainted.x86_64 lib64swscaler4-3.3.8-1.mga6.tainted.x86_64 lib64systemd0-230-12.3.mga6.x86_64 lib64tasn1_6-4.13-1.mga6.x86_64 lib64theoradec1-1.1.1-11.mga6.x86_64 lib64theoraenc1-1.1.1-11.mga6.x86_64 lib64tiff5-4.0.9-1.8.mga6.x86_64 lib64twolame0-0.3.13-7.mga6.x86_64 lib64uchardet0-0.0.6-1.mga6.x86_64 lib64udev1-230-12.3.mga6.x86_64 lib64unistring2-0.9.7-1.mga6.x86_64 lib64usb1.0_0-1.0.21-1.mga6.x86_64 lib64uuid1-2.28.2-2.1.mga6.x86_64 lib64v4l0-1.12.5-1.mga6.x86_64 lib64va1-1.7.3-3.mga6.x86_64 lib64vdpau1-1.1.1-2.mga6.x86_64 lib64vo-amrwbenc0-0.1.3-2.mga6.tainted.x86_64 lib64vorbis0-1.3.5-2.4.mga6.x86_64 lib64vorbisenc2-1.3.5-2.4.mga6.x86_64 lib64vpx3-1.5.0-3.1.mga6.x86_64 lib64wayland-client0-1.14.0-1.3.mga6.x86_64 lib64webp6-0.5.2-2.mga6.x86_64 lib64wrap0-7.6-47.mga6.x86_64 lib64x11-xcb1-1.6.5-1.1.mga6.x86_64 lib64x11_6-1.6.5-1.1.mga6.x86_64 lib64x264_148-0.148-0.20170120.stable.5.mga6.tainted.x86_64 lib64x265_102-2.2-1.mga6.tainted.x86_64 lib64xau6-1.0.8-7.mga6.x86_64 lib64xavs1-0.1.55-8.mga6.x86_64 lib64xcb-dri2_0-1.12-2.mga6.x86_64 lib64xcb-dri3_0-1.12-2.mga6.x86_64 lib64xcb-glx0-1.12-2.mga6.x86_64 lib64xcb-icccm4-0.4.1-4.mga6.x86_64 lib64xcb-present0-1.12-2.mga6.x86_64 lib64xcb-randr0-1.12-2.mga6.x86_64 lib64xcb-render0-1.12-2.mga6.x86_64 lib64xcb-shape0-1.12-2.mga6.x86_64 lib64xcb-shm0-1.12-2.mga6.x86_64 lib64xcb-sync1-1.12-2.mga6.x86_64 lib64xcb-util-image0-0.4.0-2.mga6.x86_64 lib64xcb-util-keysyms1-0.4.0-3.mga6.x86_64 lib64xcb-util-renderutil0-0.3.9-4.mga6.x86_64 lib64xcb-util1-0.4.0-2.mga6.x86_64 lib64xcb-xfixes0-1.12-2.mga6.x86_64 lib64xcb-xinerama0-1.12-2.mga6.x86_64 lib64xcb-xkb1-1.12-2.mga6.x86_64 lib64xcb1-1.12-2.mga6.x86_64 lib64xcomposite1-0.4.4-8.mga6.x86_64 lib64xcursor1-1.1.14-6.2.mga6.x86_64 lib64xdamage1-1.1.4-8.mga6.x86_64 lib64xdmcp6-1.1.2-5.mga6.x86_64 lib64xext6-1.3.3-4.mga6.x86_64 lib64xfixes3-5.0.3-1.mga6.x86_64 lib64xi6-1.7.9-1.mga6.x86_64 lib64xkbcommon0-0.8.2-1.mga6.x86_64 lib64xml2_2-2.9.7-1.mga6.x86_64 lib64xrender1-0.9.10-1.mga6.x86_64 lib64xshmfence1-1.2-2.mga6.x86_64 lib64xslt1-1.1.29-6.mga6.x86_64 lib64xv1-1.0.11-1.mga6.x86_64 lib64xvidcore4-1.3.4-3.mga6.tainted.x86_64 lib64xxf86vm1-1.1.4-2.mga6.x86_64 lib64zlib1-1.2.11-4.1.mga6.x86_64 libgcc1-5.5.0-1.mga6.x86_64 libstdc++6-5.5.0-1.mga6.x86_64 plasma-integration-5.12.2-1.mga6.x86_64 qtbase5-common-5.9.4-1.1.mga6.x86_64 qtimageformats5-5.9.4-1.mga6.x86_64
(gdb) bt
#0  0x00007ffff6122f38 in Digikam::DMetadata::loadUsingFFmpeg(QString const&) (this=0x7fffb80faf30, filePath=...) at /mnt/devel/GIT/6.x/core/libs/metadataengine/dmetadata/dmetadata_video.cpp:384
#1  0x00007ffff613253f in Digikam::DMetadata::load(QString const&) (this=0x7fffb80faf30, filePath=...) at /mnt/devel/GIT/6.x/core/libs/metadataengine/dmetadata/dmetadata_fileio.cpp:71
#2  0x00007fffe7af5429 in Digikam::ItemScanner::loadFromDisk() (this=0x7fffc35ee838) at /mnt/devel/GIT/6.x/core/libs/database/item/scanner/itemscanner.cpp:128
#3  0x00007fffe7afbe69 in Digikam::ItemScanner::newFile(int) (this=0x7fffc35ee838, albumId=1030) at /mnt/devel/GIT/6.x/core/libs/database/item/scanner/itemscanner_database.cpp:106
#4  0x00007fffe7a2e34d in Digikam::CollectionScanner::scanNewFile(QFileInfo const&, int) (this=0x7fffc35eecd0, info=..., albumId=1030)
    at /mnt/devel/GIT/6.x/core/libs/database/collection/collectionscanner_scan.cpp:847
#5  0x00007fffe7a2d3b6 in Digikam::CollectionScanner::scanAlbum(Digikam::CollectionLocation const&, QString const&) (this=0x7fffc35eecd0, location=..., album=...)
    at /mnt/devel/GIT/6.x/core/libs/database/collection/collectionscanner_scan.cpp:655
#6  0x00007fffe7a2c106 in Digikam::CollectionScanner::scanAlbumRoot(Digikam::CollectionLocation const&) (this=0x7fffc35eecd0, location=...)
    at /mnt/devel/GIT/6.x/core/libs/database/collection/collectionscanner_scan.cpp:429
#7  0x00007fffe7a2a64f in Digikam::CollectionScanner::completeScan() (this=0x7fffc35eecd0) at /mnt/devel/GIT/6.x/core/libs/database/collection/collectionscanner_scan.cpp:87
#8  0x00007ffff72cd5e6 in Digikam::ScanController::run() (this=0x7ffff7ddaca0 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>)
    at /mnt/devel/GIT/6.x/core/libs/database/utils/scan/scancontroller.cpp:236
#9  0x00007fffe83e4eea in QThreadPrivate::start(void*) () at /usr/lib64/qt5/../libQt5Core.so.5
#10 0x00007ffff505966d in start_thread () at /usr/lib64/qt5/../libpthread.so.0
#11 0x00007fffe583ae0d in clone () at /usr/lib64/qt5/../libc.so.6
(gdb) 


... as the crash do not jump in-deep in ffmpeg lib as you can see...

Gilles Caulier
Comment 4 caulier.gilles 2018-12-02 11:44:04 UTC
I think that problem is simple in fact :

https://cgit.kde.org/digikam.git/tree/core/libs/metadataengine/dmetadata/dmetadata_video.cpp#n384

From this method we ask to ffmpeg to return the codec used in video file. Fffmpeg cannot found the relevant codec as we can see from the CLI debug trace. So the string pointer returned by ffmpeg must be null and we pass it to QString parser, which do not like it.

I think it miss a check of pointer validity...

Gilles Caulier
Comment 5 Maik Qualmann 2018-12-02 12:14:40 UTC
Git commit 762b186d8de774478af7a07ceb5118d98780cc3f by Maik Qualmann.
Committed on 02/12/2018 at 12:13.
Pushed by mqualmann into branch 'master'.

fix crash in FFmpeg parser and video thumbnail decoder

M  +15   -6    core/libs/metadataengine/dmetadata/dmetadata_video.cpp
M  +5    -1    core/libs/threadimageio/video/videodecoder.cpp
M  +6    -3    core/libs/threadimageio/video/videodecoder_p.cpp
M  +1    -1    core/libs/threadimageio/video/videodecoder_p.h

https://commits.kde.org/digikam/762b186d8de774478af7a07ceb5118d98780cc3f
Comment 6 Maik Qualmann 2018-12-02 12:17:53 UTC
We still have a crash trying to play the video with me QtAV, let's see if we can prevent it.

Maik
Comment 7 Maik Qualmann 2018-12-02 13:28:30 UTC
Git commit 3a66fae4563436501396bc6a12f49b6726dc1626 by Maik Qualmann.
Committed on 02/12/2018 at 13:27.
Pushed by mqualmann into branch 'master'.

fix possible crashes with damaged video files
FIXED-IN: 6.0.0

M  +2    -1    NEWS
M  +14   -0    core/libs/metadataengine/dmetadata/dmetadata_video.cpp
M  +14   -3    core/utilities/assistants/videoslideshow/player/mediaplayerview.cpp
M  +12   -2    core/utilities/slideshow/slidevideo.cpp

https://commits.kde.org/digikam/3a66fae4563436501396bc6a12f49b6726dc1626