https://bugs.kde.org/show_bug.cgi?id=406942

            Bug ID: 406942
           Summary: Thumbnails does not get saved for videofiles over
                    2^64b, mysql
           Product: digikam
           Version: 6.1.0
          Platform: Appimage
                OS: Linux
            Status: REPORTED
          Severity: critical
          Priority: NOR
         Component: Database-Thumbs
          Assignee: digikam-bugs-n...@kde.org
          Reporter: bugskdeorg.20.dimon3...@spamgourmet.com
  Target Milestone: ---

SUMMARY

Modern cameras can produce video files of extremely large size. Metadata /
thumbnails of which does not fit in MySQL columns.

STEPS TO REPRODUCE

Use MySQL. Sqlite is not tested, but theoretically is not affected.

1. Create a video file with a size larger than 2^32-1 bytes (take a bit more,
to be sure :)
2. Add it to Digicam collection
3. Let digikam scan the file and create a thumbnail of it.

OBSERVED RESULT

Thumbnail is created but it is recreated whenever you see the video file.
SQL Replace operation fails
Translation is kept open.

EXPECTED RESULT

Thumbnail is created only once, successfully stored into the database.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Ubuntu 19.04 x86_64 appimage
KDE Plasma Version: ?
KDE Frameworks Version: ?
Qt Version: ?

ADDITIONAL INFORMATION

MySQL 8.0.16

Debug log
> Digikam::DMetadata::loadUsingFFmpeg: Parse metadada with FFMpeg: 
> "/media/dimon3000/Documents/Dmitry/Pictures/Фото/2018/2018-03-09 
> Доха-Тайланд/GoPro/GP010224.MP4"
> Digikam::DMetadata::loadUsingFFmpeg: -- FFMpeg video stream metadata entries :
> Digikam::DMetadata::loadUsingFFmpeg: QMap(("creation_time", 
> "2018-03-20T16:38:14.000000")("encoder", "GoPro AVC encoder")("handler_name", 
> "\rGoPro AVC")("language", "eng"))
> Digikam::DMetadata::loadUsingFFmpeg: -----------------------------------------
> Digikam::DMetadata::loadUsingFFmpeg: -- FFMpeg audio stream metadata entries :
> Digikam::DMetadata::loadUsingFFmpeg: QMap(("creation_time", 
> "2018-03-20T16:38:14.000000")("handler_name", "\rGoPro AAC")("language", 
> "eng"))
> Digikam::DMetadata::loadUsingFFmpeg: -----------------------------------------
> Digikam::DMetadata::loadUsingFFmpeg: -- FFMpeg root container metadata 
> entries :
> Digikam::DMetadata::loadUsingFFmpeg: QMap(("compatible_brands", 
> "avc1isom")("creation_time", "2018-03-20T16:38:14.000000")("firmware", 
> "HD3.03.03.00")("major_brand", "avc1")("minor_version", "0"))
> Digikam::DMetadata::loadUsingFFmpeg: 
> ------------------------------------------
> Digikam::ThumbnailCreator::createThumbnail: Trying to load video preview with 
> FFmpeg
> Digikam::BdEngineBackendPrivate::debugOutputFailedQuery: Failure executing 
> query:
> "REPLACE INTO UniqueHashes (uniqueHash, fileSize, thumbId) VALUES (?,?,?);" 
> Error messages: "QMYSQL3: Unable to execute statement" "Out of range value 
> for column 'fileSize' at row 1" 1264 2 
> Bound values:  (QVariant(QString, "73930f5548eb6fbe08f123905a2e88c9"), 
> QVariant(qlonglong, 3854467646), QVariant(int, 183429))
> Digikam::DbEngineThreadData::~DbEngineThreadData: WARNING !!! Transaction 
> count is 18 when destroying database!!!


> > describe UniqueHashes;
> +------------+--------------+------+-----+---------+-------+
> | Field      | Type         | Null | Key | Default | Extra |
> +------------+--------------+------+-----+---------+-------+
> | uniqueHash | varchar(128) | YES  | MUL | NULL    |       |
> | fileSize   | int(11)      | YES  |     | NULL    |       |
> | thumbId    | int(11)      | YES  | MUL | NULL    |       |
> +------------+--------------+------+-----+---------+-------+
> 3 rows in set (0,00 sec)


Use "bigint unsigned" for storing file sizes in MySQL.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to