WeTransfer / format_parser

file metadata parsing, done cheap
https://rubygems.org/gems/format_parser
Other
62 stars 18 forks source link

[CORE-199] CR3 Support #222

Closed Kevin-McGonigle closed 1 year ago

Kevin-McGonigle commented 1 year ago

Add support for the Canon CR3 RAW image format, including parsing EXIF metadata from the CMT1 Canon Metadata atom.

CR3 uses the ISO base media file format with a moov box preceding the image data containing a couple of extra Canon-specific tags, so I've adapted the existing MOOVParser to handle it.

Kevin-McGonigle commented 1 year ago

LGTM overall but one of the new tests is still failing.

Just out of interest did you write the entire base encoder from scratch or did you use something for this?

Yeah, it's actually an existing test and an annoying one since it's only JRuby failing and only on the purposely invalid file that's being picked up in the glob.

Kind of a halfway-house: I wrote it from scratch based on the pseudocode in the standard here. Almost none of the atoms are of interest to us, but with it being a public repo I figured it'd be best to implement in full.

Re: @RubenWolff-wt

RubenWolff-wt commented 1 year ago

LGTM overall but one of the new tests is still failing. Just out of interest did you write the entire base encoder from scratch or did you use something for this?

Yeah, it's actually an existing test and an annoying one since it's only JRuby failing and only on the purposely invalid file that's being picked up in the glob.

Kind of a halfway-house: I wrote it from scratch based on the pseudocode in the standard here. Almost none of the atoms are of interest to us, but with it being a public repo I figured it'd be best to implement in full.

Re: @RubenWolff-wt

Noice. How did you find that doc? If it's not easily accessible from the link you added to the common decoder already I think it's worth adding it there as well to help any future devs (not that I expect many people to need to look into this in detail)