damonlynch / rapid-photo-downloader

Rapid Photo Downloader is the leading photo and video downloader for the Linux desktop.
https://damonlynch.net/rapid
GNU General Public License v3.0
109 stars 29 forks source link

HEIC preview is broken #228

Open psychosis448 opened 6 days ago

psychosis448 commented 6 days ago

Hello,

I'm currently encountering some error while trying to get the previews for HEIC files working.

I got exiftool 12.84 installed, using rapid photo downloader 0.9.34

2024-06-27 22:20:11 DEBUG thumbnailextractor.py 665: Working on task load_heif_and_exif_directly for IMG_1289.HEIC
2024-06-27 22:20:11 ERROR thumbnailextractor.py 838: Exception working on file /tmp/rpd-tmp-00008120-001A05E83AD8201E_1/DCIM/101APPLE/IMG_1288.HEIC
2024-06-27 22:20:11 ERROR thumbnailextractor.py 839: Task: ExtractionTask.load_heif_and_exif_directly
2024-06-27 22:20:11 DEBUG thumbnaildisplay.py 958: Thumbnail was null: IMG_1288.HEIC
2024-06-27 22:20:11 ERROR thumbnailextractor.py 840: Processing tasks: {<ExtractionProcessing.resize: 1>}
2024-06-27 22:20:11 ERROR thumbnailextractor.py 841: Traceback:
Traceback (most recent call last):
  File "/nix/store/1fx2350i7rj866gh5fg33d3pqshyzkll-rapid-photo-downloader-0.9.34/lib/python3.11/site-packages/raphodo/thumbnailextractor.py", line 686, in process_files
    thumbnail, orientation = self.extract_thumbnail(
                             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/1fx2350i7rj866gh5fg33d3pqshyzkll-rapid-photo-downloader-0.9.34/lib/python3.11/site-packages/raphodo/thumbnailextractor.py", line 580, in extract_thumbnail
    thumbnail = load_heif(
                ^^^^^^^^^^
  File "/nix/store/1fx2350i7rj866gh5fg33d3pqshyzkll-rapid-photo-downloader-0.9.34/lib/python3.11/site-packages/raphodo/heif.py", line 85, in load_heif
    image = pyheif.read_heif(full_file_name)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/yz1sjm6pgf1qp17dfp38vcwqcjyq2m3j-python3.11-pyheif-0.7.1/lib/python3.11/site-packages/pyheif/reader.py", line 94, in read_heif
    return read(fp, apply_transformations=apply_transformations)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/yz1sjm6pgf1qp17dfp38vcwqcjyq2m3j-python3.11-pyheif-0.7.1/lib/python3.11/site-packages/pyheif/reader.py", line 103, in read
    return heif_file.load()
           ^^^^^^^^^^^^^^^^
  File "/nix/store/yz1sjm6pgf1qp17dfp38vcwqcjyq2m3j-python3.11-pyheif-0.7.1/lib/python3.11/site-packages/pyheif/reader.py", line 47, in load
    self.data, self.stride = _read_heif_image(self._heif_handle, self)
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/yz1sjm6pgf1qp17dfp38vcwqcjyq2m3j-python3.11-pyheif-0.7.1/lib/python3.11/site-packages/pyheif/reader.py", line 402, in _read_heif_image
    p_options.ignore_transformations = int(not heif_file.apply_transformations)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ffi.error: struct heif_decoding_options: wrong total size (cdef says 48, but C compiler says 72). fix it or use "...;" as the last field in the cdef for struct heif_decoding_options to make it flexible
2024-06-27 22:20:11 ERROR thumbnailextractor.py 838: Exception working on file /home/user/tmp/iphone/DCIM/100APPLE/IMG_0877.HEIC
2024-06-27 22:20:11 ERROR thumbnailextractor.py 839: Task: ExtractionTask.load_heif_and_exif_directly

If I can help anything tracking this done, just let me know :)

damonlynch commented 6 days ago

That's a bug in pyheif. It looks like the project needs new contributors or possibly a new maintainer.