-
Notifications
You must be signed in to change notification settings - Fork 281
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
[WIP] Add ISO/IEC Base Media File Format #1458
Conversation
This pull request introduces 1 alert when merging 92469f4 into aa43be4 - view on LGTM.com new alerts:
|
This looks like a good start, Peter. Your code is causing the existing JP2 code in src/jp2image.cpp to be ignored and instead throws the error "The file contains data of an unknown image type" which causes every reference to that code by the test suite to fail. This is in the Image Factory and isn't very difficult to fix, so I'll fix this for you and get your PR to pass the test suite. The ImageFactory sequentially searches a table of image types. We have to be sure to call the jp2image.cpp "sniffer" before your nice new src/isobmff.cpp code. There's a bug in that table concerning jp2 which I've changed to 19 (in jp2image.cpp). Those const int things have been changed to an enum in 'master'. We have to endure the pain that Can you change isobmff.cpp/.hpp to be bmffimage.cpp/.hpp to match the other image handlers jp2image, jpegimage and so on. Once we have the "boiler plate" in place, we'll have to focus on readMetadata() and that involves porting the code from tvisitor class Jp2Image into exiv2. And then update the test suite and documentation README.md and man/man1/exiv2.1. We'll get there soon enough. |
This pull request introduces 1 alert when merging 460a802 into aa43be4 - view on LGTM.com new alerts:
|
…. Removed C++11 style code. Removed unused code.
…INGS_AS_ERRORS=On
Reason: clang/ubuntu fails saying "Package cmake is not available, but is referred to by another package.".
This pull request introduces 1 alert when merging c608148 into aa43be4 - view on LGTM.com new alerts:
|
Several comments, @1div0
733 rmills@rmillsmbp:~/gnu/github/exiv2/ISOBMFF/build $ bin/exiv2 -vV -g enable
exiv2 0.27.4.9
enable_video=0
enable_webready=0
enable_nls=0
734 rmills@rmillsmbp:~/gnu/github/exiv2/ISOBMFF/build $ Not only is this useful for inspection, the test harness is very likely to inspect it and skip tests when this bmff is not enabled. |
|
|
||
if (length == 0) return ; | ||
|
||
if (length == 1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible that this is missing something inside the curly braces?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@hassec This code is very much a "boiler plate" image handler. Although it recognises some file formats, it doesn't parse the file in readMetadata() to locate the Exif/IPTC/XMP/ICC data blocks. The code to do this is in tvisitor.cpp in my book and has to be ported here. I think the necessary code will be of the order of 500 lines.
Another matter is to implement writeMetadata() which serialises the in-memory metadata into blocks and updates the file. We also need to augment the test suite.
@1div0 I'm concerned that you haven't updated the PR for a few weeks. The project schedule for Code Complete is less than 3 weeks away on 2021-02-28. Are you confident of making the schedule or would you like me to get involved? #1018 (comment)
I'm going to close this. Work is proceeding here: #1475 |
@1div0 Can delete this. I think it's dead. |
Deleting now. |
These are the very first steps toward bringing support of the ISO/IEC Base Media File Format including AVIF, HEIF and CR3.
Please review.
Many thanks beforehand.