Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reading HEIC files does not work for iPhone images. #1928

Closed
adamsiembida opened this issue Sep 26, 2021 · 5 comments
Closed

Reading HEIC files does not work for iPhone images. #1928

adamsiembida opened this issue Sep 26, 2021 · 5 comments

Comments

@adamsiembida
Copy link

The release notes for v0.27.4 list HEIC support, and the manual lists read support. However, when I try to read an HEIC image from an iPhone, I get a "The file contains data of an unknown image type" error.

@kmilos
Copy link
Collaborator

kmilos commented Sep 27, 2021

It might be that your 0.27.4 binary package was built w/o BMFF support. You can check that by running exiv2 -Vv and looking for enable_bmff.

@adamsiembida
Copy link
Author

It might be that your 0.27.4 binary package was built w/o BMFF support. You can check that by running exiv2 -Vv and looking for enable_bmff.

You are right, the binary has enable_bmff=0. I wonder if the website should be more clear that the official binaries it is distributing have some of the stated features excluded.

@clanmills
Copy link
Collaborator

The pre-built binaries on exiv2.org have enable_bmff=1 for macOS, Cygwin/64, MinGW/msys2 and linux (ubuntu). I'm rather surprised that the MSVC build has enable_bmff=0. Clearly a little bug in the build.sh script which was updated for v0.27.4. I'll fix that when I build Exiv2 v0.27.5 RC3 later this week.

I have never investigated how platform package managers (apt, yum, pacman etc) build exiv2. The default for all 0.27 builds is -DEXIV2_ENABLE_BMFF=0. This will be changed to =1 for v1.00. Assuming that the package manager uses the defaults, the build will be -DEXIV2_ENABLE_BMFF=0. The default rationale is documented in the Wiki: https://github.com/Exiv2/exiv2/wiki/BMFF-Legals

@kmilos
Copy link
Collaborator

kmilos commented Sep 28, 2021

I have never investigated how platform package managers (apt, yum, pacman etc) build exiv2.

This is really up to each individual maintainer of the package recipe and the distribution/repository policies, availability of dependencies, etc. E.g. the jury is still out for Fedora packages...

Example recipes:

https://src.fedoraproject.org/rpms/exiv2/blob/rawhide/f/exiv2.spec#_77
https://github.com/archlinux/svntogit-packages/blob/7b446f5f3f8eeb25b9b2171a23cf93df4fac2221/trunk/PKGBUILD#L26
https://github.com/Homebrew/homebrew-core/blob/5589dd94fdb368438325471fb638d0a85bae37da/Formula/exiv2.rb#L30

@clanmills
Copy link
Collaborator

Thanks, @kmilos. When I think about it, we want the packages to use the defaults when building exiv2. So, -DEXIV2_ENABLE_BMFF=0 is correct. The message "unknown image type" isn't very helpful in this situation.

I want to avoid changing code when we plan to publish RC3 this week. It would have been better to have a new error "bmff not supported in this build". That's non-trivial as we would require sufficient bmff code compiled to detect the format.

I'm home from vacation and have fixed build.sh to set -DEXIV2_ENABLE_BMFF=1, so on track for RC3 on Friday.

This was referenced Sep 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants