Canon CR3 raw support - your move

An Exiv2 user is adding ISOBMFF support to their private copy of the code. I invited them to provide their code as a “contrib”, however they didn’t reply to my invitation.

I learnt about this because the user emailed to ask about the availability of the code discussed in the book. The location is documented in the book, of course. I believe he intends to use the code in the book to read CR3 files.

contrib/isobmff could provide a script such as integrate.sh/integrate.cmd to make using the contrib very easy. I can’t say if that will satisfy everybody, however I suspect Jens would accept that as a good way forward.

4 Likes

It looks like the ISOBMFF support is no longer the milestone for 0.27.4 so no CR3 support in 2021?

@KristijanZic In cleaning up for retirement, I released that issue from the v0.27.4 milestone. The code to read ISOBMFF (.cr3, .heic, .jp2 and .avif) is in the code in my book and tested using files from the raw.Pixls.us archive. It’s working well.

I haven’t investigated the effort necessary to port that code to Exiv2, however it’s modest. It can probably be up and running in a day. I’m looking forward to seeing somebody stepping forward to make that happen. I will of course help as required.

After discussion of the legal situation with Dave Houlder, our recommendation is that Exiv2 should join the Open Invention Network. Exiv2 requires a maintainer to manage and steer the project into the future. Once more, I look forward to seeing somebody volunteer and to assure them of my support.

4 Likes

@KristijanZic I didn’t say something that seems obvious to me and has not been plainly stated.

The research into the technology and legal situation concerning ISOBMFF (.cr3, .heic, .avif and .jp2) support for Exiv2 has been completed and documented. The way ahead to achieve this in 2021 is open. It’s up to the community to make it happen and I am happy to provide support for that effort.

I’d like to thank @1div0 for his help with testing the ISOBMFF code in my book.

3 Likes

@clanmills thanks for the tip :sweat_smile: :wink:

@1div0 you seem to be familiar with exiv2 and ISOBMFF code from the Robin’s book? :sweat_smile: :innocent:

@1div0 helped with the testing. In particular, he gave me access to his .avif files taken with a Pentax camera for which Exif.Image.Maker is Ricoh.

@1div0 did some great work on the code, however I didn’t accept his changes because, in the event of legal trouble, I don’t want to drag anybody else into the horrors of litigation. All the text and code in my book is my work, albeit influenced by many other folks.

I am not afraid of the legal situation concerning ISOBMFF and my book. I can’t imagine Canon, Apple, Pentax, or Ricoh taking legal action against a retired Engineer in England for publishing a book about reading unencrypted metadata from a file formatted using a public standard. They would have to prove loss. The book is a free download, so I have not profited.

There’s another point about this. To take legal action against open-source developers and users for reading data in their own files, is so “20th Century”. The world has moved on from those bad old days.

2 Likes

IANAL, but there is also yet another point concerning interoperability, i.e. having the right to use your data in other computer programs which is the whole point here.

Have a great holiday @clanmills and enjoy your retirement, it’s been a pleasure collaborating with you recently.

4 Likes

Oh, another matter that seems obvious to me, yet hasn’t been plainly stated is the following.

In the event of legal trouble, the action would be between Tech Giants. The plaintiff would likely somebody like Canon or Apple and the defendant would be somebody like IBM (owners of RedHat) or EQT (owners of Suse).

In this thread, I discussed the conditions under which I would accept a PR to provide support for ISOBMFF in Exiv2 Add support for ISOBMFF Files (AVIF, HEIF, CR3) · Issue #1229 · Exiv2/exiv2 · GitHub The conditions are:

  1. Nobody provides a strong reason to say STOP.
  2. The PR builds on all supported platforms and passes the existing test suite.
  3. The PR extends the test suite to test the newly supported formats.
  4. The PR has a build switch to enable/disable the feature.
  5. The PR does not require Exiv2 to call a library.
  6. The PR Includes appropriate documentation updates.
  7. The author of the PR agrees to support users and fix issues in the code for 2 years on both the 0.27-maintenance and master branches.

The next maintainer of Exiv2 doesn’t need to accept my conditions. However there are designed to minimize the risk of litigation. In particular the build switch is intended for the use by the Linux distros.

From my personal point of view, it seems bizarre that I can be sitting in my home office in England and be expected to:

  1. Research, develop and document the necessary C++ code.
  2. Solve an insoluable legal issue.

The other organisations discussed: The Linux Community, Apple, Canon, IBM, EQT have more resources and provided no assistance.

