Canon CR3 raw support - your move

@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

Two groups of Security Investigators are now attacking Exiv2 v0.27.4 RC2. I have retired.

I was wondering if the next stable release of DT will have CR3 support. This is only a question. Please don’t respond by telling me if I want it to code it in myself. I don’t know how to code and I really appreciate the great work done by the DT developers. My small local contribution to DT is promoting and teaching it to my photography students. I just want to let them know if their CR3 files can be handled in the next major release of DT or if they will need to do a DNG conversion first. BTW, can anyone tell me if much is lost in converting a CR3 to DNG before going to DT?

The last missing piece is being worked on: Support for Canon CR3 raw files by cytrinox · Pull Request #271 · darktable-org/rawspeed · GitHub

Relax, thanks to @cytrinox, basically have working code now. I have already been able to edit some CR3 raw files from my Canon M50 with a special dev build. The code is going through technical review now.

Whether it makes it into the next stable release or not, I cannot say. There could be some challenges around packaging and availability of the required exiv2 setup in the linux distros (I think exiv2 team may be making an official release of 0.27.4 in the next week or so?). So, I guess darktable team will review where we are at closer to the freeze and make a decision then.

We can try and build a flatpak for Linux.

1 Like