Commit 1101cbe
committed
Add AVIF transform support
The main change is adding support for the mirroring (imir) and rotation (irot)
transformations. Additional changes include:
- Rename existing AvifItem → IsobmffItem since it isn't AVIF-specific
- Rename AvifImage → Mp4parseAvifImage (for consistency with the C API)
- Create AvifItem for more specific use cases
- Expose spatial_extents (i.e., size), image_rotation and image_mirror to C API
- Add newtypes for PropertyIndex and ItemId
- Store ipma with the nested structure it has in the file rather than
flattening it; this facilitates validation (especially of transform ordering)
- Simplify mp4parse_avif_get_image to make it safer and eliminate the need for
Mp4parseAvifImage to implement Default
- Add mp4parse_avif_get_image output to dump example
- Add AV1_AVIF_CORRUPT_IMAGES to skip bad upstream examples
(see AOMediaCodec/av1-avif#150)
- Various testing improvements
Note this removes clap code because it's preferable to add that support all
together and this change is already big enough.1 parent dd96773 commit 1101cbe
20 files changed
Lines changed: 615 additions & 230 deletions
File tree
- mp4parse_capi
- examples
- fuzz/fuzz_targets
- src
- mp4parse
- src
- tests
- corrupt
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
121 | 121 | | |
122 | 122 | | |
123 | 123 | | |
| 124 | + | |
124 | 125 | | |
125 | 126 | | |
126 | 127 | | |
| |||
0 commit comments