Presumably, the CEO at IBM gets daily briefings and of very high priority is: “What is Robin doing about ISOBMFF in Exiv2?”. IBM could be bankrupted by a huge legal challenge from Apple caused by my 300 lines of C++.


I’d like to thank @kmilos for contributing code to Exiv2 concerning Tiff-EP Support and to upgrade the code base to support DNG 1.5. I enjoyed working with you.

7 Likes

A short update. Alex Esseling has privately emailed and offered to get involved. Alex has bravely and honestly described his C++ skills as rusty. @1div0 has been working with me on the tvisitor.cpp code in my book.

I’ve asked Alex to set up a Zoom meeting with Exiv2 and darktable folks to discuss how we can pull together to get this done. I’ve offered to release Exiv2 v0.28.4 in spring (proposed GM 2021-04-30). From Exiv2, I’ll invite 4 people who have contributed in the last 3 months.

The book’s coming on well. I intend to turn up in Rennes in May 2021 with 40 copies printed at my expense in full colour. For many, the event of 2021 will be a Covid-19 injection. For darktable users, ISOBMFF support. And for me, the end of contributing to Exiv2.

6 Likes

Good to hear Robin!

For darktable users, ISOBMFF support.

And for RawTherapee users as well, as soon as we complete the move to use exiv2 :wink:

We have a horrible communications setup with this issue. There are different discussions taking place here, GitHub, Wire, private email. Can we discuss this here:

https://app.element.io/#/room/#exiv2-chat:matrix.org.

1 Like

Topic: Support for ISOBMFF Files (AVIF, HEIF, CR3)
Time: Jan 9, 2021 07:30 PM Amsterdam, Berlin, Rome, Stockholm, Vienna

Join Zoom Meeting

Meeting ID: 821 6888 5673
Passcode: L1B3Hz

2 Likes

This seems to be 10:30 AM PST.

2 Likes

Agenda for the Meeting:

Exiv2-ISOBMFF-2021-01-09.pdf (240.1 KB)

2 Likes

Project Plan:
https://github.com/Exiv2/exiv2/issues/1018#issuecomment-757979745

I’d like to thank Alex Esseling for his help last week to talk to everybody involved. He set up the meeting and made the slides.

I’m optimistic that good things will happen in 2021. darktable and RawTherapee will get code they have requested and the users with Canon cameras will get the tools they want. My book and retirement will be delayed, however maybe more engineers will contribute to Exiv2 to make this happen.

Having discussed the legal issues with very many people, I’ve concluded that there is no case to answer. Exiv2 implements code to read unencrypted metadata from files which are formatted to public standards. Several people have expressed caution and their concerns have been thoroughly examined. Other open source projects such as Python, ExifTool and ISOBMFF Explorer provide similar code without legal consequences.

Part of the plan for Exiv2 v0.27.4 is to investigate joining OIN which is a non-agression patent alliance and includes Canon. I believe we have a good project plan which will deliver success.

9 Likes

If I can help, let me know

Thanks @heckflosse I know you’re already up to your ears in other commitments. I’m hoping for “new blood”. I find metadata interesting and surprised that more folks don’t want to join the fun.

We did get a new volunteer on our chat server from Colombia last week. I invited him to talk with @1div0 and me on Saturday and he didn’t show. I’ll talk to him later this week.

1 Like

It’s true, that I’m up to my ears with RawTherapee stuff, but I often took the new blood way to contribute to other foss appliciactions (Filmulator, HdrMerge, LuminanceHdr, cimg, Siril). Why should I don’t contribute to exiv2 as well?

5 Likes

Well, those who have the heart may not have the skills or confidence to contribute.

2 Likes

Everybody is welcome to contribute to Exiv2. The remaining list of actions for Exiv2 v0.27.4 is modest. If you want to work on a topic, your contribution will be appreciated. v0.27.4 Milestone · GitHub

In the last few months, several new contributors have worked on the project: Alex, Christophe, David, Leo, Milos and Rosen have all done good work. I’m hope they, and others, will continue to contribute after my retirement. I’ve put a lot of effort into my book to explain how Exiv2 works.

While the core of Exiv2 is C++, there are many other tasks that require attention. Leo has used his scripting skills to rewrite some bash scripts in python, David has worked with me on the ISOBMFF legal situation and Alex organised the meeting with darktable.

Chapter 11 of my book deals with “Project Management” and discusses 24 major topics such as C++, build, test, documentation, user support and release engineering. There’s plenty to be done and everybody can find a place in the project from which to make a valuable contribution. IMaEA

The project has a chat server which is monitored by most of the contributors: https://matrix.to/#/#exiv2-chat:matrix.org

5 Likes