├── .clang-format ├── .github └── ISSUE_TEMPLATE │ └── reporting-an-issue.md ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── check ├── scripts ├── aomrules.py ├── cov.sh ├── darwin.sh ├── reformat.sh ├── requirements.txt ├── sanitize.sh ├── uncrustify.cfg ├── version.sh └── wasm-fs-pre.js ├── src ├── app │ ├── cw.cpp │ ├── json.cpp │ ├── json.h │ ├── list_json.cpp │ ├── list_std.cpp │ ├── options.cpp │ ├── options.h │ ├── report_json.cpp │ └── report_std.cpp ├── core │ ├── bit_reader.h │ ├── box.h │ ├── box_reader.h │ ├── box_reader_impl.h │ ├── common_boxes.cpp │ ├── common_boxes.h │ ├── fourcc.h │ └── spec.h ├── specs │ ├── av1_hdr10plus │ │ └── av1_hdr10plus.cpp │ ├── av1_isobmff │ │ └── av1_isobmff.cpp │ ├── avif │ │ ├── avif.cpp │ │ ├── profiles.cpp │ │ └── utils.cpp │ ├── heif │ │ └── heif.cpp │ ├── isobmff │ │ └── isobmff.cpp │ └── miaf │ │ ├── audio.cpp │ │ ├── brands.cpp │ │ ├── colours.cpp │ │ ├── derivations.cpp │ │ ├── miaf.cpp │ │ ├── num_pixels.cpp │ │ └── profiles.cpp └── utils │ ├── av1_utils.cpp │ ├── av1_utils.h │ ├── isobmff_derivations.cpp │ ├── isobmff_derivations.h │ ├── isobmff_get_data.cpp │ ├── isobmff_get_data.h │ ├── isobmff_utils.cpp │ ├── spec_utils.cpp │ └── tools.cpp └── tests ├── aac.mp4 ├── aac.ref ├── av1hdr10plus ├── LICENSE ├── invalid_0_metadata.asm ├── invalid_0_metadata.ref ├── invalid_2_metadata.asm ├── invalid_2_metadata.ref ├── invalid_3_metadata.asm ├── invalid_3_metadata.ref ├── invalid_isobmff_av1M.asm ├── invalid_isobmff_av1M.ref ├── invalid_isobmff_hdr_obu_in_av1c.asm ├── invalid_isobmff_hdr_obu_in_av1c.ref ├── invalid_isobmff_too_small.asm ├── invalid_isobmff_too_small.ref ├── invalid_metadata_position_frame_header.asm ├── invalid_metadata_position_frame_header.ref ├── invalid_metadata_position_frame_inter.asm ├── invalid_metadata_position_frame_inter.ref ├── invalid_metadata_position_no_seqhdr.asm ├── invalid_metadata_position_no_seqhdr.ref ├── invalid_metadata_position_seqhdr.asm ├── invalid_metadata_position_seqhdr.ref ├── invalid_obu_incomplete.asm ├── invalid_obu_incomplete.ref ├── sparks_byte1_invalid.asm ├── sparks_byte1_invalid.ref ├── sparks_frame1.asm ├── sparks_frame1.ref ├── sparks_frame1_invalid_chroma_sample_position.asm ├── sparks_frame1_invalid_chroma_sample_position.ref ├── sparks_frame1_invalid_color_primaries.asm ├── sparks_frame1_invalid_color_primaries.ref ├── sparks_frame1_invalid_country_code.asm ├── sparks_frame1_invalid_country_code.ref ├── sparks_frame1_invalid_matrix_coefficients.asm ├── sparks_frame1_invalid_matrix_coefficients.ref ├── sparks_frame1_invalid_monochrome.asm ├── sparks_frame1_invalid_monochrome.ref ├── sparks_frame1_invalid_provider_code.asm ├── sparks_frame1_invalid_provider_code.ref ├── sparks_frame1_invalid_provider_oriented_code.asm ├── sparks_frame1_invalid_provider_oriented_code.ref ├── sparks_frame1_invalid_range.asm ├── sparks_frame1_invalid_range.ref ├── sparks_frame1_invalid_transfer_characteristics.asm ├── sparks_frame1_invalid_transfer_characteristics.ref ├── valid.asm ├── valid.ref ├── valid_isobmff.asm └── valid_isobmff.ref ├── av1isobmff ├── invalid-av1sampleentry-hdr.asm ├── invalid-av1sampleentry-hdr.ref ├── invalid-incorrectpasp.asm ├── invalid-incorrectpasp.ref ├── invalid-noaspectratio.asm ├── invalid-noaspectratio.ref ├── invalid-resolutionmismatch.asm ├── invalid-resolutionmismatch.ref ├── invalid_av1config_consistency.asm ├── invalid_av1config_consistency.ref ├── invalid_isobmff-sample-groups.asm ├── invalid_isobmff-sample-groups.ref ├── invalid_isobmff-static-metadata-2.asm ├── invalid_isobmff-static-metadata-2.ref ├── invalid_isobmff-static-metadata.asm ├── invalid_isobmff-static-metadata.ref ├── invalid_isobmff-sync.asm ├── invalid_isobmff-sync.ref ├── invalid_isobmff_clap.asm ├── invalid_isobmff_clap.ref ├── invalid_isobmff_intra_sample_depends_on.asm ├── invalid_isobmff_intra_sample_depends_on.ref ├── invalid_isobmff_is_leading.asm ├── invalid_isobmff_is_leading.ref ├── invalid_isobmff_no_compatible_brand.asm ├── invalid_isobmff_no_compatible_brand.ref ├── invalid_isobmff_obu_has_size_field_zero.asm ├── invalid_isobmff_obu_has_size_field_zero.ref ├── invalid_isobmff_temporal_delimiter.asm ├── invalid_isobmff_temporal_delimiter.ref ├── invalid_isobmff_two_seqhdr_config_obus.asm ├── invalid_isobmff_two_seqhdr_config_obus.ref ├── invalid_seqhdr_obu_position.asm ├── invalid_seqhdr_obu_position.ref ├── valid-aspectnotneeded.asm ├── valid-aspectnotneeded.ref ├── valid-av1sampleentry-hdr-configOBU.asm ├── valid-av1sampleentry-hdr-configOBU.ref ├── valid-av1sampleentry-hdr-sample.asm ├── valid-av1sampleentry-hdr-sample.ref ├── valid-av1sampleentry.asm ├── valid-av1sampleentry.ref ├── valid_isobmff-sample-groups.asm ├── valid_isobmff-sample-groups.ref ├── valid_isobmff-static-metadata.asm ├── valid_isobmff-static-metadata.ref ├── valid_isobmff-sync.asm ├── valid_isobmff-sync.ref ├── valid_isobmff.asm ├── valid_isobmff.ref ├── valid_isobmff_fragmented.asm ├── valid_isobmff_fragmented.ref ├── valid_isobmff_is_leading.asm ├── valid_isobmff_is_leading.ref ├── valid_isobmff_no_config_obu.asm └── valid_isobmff_no_config_obu.ref ├── avc.mp4 ├── avc.ref ├── avif ├── invalid-2seqhdrs.asm ├── invalid-2seqhdrs.ref ├── invalid-alpha.asm ├── invalid-alpha.ref ├── invalid-avis-pict.asm ├── invalid-avis-pict.ref ├── invalid-brand.asm ├── invalid-brand.ref ├── invalid-essential.asm ├── invalid-essential.ref ├── invalid-inconsistent-av1c-seqhdr.asm ├── invalid-inconsistent-av1c-seqhdr.ref ├── invalid-ipma.asm ├── invalid-ipma.ref ├── invalid-multiple-av1C.asm ├── invalid-multiple-av1C.ref ├── invalid-not-sync.asm ├── invalid-not-sync.ref ├── invalid-profile-advanced.asm ├── invalid-profile-advanced.ref ├── invalid-profile-baseline.asm ├── invalid-profile-baseline.ref ├── invalid-profile-track.asm ├── invalid-profile-track.ref ├── invalid-reduced-still.asm ├── invalid-reduced-still.ref ├── invalid-seqhdr-av1c.asm ├── invalid-seqhdr-av1c.ref ├── invalid-seqhdr-mdat-inconsistent.asm ├── invalid-seqhdr-mdat-inconsistent.ref ├── invalid-seqhdr-mdat-missing.asm ├── invalid-seqhdr-mdat-missing.ref ├── invalid-still.asm ├── invalid-still.ref ├── invalid-transformation-order-derivation.asm ├── invalid-transformation-order-derivation.ref ├── invalid-transformation-order-gpac.asm ├── invalid-transformation-order-gpac.ref ├── valid-64b-box-size-0-box-size.asm ├── valid-64b-box-size-0-box-size.ref ├── valid-profile-advanced.asm ├── valid-profile-advanced.ref ├── valid-profile-baseline.asm ├── valid-profile-baseline.ref ├── valid.asm └── valid.ref ├── heif.mp4 ├── heif.ref ├── heif ├── invalid-auxl-auxi.asm ├── invalid-auxl-auxi.ref ├── invalid-box-versions.asm ├── invalid-box-versions.ref ├── invalid-brand-msf1.asm ├── invalid-brand-msf1.ref ├── invalid-ccst-reserved.asm ├── invalid-ccst-reserved.ref ├── invalid-ccst-wrong-size.asm ├── invalid-ccst-wrong-size.ref ├── invalid-derivation-iden.asm ├── invalid-derivation-iden.ref ├── invalid-dimg-from-arity.asm ├── invalid-dimg-from-arity.ref ├── invalid-displayable-primary_item.asm ├── invalid-displayable-primary_item.ref ├── invalid-grid-version.asm ├── invalid-grid-version.ref ├── invalid-hdlr-not-pict.asm ├── invalid-hdlr-not-pict.ref ├── invalid-iovl-version.asm ├── invalid-iovl-version.ref ├── invalid-ispe-missing.asm ├── invalid-ispe-missing.ref ├── invalid-ispe-property-order.asm ├── invalid-ispe-property-order.ref ├── invalid-no-ftyp.asm ├── invalid-no-ftyp.ref ├── invalid-no-meta.asm ├── invalid-no-meta.ref ├── invalid-no-mif1.asm ├── invalid-no-mif1.ref ├── invalid-pitm-type.asm ├── invalid-pitm-type.ref ├── invalid-thmb.asm ├── invalid-thmb.ref ├── invalid-tkhd_transformations.asm ├── invalid-tkhd_transformations.ref ├── invalid-tkhd_transformations2.asm ├── invalid-tkhd_transformations2.ref ├── valid-J2K.asm ├── valid-J2K.ref ├── valid-auxl-auxi.asm ├── valid-auxl-auxi.ref ├── valid-brand-msf1.asm ├── valid-brand-msf1.ref ├── valid-derivation-iden.asm ├── valid-derivation-iden.ref ├── valid-dimg-from-arity.asm ├── valid-dimg-from-arity.ref ├── valid-displayable-primary_item.asm ├── valid-displayable-primary_item.ref ├── valid-grid-version.asm ├── valid-grid-version.ref ├── valid-iovl-version.asm ├── valid-iovl-version.ref ├── valid-multiple-extents.asm ├── valid-multiple-extents.ref ├── valid-thmb.asm ├── valid-thmb.ref ├── valid-tkhd_transformations.asm ├── valid-tkhd_transformations.ref ├── valid.asm └── valid.ref ├── isobmff ├── invalid-2-moovs.asm ├── invalid-2-moovs.ref ├── invalid-box-overflow.asm ├── invalid-box-overflow.ref ├── invalid-box-underflow.asm ├── invalid-box-underflow.ref ├── invalid-brand.asm ├── invalid-brand.ref ├── invalid-ftyp-postion.asm ├── invalid-ftyp-postion.ref ├── invalid-hdlr.asm ├── invalid-hdlr.ref ├── invalid-ipma-flags.asm ├── invalid-ipma-flags.ref ├── invalid-ipma-version.asm ├── invalid-ipma-version.ref ├── invalid-ipma.asm ├── invalid-ipma.ref ├── invalid-iref-dup.asm ├── invalid-iref-dup.ref ├── invalid-track-identifiers.asm ├── invalid-track-identifiers.ref ├── valid-box.asm ├── valid-box.ref ├── valid-track-identifiers.asm ├── valid-track-identifiers.ref ├── valid-zero-size.asm └── valid-zero-size.ref ├── miaf.ref ├── miaf ├── invalid-alpha-track-composition-times.asm ├── invalid-alpha-track-composition-times.ref ├── invalid-apple-transformation-order.asm ├── invalid-apple-transformation-order.ref ├── invalid-audio-aac.asm ├── invalid-audio-aac.ref ├── invalid-audio-level2.asm ├── invalid-audio-level2.ref ├── invalid-audio-raw.asm ├── invalid-audio-raw.ref ├── invalid-colours-av1-420.asm ├── invalid-colours-av1-420.ref ├── invalid-colours-av1-422.asm ├── invalid-colours-av1-422.ref ├── invalid-colours-avc-not-supported-avc.asm ├── invalid-colours-avc-not-supported-avc.ref ├── invalid-colours.asm ├── invalid-colours.ref ├── invalid-construction_mode_1.asm ├── invalid-construction_mode_1.ref ├── invalid-data-reference-index.asm ├── invalid-data-reference-index.ref ├── invalid-derivation-cyclic.asm ├── invalid-derivation-cyclic.ref ├── invalid-derivation-iden.asm ├── invalid-derivation-iden.ref ├── invalid-dref.asm ├── invalid-dref.ref ├── invalid-edts-2edits.asm ├── invalid-edts-2edits.ref ├── invalid-edts-mediarate.asm ├── invalid-edts-mediarate.ref ├── invalid-edts-repeat.asm ├── invalid-edts-repeat.ref ├── invalid-edts-sync-delta.asm ├── invalid-edts-sync-delta.ref ├── invalid-empty-meta.asm ├── invalid-empty-meta.ref ├── invalid-exif.asm ├── invalid-exif.ref ├── invalid-ftyp-mif1-only.asm ├── invalid-ftyp-mif1-only.ref ├── invalid-grid-dimensions.asm ├── invalid-grid-dimensions.ref ├── invalid-hdlr-not-first-in-meta.asm ├── invalid-hdlr-not-first-in-meta.ref ├── invalid-hdlr-not-pict.asm ├── invalid-hdlr-not-pict.ref ├── invalid-ipco.asm ├── invalid-ipco.ref ├── invalid-ispe-missing.asm ├── invalid-ispe-missing.ref ├── invalid-meta-infe-protected.asm ├── invalid-meta-infe-protected.ref ├── invalid-meta-ipro.asm ├── invalid-meta-ipro.ref ├── invalid-meta-xml-bxml.asm ├── invalid-meta-xml-bxml.ref ├── invalid-multiple-tracks-duration.asm ├── invalid-multiple-tracks-duration.ref ├── invalid-no-ftyp.asm ├── invalid-no-ftyp.ref ├── invalid-no-hdlr-in-meta.asm ├── invalid-no-hdlr-in-meta.ref ├── invalid-no-meta.asm ├── invalid-no-meta.ref ├── invalid-num-pixels.asm ├── invalid-num-pixels.ref ├── invalid-pixi-displayable.asm ├── invalid-pixi-displayable.ref ├── invalid-pixi-missing.asm ├── invalid-pixi-missing.ref ├── invalid-primary-item.asm ├── invalid-primary-item.ref ├── invalid-tkhd_transformations.asm ├── invalid-tkhd_transformations.ref ├── invalid-tkhd_transformations2.asm ├── invalid-tkhd_transformations2.ref ├── invalid-transformation-max-derivation-order-gpac.asm ├── invalid-transformation-max-derivation-order-gpac.ref ├── invalid-transformation-nested-grid-gpac.asm ├── invalid-transformation-nested-grid-gpac.ref ├── invalid-transformation-order-gpac.asm ├── invalid-transformation-order-gpac.ref ├── invalid-xmp.asm ├── invalid-xmp.ref ├── valid-alpha-track-composition-times.asm ├── valid-alpha-track-composition-times.ref ├── valid-audio-aac.asm ├── valid-audio-aac.ref ├── valid-audio-twos.asm ├── valid-audio-twos.ref ├── valid-clli-mdcv.asm ├── valid-clli-mdcv.ref ├── valid-colours-av1-420.asm ├── valid-colours-av1-420.ref ├── valid-colours-av1-422.asm ├── valid-colours-av1-422.ref ├── valid-colours-av1-444.asm ├── valid-colours-av1-444.ref ├── valid-colours-hevc-420.asm ├── valid-colours-hevc-420.ref ├── valid-colours-hevc-422.asm ├── valid-colours-hevc-422.ref ├── valid-colours-hevc-444.asm ├── valid-colours-hevc-444.ref ├── valid-colours-hevc-monochrome.asm ├── valid-colours-hevc-monochrome.ref ├── valid-construction_mode_1.asm ├── valid-construction_mode_1.ref ├── valid-derivation-iden.asm ├── valid-derivation-iden.ref ├── valid-edts.asm ├── valid-edts.ref ├── valid-exif.asm ├── valid-exif.ref ├── valid-extra-brands.asm ├── valid-extra-brands.ref ├── valid-extra-free-boxes.asm ├── valid-extra-free-boxes.ref ├── valid-grid-dimensions.asm ├── valid-grid-dimensions.ref ├── valid-infe-unprotected.asm ├── valid-infe-unprotected.ref ├── valid-minimal.asm ├── valid-minimal.ref ├── valid-multiple-tracks-duration.asm ├── valid-multiple-tracks-duration.ref ├── valid-num-pixels.asm ├── valid-num-pixels.ref ├── valid-primary-item.asm ├── valid-primary-item.ref ├── valid-tkhd_transformations.asm ├── valid-tkhd_transformations.ref ├── valid-transformation-max-derivation-order-gpac.asm ├── valid-transformation-max-derivation-order-gpac.ref ├── valid-transformation-order-apple.asm ├── valid-transformation-order-apple.ref ├── valid-transformation-order-gpac.asm ├── valid-transformation-order-gpac.ref ├── valid-unknown-box.asm ├── valid-unknown-box.ref ├── valid-xmp.asm └── valid-xmp.ref ├── no_file_extension.ref └── run /.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: WebKit 2 | UseTab: Never 3 | ColumnLimit: 120 4 | Language: Cpp 5 | DisableFormat: false 6 | IndentWidth: 2 7 | AlignAfterOpenBracket: AlwaysBreak 8 | AllowAllParametersOfDeclarationOnNextLine: false 9 | AllowShortFunctionsOnASingleLine: InlineOnly 10 | AlwaysBreakTemplateDeclarations: Yes 11 | BinPackParameters: true 12 | BreakBeforeBinaryOperators: None 13 | BreakBeforeBraces: Linux 14 | BraceWrapping: 15 | AfterNamespace: true 16 | AfterControlStatement: true 17 | BeforeLambdaBody: false 18 | SplitEmptyFunction: false 19 | CompactNamespaces: true 20 | ContinuationIndentWidth: 2 21 | SpaceBeforeCpp11BracedList: false 22 | DerivePointerAlignment: false 23 | FixNamespaceComments: false 24 | IncludeBlocks: Regroup 25 | IncludeIsMainRegex: '$' 26 | IndentCaseLabels: false 27 | KeepEmptyLinesAtTheStartOfBlocks: true 28 | MaxEmptyLinesToKeep: 1 29 | NamespaceIndentation: None 30 | PointerAlignment: Right 31 | SortIncludes: true 32 | SpaceAfterTemplateKeyword: false 33 | SpaceBeforeParens: false 34 | SpaceInEmptyBlock: false 35 | IncludeCategories: 36 | - Regex: '^.*\/.*$' 37 | Priority: 1000 38 | - Regex: '^\<.*\>$' 39 | Priority: 1001 40 | - Regex: '.*' 41 | Priority: 2000 42 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/reporting-an-issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Reporting an issue 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the issue** 11 | A clear and concise description of what the bug is. Provide the exact spec reference, including version or date of publication. If the spec is not officially published, indicate so and acknowledge that CW's master branch is intended for published specs. Search for another branch that main contain code to support to-be-published specifications 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. CW version. Don't forget to check the versions of the specs that this version of CW supports (may vary across branches). 16 | 2. Bitstream that does not behave as expected. 17 | 3. Command-line. 18 | 4. Copy of the issue output. 19 | 20 | **Detailed analysis** 21 | It can be: a) simply a rule is missing; b) a more involved explanation linking statements from different paragraphs from different specs. 22 | 23 | In all cases, provide the exact spec text (preferably copy/paste in the issue and provide exact section reference) that should be implemented. That text should use normative statements "shall"/"should"/"must"/"require" ...). Note that if the specification text does not use normative statements, it is unlikely that CW will be modified. Reach out to the standard organization first if that is the case (and provide any reference to that conversation, if public). 24 | 25 | **Potential patch** 26 | Let us know about how you would solve the issue. 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /bin 2 | /bin-san 3 | /bin-cov 4 | /cov-html 5 | /tags 6 | *.swp 7 | .DS_Store 8 | **/venv/ 9 | .vscode/ 10 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2019-2025 Motion Spell / GPAC Licensing / Abstract 2 | All rights reserved. 3 | Authors: Romain Bouqueau, Sebastien Alaiwan, Erik Zandvliet, Deniz Uğur 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * Neither the name of the copyright holder nor the 13 | names of its contributors may be used to endorse or promote products 14 | derived from this software without specific prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /check: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | export BIN=${BIN-bin} 5 | 6 | if [ $(uname -s) == "Darwin" ]; then 7 | CORES=$(sysctl -n hw.logicalcpu) 8 | CXX=scripts/darwin.sh 9 | else 10 | CORES=$(nproc) 11 | fi 12 | 13 | ./scripts/reformat.sh 14 | if [ -z ${CXX+x} ]; then 15 | make -j$CORES 16 | else 17 | CXX=$CXX make -j$CORES 18 | fi 19 | 20 | ./tests/run $BIN 21 | 22 | lines=$(find $BIN -name "*.lines" | xargs cat | awk '{s+=$1} END {printf "%d\n", (s/1000)}') 23 | echo "compilation mass: $lines kloc" 24 | -------------------------------------------------------------------------------- /scripts/cov.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Helper script to generate a coverage report for the full test suite. 3 | # Usage: ./cov.sh 4 | # The result is at: bin-cov/html/index.html 5 | set -euo pipefail 6 | rm -rf bin-cov 7 | readonly scriptDir=$(dirname $(readlink -f $0)) 8 | 9 | # Build instrumented version 10 | export BIN=bin-cov 11 | export CXXFLAGS=--coverage 12 | export LDFLAGS=--coverage 13 | make -j`nproc` 14 | 15 | $scriptDir/../tests/run $BIN 16 | 17 | # Generate coverage report 18 | find $BIN -path "*/unittests/*.gcda" -delete 19 | lcov --capture -d $BIN -o $BIN/profile-full.txt 20 | lcov --remove $BIN/profile-full.txt \ 21 | --ignore-errors unused \ 22 | '/usr/include/*' \ 23 | '/usr/lib/*' \ 24 | '*/extra/*' \ 25 | -o $BIN/profile.txt 26 | 27 | genhtml -o cov-html $BIN/profile.txt 28 | 29 | # free disk space 30 | rm -rf $BIN 31 | 32 | echo "Coverage report is available in cov-html/index.html" 33 | -------------------------------------------------------------------------------- /scripts/darwin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -eu 3 | 4 | params=() 5 | for p in "$@" ; do 6 | case $p in 7 | -Wl,-gc-sections) 8 | ;; 9 | -Xlinker) 10 | ;; 11 | -s) 12 | ;; 13 | *) 14 | params+=("$p") 15 | ;; 16 | esac 17 | done 18 | 19 | "/usr/bin/g++" "${params[@]}" 20 | 21 | -------------------------------------------------------------------------------- /scripts/reformat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Reformatting..." 4 | find src -name "*.cpp" -or -name "*.h" | xargs -L1 clang-format -i 5 | -------------------------------------------------------------------------------- /scripts/requirements.txt: -------------------------------------------------------------------------------- 1 | beautifulsoup4==4.12.2 2 | lxml==4.9.2 3 | soupsieve==2.4.1 4 | -------------------------------------------------------------------------------- /scripts/sanitize.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Helper script to run an instrumented version 3 | # of the unit tests. 4 | # Usage: ./scripts/sanitize.sh 5 | set -euo pipefail 6 | readonly scriptDir=$(dirname $(readlink -f $0)) 7 | 8 | # Build instrumented version 9 | export BIN=bin-san 10 | export DEBUG=1 11 | 12 | export CXXFLAGS=-fsanitize=address,undefined 13 | export LDFLAGS=-fsanitize=address,undefined 14 | make -j`nproc` 15 | 16 | export ASAN_OPTIONS=halt_on_error=1 17 | export UBSAN_OPTIONS=halt_on_error=1 18 | $scriptDir/../tests/run $BIN 19 | 20 | -------------------------------------------------------------------------------- /scripts/version.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | readonly TAG=`git describe --tags --abbrev=0 2> /dev/null || echo "UNKNOWN"` 5 | readonly VERSION=`(git describe --tags --long 2> /dev/null || echo "UNKNOWN") | sed "s/^$TAG-//"` 6 | readonly BRANCH=`git rev-parse --abbrev-ref HEAD 2> /dev/null || echo "UNKNOWN"` 7 | echo "const char* g_version = \"$TAG-$BRANCH-rev$VERSION\";" 8 | 9 | -------------------------------------------------------------------------------- /scripts/wasm-fs-pre.js: -------------------------------------------------------------------------------- 1 | var Module = { 2 | 'print': function(text) { 3 | document.getElementById("compliance_report").innerHTML += text + "
"; 4 | }, 5 | 'printErr': function(text) { document.getElementById("compliance_tool_errors").innerHTML += text + "
"; } 6 | }; 7 | -------------------------------------------------------------------------------- /src/app/json.cpp: -------------------------------------------------------------------------------- 1 | #include "json.h" 2 | 3 | #include // setw, setfill 4 | #include 5 | 6 | namespace Json 7 | { 8 | void insertSpace(int indent) 9 | { 10 | static auto const space = " "; 11 | 12 | for(int i = 0; i < indent; ++i) 13 | std::cout << space; 14 | } 15 | 16 | std::string escape(const std::string &s) 17 | { 18 | std::ostringstream o; 19 | 20 | for(auto c = s.cbegin(); c != s.cend(); ++c) { 21 | if(*c == '"' || *c == '\\' || ('\x00' <= *c && *c <= '\x1f')) 22 | o << "\\u" << std::hex << std::setw(4) << std::setfill('0') << static_cast(*c); 23 | else 24 | o << *c; 25 | } 26 | 27 | return o.str(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/app/list_json.cpp: -------------------------------------------------------------------------------- 1 | #include "core/spec.h" 2 | 3 | #include "json.h" 4 | 5 | SpecDesc const *specFind(const char *name); 6 | 7 | namespace 8 | { 9 | std::unique_ptr printDesc(const SpecDesc *spec) 10 | { 11 | auto o = std::make_unique(); 12 | o->content.push_back(std::make_unique("specification_name", spec->name)); 13 | o->content.push_back(std::make_unique("detail", spec->caption)); 14 | 15 | auto dependencies = std::make_unique("dependencies"); 16 | for(auto d : spec->dependencies) 17 | dependencies->content.push_back(std::make_unique(d)); 18 | 19 | return o; 20 | } 21 | } 22 | 23 | void printSpecDescriptionJson(std::vector &specs) 24 | { 25 | Json::Object root; 26 | for(auto spec : specs) 27 | root.content.push_back(printDesc(spec)); 28 | root.serialize(0); 29 | } 30 | 31 | void specListRulesJson(const SpecDesc *spec) 32 | { 33 | auto root = printDesc(spec); 34 | auto rules = std::make_unique("rules"); 35 | int ruleIdx = 0; 36 | for(auto &r : spec->rules) { 37 | auto o = std::make_unique(); 38 | o->content.push_back(std::make_unique("rule_index", std::to_string(ruleIdx))); 39 | o->content.push_back(std::make_unique("description", r.print())); 40 | rules->content.push_back(std::move(o)); 41 | ruleIdx++; 42 | } 43 | root->content.push_back(std::move(rules)); 44 | root->serialize(0); 45 | } 46 | -------------------------------------------------------------------------------- /src/app/list_std.cpp: -------------------------------------------------------------------------------- 1 | #include "core/spec.h" 2 | 3 | SpecDesc const *specFind(const char *name); 4 | 5 | void printSpecDescriptionStd(const SpecDesc *spec) 6 | { 7 | fprintf(stdout, "================================================================================\n"); 8 | fprintf(stdout, "Specification name: %s\n", spec->name); 9 | fprintf(stdout, " detail: %s\n", spec->caption); 10 | fprintf(stdout, " depends on:"); 11 | 12 | if(spec->dependencies.empty()) { 13 | fprintf(stdout, " none.\n"); 14 | } else { 15 | for(auto d : spec->dependencies) 16 | fprintf(stdout, " \"%s\"", d); 17 | 18 | fprintf(stdout, " specifications.\n"); 19 | } 20 | 21 | fprintf(stdout, "================================================================================\n\n"); 22 | } 23 | 24 | void specListRulesStd(const SpecDesc *spec) 25 | { 26 | fprintf(stdout, "////////////////////// Beginning of \"%s\" specification.\n\n", spec->name); 27 | printSpecDescriptionStd(spec); 28 | 29 | int ruleIdx = 0; 30 | 31 | for(auto &r : spec->rules) { 32 | fprintf(stdout, "[%s] Rule #%04d: %s\n\n", spec->name, ruleIdx, r.print().c_str()); 33 | ruleIdx++; 34 | } 35 | 36 | fprintf(stdout, "///////////////////////// End of \"%s\" specification.\n\n", spec->name); 37 | 38 | for(auto dep : spec->dependencies) 39 | specListRulesStd(specFind(dep)); 40 | 41 | fflush(stdout); 42 | } 43 | -------------------------------------------------------------------------------- /src/app/options.cpp: -------------------------------------------------------------------------------- 1 | #include "options.h" 2 | 3 | std::vector OptionHandler::parse(int argc, const char *argv[]) 4 | { 5 | std::vector remaining; 6 | 7 | ArgQueue args; 8 | for(int i = 1; i < argc; ++i) // skip argv[0] 9 | args.push(argv[i]); 10 | 11 | while(!args.empty()) { 12 | auto word = args.front(); 13 | args.pop(); 14 | 15 | if(word.substr(0, 1) != "-") { 16 | remaining.push_back(word); 17 | continue; 18 | } 19 | 20 | AbstractOption *opt = nullptr; 21 | 22 | for(auto &o : m_Options) { 23 | if(word == o->shortName || word == o->longName) { 24 | opt = o.get(); 25 | break; 26 | } 27 | } 28 | 29 | if(!opt) { 30 | fprintf(stderr, "Unknown option: \"%s\"\n", word.c_str()); 31 | exit(1); 32 | } 33 | 34 | opt->parse(args); 35 | } 36 | 37 | return remaining; 38 | } 39 | 40 | void OptionHandler::printHelp(FILE *f) 41 | { 42 | fprintf(f, "\nUsage:\n"); 43 | for(auto &o : m_Options) { 44 | auto s = o->shortName + ", " + o->longName; 45 | while(s.size() < 40) 46 | s += " "; 47 | fprintf(f, " %s%s\n", s.c_str(), o->desc.c_str()); 48 | } 49 | fprintf(f, "\n"); 50 | } 51 | -------------------------------------------------------------------------------- /src/app/options.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | typedef std::queue ArgQueue; 9 | 10 | static inline std::string safePop(ArgQueue &args) 11 | { 12 | if(args.empty()) { 13 | fprintf(stderr, "Unexpected end of command line while parsing argument\n"); 14 | exit(1); 15 | } 16 | 17 | auto val = args.front(); 18 | args.pop(); 19 | return val; 20 | } 21 | 22 | static inline void parseValue(bool &var, ArgQueue &) 23 | { 24 | var = true; 25 | } 26 | 27 | static inline void parseValue(std::string &var, ArgQueue &args) 28 | { 29 | var = safePop(args); 30 | } 31 | 32 | template 33 | static inline void parseValue(std::vector &var, ArgQueue &args) 34 | { 35 | Element e{}; 36 | parseValue(e, args); 37 | var.push_back(e); 38 | } 39 | 40 | struct OptionHandler { 41 | void addFlag(std::string shortName, std::string longName, bool *pVar, std::string desc = "") 42 | { 43 | add(shortName, longName, pVar, desc); 44 | } 45 | 46 | template 47 | void add(std::string shortName, std::string longName, T *pVar, std::string desc = "") 48 | { 49 | auto opt = std::make_unique>(); 50 | opt->pVar = pVar; 51 | opt->shortName = "-" + shortName; 52 | opt->longName = "--" + longName; 53 | opt->desc = desc; 54 | m_Options.push_back(std::move(opt)); 55 | } 56 | 57 | std::vector parse(int argc, const char *argv[]); 58 | void printHelp(FILE *); 59 | 60 | private: 61 | struct AbstractOption { 62 | virtual ~AbstractOption() = default; 63 | std::string shortName, longName; 64 | std::string desc; 65 | virtual void parse(ArgQueue &args) = 0; 66 | }; 67 | 68 | std::vector> m_Options; 69 | 70 | template 71 | struct TypedOption : AbstractOption { 72 | T *pVar; 73 | void parse(ArgQueue &args) { parseValue(*pVar, args); } 74 | }; 75 | }; 76 | -------------------------------------------------------------------------------- /src/core/bit_reader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | void ENSURE(bool cond, const char *format, ...); 6 | 7 | struct BitReader { 8 | uint8_t *src; 9 | int size = 0; 10 | 11 | int64_t u(int n) 12 | { 13 | uint64_t r = 0; 14 | 15 | for(int i = 0; i < n; ++i) 16 | r = (r << 1) | bit(); 17 | 18 | return r; 19 | } 20 | 21 | BitReader sub(int byteCount) 22 | { 23 | ENSURE((m_pos % 8) == 0, "BitReader::sub(): not byte-aligned"); 24 | ENSURE(byteCount <= size, "BitReader::sub(): overflow asking %d bytes with %d available", byteCount, size - m_pos); 25 | 26 | auto sub = BitReader{ src + m_pos / 8, byteCount }; 27 | m_pos += byteCount * 8; 28 | return sub; 29 | } 30 | 31 | int bit() 32 | { 33 | const int byteOffset = m_pos / 8; 34 | const int bitOffset = m_pos % 8; 35 | 36 | ENSURE(byteOffset < size, "BitReader::bit() overflow"); 37 | 38 | m_pos++; 39 | return (src[byteOffset] >> (7 - bitOffset)) & 1; 40 | } 41 | 42 | bool empty() const { return m_pos / 8 >= size; } 43 | 44 | int m_pos = 0; 45 | }; 46 | -------------------------------------------------------------------------------- /src/core/box.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | struct Symbol { 7 | const char *name; 8 | int64_t value; 9 | int numBits; 10 | }; 11 | 12 | struct Box { 13 | uint32_t fourcc; 14 | uint64_t size; 15 | 16 | uint8_t *original; 17 | uint64_t position; 18 | 19 | std::vector children; 20 | std::vector syms; 21 | }; 22 | -------------------------------------------------------------------------------- /src/core/box_reader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | struct IReader { 6 | virtual bool empty() = 0; 7 | virtual int64_t &sym(const char *name, int bits) = 0; 8 | virtual void box() = 0; 9 | }; 10 | 11 | using ParseBoxFunc = void(IReader *br); 12 | -------------------------------------------------------------------------------- /src/core/common_boxes.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "box_reader.h" 4 | 5 | ParseBoxFunc *getParseFunction(uint32_t fourcc); 6 | -------------------------------------------------------------------------------- /src/core/fourcc.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | template 7 | constexpr uint32_t FOURCC(const char (&tab)[N]) 8 | { 9 | static_assert(N == 4 + 1, "FOURCC input size must be 4 + 1"); 10 | uint32_t r = 0; 11 | 12 | for(int i = 0; i < 4; ++i) { 13 | r <<= 8; 14 | r |= tab[i]; 15 | } 16 | 17 | return r; 18 | } 19 | 20 | std::string toString(uint32_t fourcc); 21 | -------------------------------------------------------------------------------- /src/utils/isobmff_derivations.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "core/box.h" 4 | #include "core/fourcc.h" 5 | 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | struct DerivationGraph { 12 | // returns false on cyclic 13 | bool visit( 14 | uint32_t itemIdSrc, std::list &visited, std::function &)> onError, 15 | std::function &)> onTerminal); 16 | std::string display(const std::list &visited); 17 | 18 | struct Connection { 19 | uint32_t src, dst; 20 | }; 21 | 22 | std::vector connections; 23 | std::map itemTypes; 24 | }; 25 | 26 | DerivationGraph buildDerivationGraph(Box const &root); 27 | 28 | struct Resolution { 29 | int width = -1, height = -1; 30 | }; 31 | 32 | struct Derivations { 33 | std::map resolutions; 34 | std::map itemRes; 35 | std::map /*thmb/dimg to_item_ID*/> itemRefs; 36 | }; 37 | 38 | Derivations getDerivationsInfo(Box const &root, uint32_t irefTypeFourcc); 39 | -------------------------------------------------------------------------------- /src/utils/isobmff_get_data.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "core/box_reader_impl.h" 4 | 5 | #include "av1_utils.h" 6 | 7 | struct sampleFlags { 8 | uint32_t reserved : 4; 9 | uint32_t isLeading : 2; 10 | uint32_t sampleDependsOn : 2; 11 | uint32_t sampleIsDependedOn : 2; 12 | uint32_t sampleHasRedundancy : 2; 13 | uint32_t samplePaddingValue : 3; 14 | uint32_t sampleIsDifferenceSample : 1; 15 | uint32_t sampleDegradationPriority : 16; 16 | }; 17 | 18 | struct sampleValues { 19 | int64_t offset; 20 | uint64_t size; 21 | uint8_t *position; 22 | sampleFlags flags = {}; 23 | std::string pretty() const; 24 | BitReader getSample() const; 25 | }; 26 | 27 | std::vector getData(const Box &root, IReport *out, uint64_t trackId); 28 | -------------------------------------------------------------------------------- /src/utils/tools.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include // exit 6 | #include 7 | #include 8 | 9 | void ENSURE(bool cond, const char *format, ...) 10 | { 11 | if(!cond) { 12 | va_list args; 13 | va_start(args, format); 14 | std::vector error_message(1024); // Allocate a reasonably large buffer 15 | vsnprintf(error_message.data(), error_message.size(), format, args); 16 | va_end(args); 17 | fprintf(stderr, "Error: %s\n", error_message.data()); 18 | throw std::runtime_error(std::string(error_message.data())); 19 | } 20 | } 21 | 22 | std::vector loadFile(const char *path) 23 | { 24 | auto fp = fopen(path, "rb"); 25 | ENSURE(fp, "Can't open '%s' for reading", path); 26 | 27 | std::vector buf(100 * 1024 * 1024); 28 | auto const size = fread(buf.data(), 1, buf.size(), fp); 29 | fclose(fp); 30 | buf.resize(size); 31 | buf.shrink_to_fit(); 32 | return buf; 33 | } 34 | 35 | void probeIsobmff(uint8_t *data, size_t size) 36 | { 37 | ENSURE(size >= 8, "ISOBMFF probing: not enough bytes (%d bytes available). Aborting.", (int)size); 38 | 39 | uint64_t boxSize = 0; 40 | 41 | for(auto i = 0; i < 4; ++i) 42 | boxSize = (boxSize << 8) + data[i]; 43 | 44 | if(boxSize == 1) { 45 | boxSize = 0; 46 | 47 | for(auto i = 0; i < 4; ++i) 48 | boxSize = (boxSize << 8) + data[i]; 49 | } 50 | 51 | ENSURE(boxSize == 0 || boxSize >= 8, "ISOBMFF probing: first box size too small (%d bytes). Aborting.", (int)boxSize); 52 | ENSURE( 53 | boxSize <= size, "ISOBMFF probing: first box size too big (%d bytes when file size is %d bytes). Aborting.", 54 | (int)boxSize, size); 55 | 56 | for(auto i = 4; i < 7; ++i) 57 | ENSURE( 58 | isalpha(data[i]) || isdigit(data[i]) || isspace(data[i]), 59 | "Box type is neither an alphanumerics nor a space (box[%d]=\"%c\" (%d)). Aborting.", i, (char)data[i], 60 | (int)data[i]); 61 | } 62 | -------------------------------------------------------------------------------- /tests/aac.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gpac/ComplianceWarden/203f95e9f0e6ee126264dd75004a13a63c4b84de/tests/aac.mp4 -------------------------------------------------------------------------------- /tests/aac.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | ======================================== 9 | [isobmff] No errors. 10 | ======================================== 11 | 12 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/LICENSE: -------------------------------------------------------------------------------- 1 | The Sparks content was provided and is copyrighted by Netflix Inc. 2 | It is licensed under the Creative Commons Attribution 4.0 International Public License (). 3 | You can find the original at https://opencontent.netflix.com/. -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_0_metadata.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24)) 2 | 3 | _start: 4 | ; obu(0) 5 | db 0x12 ; forbidden(1) obu_type(4) obu_extension_flag(1) obu_has_size_field(1) obu_reserved_1bit(1) 6 | db 0x00 ; leb128_byte(8) 7 | ; obu(0) 8 | db 0x0A ; forbidden(1) obu_type(4) obu_extension_flag(1) obu_has_size_field(1) obu_reserved_1bit(1) 9 | db 0x0F ; leb128_byte(8) 10 | ; seqhdr(0) 11 | db 0x00, 0x00, 0x00 ; seq_profile(3) still_picture(1) reduced_still_picture_header(1) timing_info_present_flag(1) initial_display_delay_present_flag(1) operating_points_cnt_minus_1(5) operating_point_idc[i])(12) 12 | db 0x6A, 0xEF, 0xFF, 0xE1, 0xBD ; seq_level_idx[i](5) seq_tier[i](1) frame_width_bits_minus_1(4) frame_height_bits_minus_1(4) max_frame_width_minus_1(12) max_frame_height_minus_1(12) frame_id_numbers_present_flag(1) use_128x128_superblock(1) 13 | db 0xFF ; enable_filter_intra(1) enable_intra_edge_filter(1) enable_interintra_compound(1) enable_masked_compound(1) enable_warped_motion(1) enable_dual_filter(1) enable_order_hint(1) enable_jnt_comp(1) 14 | db 0xF9 ; enable_ref_frame_mvs(1) seq_choose_screen_content_tools(1) seq_choose_integer_mv(1) order_hint_bits_minus_1(3) enable_superres(1) enable_cdef(1) 15 | db 0xD0, 0x91, 0x00, 0x94 ; enable_restoration(1) high_bitdepth(1) mono_chrome(1) color_description_present_flag(1) color_primaries(8) transfer_characteristics(8) matrix_coefficients(8) color_range(1) chroma_sample_position(2) separate_uv_delta_q(1) 16 | db 0x40 ; film_grain_params_present(1) ('@') bits(7) ('@') 17 | ; /seqhdr(0) 18 | ; obu(0) 19 | db 0x32 ; forbidden(1) ('2') obu_type(4) ('2') obu_extension_flag(1) ('2') obu_has_size_field(1) ('2') obu_reserved_1bit(1) ('2') 20 | db 0x01 ; leb128_byte(8) 21 | db 0x80 ; show_existing_frame(1) frame_to_show_map_idx(3) bits(4) 22 | _end: 23 | 24 | ; vim: syntax=nasm 25 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_0_metadata.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #9] Error: There shall be one and only one HDR10+ metadata OBU. Found 0 in Temporal Unit #0 (Frame #0) 10 | 11 | ======================================== 12 | [av1hdr10plus] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #9] id: assert-45af0987 18 | Section 2.2.2 19 | for each frame with show_frame = 1 or show_existing_frame = 1, there shall be one 20 | and only one HDR10+ metadata OBU preceding the Frame Header OBU for this frame and 21 | located after the last OBU of the previous frame (if any) or after the 22 | Sequence Header OBU (if any) or after the start of the temporal unit 23 | 24 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_2_metadata.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #9] Error: There shall be one and only one HDR10+ metadata OBU. Found 2 in Temporal Unit #0 (Frame #0) 10 | [av1hdr10plus][Rule #11] Error: For non-layered streams, there is only one HDR10+ Metadata OBU per temporal unit, found 2 11 | 12 | ======================================== 13 | [av1hdr10plus] 2 error(s), 0 warning(s). 14 | ======================================== 15 | 16 | ===== Involved rules descriptions: 17 | 18 | [av1hdr10plus][Rule #9] id: assert-45af0987 19 | Section 2.2.2 20 | for each frame with show_frame = 1 or show_existing_frame = 1, there shall be one 21 | and only one HDR10+ metadata OBU preceding the Frame Header OBU for this frame and 22 | located after the last OBU of the previous frame (if any) or after the 23 | Sequence Header OBU (if any) or after the start of the temporal unit 24 | 25 | [av1hdr10plus][Rule #11] id: assert-797eb19e 26 | Section 2.2.2 27 | For non-layered streams, there is only one HDR10+ Metadata OBU per temporal unit 28 | 29 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_3_metadata.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #10] Error: HDR10+ Metadata OBUs are not provided when show_frame = 0 10 | [av1hdr10plus][Rule #11] Error: For non-layered streams, there is only one HDR10+ Metadata OBU per temporal unit, found 2 11 | 12 | ======================================== 13 | [av1hdr10plus] 2 error(s), 0 warning(s). 14 | ======================================== 15 | 16 | ===== Involved rules descriptions: 17 | 18 | [av1hdr10plus][Rule #10] id: assert-a575dc54 19 | Section 2.2.2 20 | HDR10+ Metadata OBUs are not provided when show_frame = 0 21 | 22 | [av1hdr10plus][Rule #11] id: assert-797eb19e 23 | Section 2.2.2 24 | For non-layered streams, there is only one HDR10+ Metadata OBU per temporal unit 25 | 26 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_isobmff_too_small.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24)) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | dd "ftyp" 6 | db 0x69, 0x73, 0x6F, 0x6D ; major_brand(32) ('isom') 7 | db 0x00, 0x00, 0x02, 0x00 ; minor_version(32) 8 | db 0x69, 0x73, 0x6F, 0x6D ; compatible_brand(32) ('isom') 9 | db 0x61, 0x76, 0x30, 0x31 ; compatible_brand(32) ('av01') 10 | db 0x69, 0x73, 0x6F, 0x32 ; compatible_brand(32) ('iso2') 11 | db 0x6D, 0x70, 0x34, 0x31 ; compatible_brand(32) ('mp41') 12 | ftyp_end: 13 | free_start: 14 | dd BE(free_end - free_start) 15 | dd "free" 16 | free_end: 17 | mdat_start: 18 | dd BE(mdat_end - mdat_start) 19 | dd "mdat" 20 | mdat_end: 21 | 22 | ; vim: syntax=nasm 23 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_isobmff_too_small.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #0] Error: Not enough bytes(=0) to contain an OBU 10 | 11 | ======================================== 12 | [av1hdr10plus] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #0] Section 2.1 18 | An AV1 stream shall contain at least one OBU 19 | 20 | +--------------------------------------+ 21 | | av1isobmff validation | 22 | +--------------------------------------+ 23 | 24 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 25 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 26 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 27 | 28 | [av1isobmff][Rule #2] Error: No Av1SampleEntry found 29 | 30 | ======================================== 31 | [av1isobmff] 1 error(s), 0 warning(s). 32 | ======================================== 33 | 34 | ===== Involved rules descriptions: 35 | 36 | [av1isobmff][Rule #2] id: assert-bd1c6212 37 | Section 2.1 38 | It SHALL contain at least one track using an AV1SampleEntry 39 | 40 | +--------------------------------------+ 41 | | isobmff validation | 42 | +--------------------------------------+ 43 | 44 | Specification description: ISO Base Media File Format 45 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 46 | 47 | ======================================== 48 | [isobmff] No errors. 49 | ======================================== 50 | 51 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_metadata_position_frame_header.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #9] Error: The HDR10+ metadata OBU shall be located after the last OBU of the previous frame if any (Temporal Unit #0, Frame #0) 10 | 11 | ======================================== 12 | [av1hdr10plus] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #9] id: assert-45af0987 18 | Section 2.2.2 19 | for each frame with show_frame = 1 or show_existing_frame = 1, there shall be one 20 | and only one HDR10+ metadata OBU preceding the Frame Header OBU for this frame and 21 | located after the last OBU of the previous frame (if any) or after the 22 | Sequence Header OBU (if any) or after the start of the temporal unit 23 | 24 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_metadata_position_frame_inter.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #9] Error: The HDR10+ metadata OBU shall be located after the last OBU of the previous frame if any (Temporal Unit #0, Frame #0) 10 | 11 | ======================================== 12 | [av1hdr10plus] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #9] id: assert-45af0987 18 | Section 2.2.2 19 | for each frame with show_frame = 1 or show_existing_frame = 1, there shall be one 20 | and only one HDR10+ metadata OBU preceding the Frame Header OBU for this frame and 21 | located after the last OBU of the previous frame (if any) or after the 22 | Sequence Header OBU (if any) or after the start of the temporal unit 23 | 24 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_metadata_position_no_seqhdr.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24)) 2 | 3 | _start: 4 | ; obu(0) 5 | db 0x12 ; forbidden(1) obu_type(4) obu_extension_flag(1) obu_has_size_field(1) obu_reserved_1bit(1) 6 | db 0x00 ; leb128_byte(8) 7 | ; obu(0) 8 | db 0x2A ; forbidden(1) ('*') obu_type(4) ('*') obu_extension_flag(1) ('*') obu_has_size_field(1) ('*') obu_reserved_1bit(1) ('*') 9 | db 0x06 ; leb128_byte(8) 10 | db 0x04 ; leb128_byte(8) 11 | db 0xB5 ; itu_t_t35_country_code(8) 12 | db 0x00, 0x3C ; itu_t_t35_terminal_provider_code(16) 13 | db 0x00, 0x01 ; itu_t_t35_terminal_provider_oriented_code(16) 14 | ; obu(0) 15 | db 0x32 ; forbidden(1) ('2') obu_type(4) ('2') obu_extension_flag(1) ('2') obu_has_size_field(1) ('2') obu_reserved_1bit(1) ('2') 16 | db 0x01 ; leb128_byte(8) 17 | db 0x80 ; show_existing_frame(1) frame_to_show_map_idx(3) bits(4) 18 | _end: 19 | 20 | ; vim: syntax=nasm 21 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_metadata_position_no_seqhdr.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | ======================================== 10 | [av1hdr10plus] No errors. 11 | ======================================== 12 | 13 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/invalid_metadata_position_seqhdr.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #9] Error: The HDR10+ metadata OBU shall be located after the Sequence Header if any (Temporal Unit #0, Frame #0) 10 | 11 | ======================================== 12 | [av1hdr10plus] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #9] id: assert-45af0987 18 | Section 2.2.2 19 | for each frame with show_frame = 1 or show_existing_frame = 1, there shall be one 20 | and only one HDR10+ metadata OBU preceding the Frame Header OBU for this frame and 21 | located after the last OBU of the previous frame (if any) or after the 22 | Sequence Header OBU (if any) or after the start of the temporal unit 23 | 24 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/sparks_byte1_invalid.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24)) 2 | 3 | db 0x12 4 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/sparks_byte1_invalid.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #0] Error: Not enough bytes(=1) to contain an OBU 10 | 11 | ======================================== 12 | [av1hdr10plus] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #0] Section 2.1 18 | An AV1 stream shall contain at least one OBU 19 | 20 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/sparks_frame1.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | ======================================== 10 | [av1hdr10plus] No errors. 11 | ======================================== 12 | 13 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/sparks_frame1_invalid_chroma_sample_position.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #8] Warning: chroma_sample_position should be set as 2, found 0 10 | 11 | ======================================== 12 | [av1hdr10plus] 0 error(s), 1 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #8] id: assert-5b56cde2 18 | Section 2.2.1 19 | chroma_sample_position should be set to 2 20 | 21 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/sparks_frame1_invalid_color_primaries.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #2] Error: color_primaries shall be set as 9 ([BT-2020]), found 1 10 | 11 | ======================================== 12 | [av1hdr10plus] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #2] id: assert-2d0cc174 18 | Section 2.2.1 19 | color_primaries = 9 20 | 21 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/sparks_frame1_invalid_matrix_coefficients.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #4] Error: matrix_coefficients shall be set as 9 ([BT-2020]), found 1 10 | 11 | ======================================== 12 | [av1hdr10plus] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #4] id: assert-19a71368 18 | Section 2.2.1 19 | matrix_coefficients = 9 20 | 21 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/sparks_frame1_invalid_monochrome.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #7] Warning: mono_chrome should be set as 0, found 1 10 | 11 | ======================================== 12 | [av1hdr10plus] 0 error(s), 1 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #7] id: assert-4217c4a7 18 | Section 2.2.1 19 | mono_chrome should be set to 0 20 | 21 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/sparks_frame1_invalid_range.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #5] Warning: color_range should be set as 0, found 1 10 | 11 | ======================================== 12 | [av1hdr10plus] 0 error(s), 1 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #5] id: assert-02249407 18 | Section 2.2.1 19 | color_range should be set to 0 20 | 21 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/sparks_frame1_invalid_transfer_characteristics.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | [av1hdr10plus][Rule #3] Error: transfer_characteristics shall be set as 16 ([SMPTE-ST-2084] / [BT-2100]), found 1 10 | 11 | ======================================== 12 | [av1hdr10plus] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1hdr10plus][Rule #3] id: assert-0931ac52 18 | Section 2.2.1 19 | transfer_characteristics = 16 20 | 21 | -------------------------------------------------------------------------------- /tests/av1hdr10plus/valid.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1hdr10plus validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HDR10+ AV1 Metadata Handling Specification, 7 December 2022 6 | https://github.com/AOMediaCodec/av1-hdr10plus/commit/63bacd21bc5f75ea6094fc11a03f0e743366fbdf 7 | https://aomediacodec.github.io/av1-hdr10plus/ 8 | 9 | ======================================== 10 | [av1hdr10plus] No errors. 11 | ======================================== 12 | 13 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid-incorrectpasp.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #5] Error: Invalid pasp: found 90601x40000 instead of 73x72 10 | 11 | ======================================== 12 | [av1isobmff] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #5] id: assert-54ae6192 18 | Section 2.2.4 19 | Additionally, if MaxRenderWidth and MaxRenderHeight values do not equal respectively 20 | the max_frame_width_minus_1 + 1 and max_frame_height_minus_1 + 1 values of the 21 | Sequence Header OBU, a PixelAspectRatioBox box SHALL be present in the sample entry 22 | 23 | +--------------------------------------+ 24 | | isobmff validation | 25 | +--------------------------------------+ 26 | 27 | Specification description: ISO Base Media File Format 28 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 29 | 30 | ======================================== 31 | [isobmff] No errors. 32 | ======================================== 33 | 34 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid-noaspectratio.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #5] Error: 0 'pasp' boxes found, when 1 is expected 10 | 11 | ======================================== 12 | [av1isobmff] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #5] id: assert-54ae6192 18 | Section 2.2.4 19 | Additionally, if MaxRenderWidth and MaxRenderHeight values do not equal respectively 20 | the max_frame_width_minus_1 + 1 and max_frame_height_minus_1 + 1 values of the 21 | Sequence Header OBU, a PixelAspectRatioBox box SHALL be present in the sample entry 22 | 23 | +--------------------------------------+ 24 | | isobmff validation | 25 | +--------------------------------------+ 26 | 27 | Specification description: ISO Base Media File Format 28 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 29 | 30 | ======================================== 31 | [isobmff] No errors. 32 | ======================================== 33 | 34 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid-resolutionmismatch.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #3] Error: Width and height of the VisualSampleEntry (4224x2176) don't match with the Sequence Header OBU (4096x2160) 10 | 11 | ======================================== 12 | [av1isobmff] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #3] id: assert-4708372f 18 | Section 2.2.4 19 | The width and height fields of the VisualSampleEntry SHALL equal the values of max_frame_width_minus_1 + 1 and max_frame_height_minus_1 + 1 of the Sequence Header OBU applying to the samples associated with this sample entry. 20 | 21 | +--------------------------------------+ 22 | | isobmff validation | 23 | +--------------------------------------+ 24 | 25 | Specification description: ISO Base Media File Format 26 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 27 | 28 | ======================================== 29 | [isobmff] No errors. 30 | ======================================== 31 | 32 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_isobmff-static-metadata-2.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #31] Warning: [TrackId=2] Metadata OBUs for sample description entry 1 are static for the entire set of samples but are not present in the OBU array in the sample description entry 10 | 11 | ======================================== 12 | [av1isobmff] 0 error(s), 1 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #31] id: assert-f0ce5ae3 18 | Section 2.4 19 | If the metadata OBUs are static for the entire set of samples associated with a 20 | given sample description entry, they SHOULD also be in the OBU array in the 21 | sample description entry. 22 | 23 | +--------------------------------------+ 24 | | isobmff validation | 25 | +--------------------------------------+ 26 | 27 | Specification description: ISO Base Media File Format 28 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 29 | 30 | ======================================== 31 | [isobmff] No errors. 32 | ======================================== 33 | 34 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_isobmff-static-metadata.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #31] Warning: [TrackId=2] Metadata OBUs for sample description entry 1 are static for the entire set of samples but are not present in the OBU array in the sample description entry 10 | 11 | ======================================== 12 | [av1isobmff] 0 error(s), 1 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #31] id: assert-f0ce5ae3 18 | Section 2.4 19 | If the metadata OBUs are static for the entire set of samples associated with a 20 | given sample description entry, they SHOULD also be in the OBU array in the 21 | sample description entry. 22 | 23 | +--------------------------------------+ 24 | | isobmff validation | 25 | +--------------------------------------+ 26 | 27 | Specification description: ISO Base Media File Format 28 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 29 | 30 | ======================================== 31 | [isobmff] No errors. 32 | ======================================== 33 | 34 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_isobmff-sync.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #32] Error: [TrackId=2] Sample 0 is a sync sample but its first frame is not a key frame 10 | [av1isobmff][Rule #32] Error: [TrackId=2] Sample 0 is a sync sample but its first frame has its show_frame flag not set 11 | 12 | ======================================== 13 | [av1isobmff] 2 error(s), 0 warning(s). 14 | ======================================== 15 | 16 | ===== Involved rules descriptions: 17 | 18 | [av1isobmff][Rule #32] id: assert-bee456d5 19 | Section 2.4 20 | If an AV1 Sample is signaled as a sync sample (in the SyncSampleBox or by 21 | setting sample_is_non_sync_sample to 0), it SHALL be a Random Access Point 22 | as defined in [AV1], i.e. satisfy the following constraints: 23 | - Its first frame is a Key Frame that has show_frame flag set to 1, 24 | - It contains a Sequence Header OBU before the first Frame Header OBU. 25 | 26 | +--------------------------------------+ 27 | | isobmff validation | 28 | +--------------------------------------+ 29 | 30 | Specification description: ISO Base Media File Format 31 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 32 | 33 | ======================================== 34 | [isobmff] No errors. 35 | ======================================== 36 | 37 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_isobmff_clap.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #19] Warning: [TrackId=2] The CleanApertureBox clap SHOULD not be present. 10 | 11 | ======================================== 12 | [av1isobmff] 0 error(s), 1 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #19] Section 2.3.4 18 | The CleanApertureBox clap SHOULD not be present. 19 | 20 | +--------------------------------------+ 21 | | isobmff validation | 22 | +--------------------------------------+ 23 | 24 | Specification description: ISO Base Media File Format 25 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 26 | 27 | ======================================== 28 | [isobmff] No errors. 29 | ======================================== 30 | 31 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_isobmff_intra_sample_depends_on.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #26] Warning: [TrackId=2] Sample 0 contains an intra-only frame, but sample_depends_on is not set to 2 10 | 11 | ======================================== 12 | [av1isobmff] 0 error(s), 1 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #26] id: assert-0c895956 18 | Section 2.4 19 | Intra-only frames SHOULD be signaled using the sample_depends_on flag set to 2. 20 | 21 | +--------------------------------------+ 22 | | isobmff validation | 23 | +--------------------------------------+ 24 | 25 | Specification description: ISO Base Media File Format 26 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 27 | 28 | ======================================== 29 | [isobmff] No errors. 30 | ======================================== 31 | 32 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_isobmff_is_leading.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #34] Error: Track 2 uses sdtp box with is_leading flag set to 1 10 | 11 | ======================================== 12 | [av1isobmff] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #34] id: assert-cb746c39 18 | Section 2.4 19 | In tracks using the AV1SampleEntry, the is_leading flag, if used, 20 | SHALL be set to 0 or 2. 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_isobmff_no_compatible_brand.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #0] Error: No 'av01' found in compatibleBrands 10 | [av1isobmff][Rule #2] Error: No Av1SampleEntry found 11 | 12 | ======================================== 13 | [av1isobmff] 2 error(s), 0 warning(s). 14 | ======================================== 15 | 16 | ===== Involved rules descriptions: 17 | 18 | [av1isobmff][Rule #0] id: assert-03258f22 19 | Section 2.1 20 | It SHALL have the av01 brand among the compatible brands array of the FileTypeBox 21 | 22 | [av1isobmff][Rule #2] id: assert-bd1c6212 23 | Section 2.1 24 | It SHALL contain at least one track using an AV1SampleEntry 25 | 26 | +--------------------------------------+ 27 | | isobmff validation | 28 | +--------------------------------------+ 29 | 30 | Specification description: ISO Base Media File Format 31 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 32 | 33 | ======================================== 34 | [isobmff] No errors. 35 | ======================================== 36 | 37 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_isobmff_obu_has_size_field_zero.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #15] Error: The flag obu_has_size_field SHALL be set to 1 10 | 11 | ======================================== 12 | [av1isobmff] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #15] id: assert-cf9ef74c 18 | Section 2.3.4 19 | ConfigOBUs: the flag obu_has_size_field SHALL be set to 1. 20 | 21 | +--------------------------------------+ 22 | | isobmff validation | 23 | +--------------------------------------+ 24 | 25 | Specification description: ISO Base Media File Format 26 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 27 | 28 | ======================================== 29 | [isobmff] No errors. 30 | ======================================== 31 | 32 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_isobmff_temporal_delimiter.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #25] Warning: Found 1 OBU_TEMPORAL_DELIMITER obu(s) 10 | 11 | ======================================== 12 | [av1isobmff] 0 error(s), 1 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #25] id: assert-2487540d 18 | Section 2.4 19 | OBUs of type OBU_TEMPORAL_DELIMITER, OBU_PADDING, or OBU_REDUNDANT_FRAME_HEADER SHOULD NOT be used. 20 | 21 | +--------------------------------------+ 22 | | isobmff validation | 23 | +--------------------------------------+ 24 | 25 | Specification description: ISO Base Media File Format 26 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 27 | 28 | ======================================== 29 | [isobmff] No errors. 30 | ======================================== 31 | 32 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_isobmff_two_seqhdr_config_obus.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | [av1isobmff][Rule #14] Error: The configOBUs field SHALL contain at most one Sequence Header OBU. Found several. 10 | 11 | ======================================== 12 | [av1isobmff] 1 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [av1isobmff][Rule #14] id: assert-755c9133 18 | Section 2.3.4 19 | The configOBUs field SHALL contain at most one Sequence Header OBU and if present, it SHALL be the first OBU. 20 | 21 | +--------------------------------------+ 22 | | isobmff validation | 23 | +--------------------------------------+ 24 | 25 | Specification description: ISO Base Media File Format 26 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 27 | 28 | ======================================== 29 | [isobmff] No errors. 30 | ======================================== 31 | 32 | -------------------------------------------------------------------------------- /tests/av1isobmff/invalid_seqhdr_obu_position.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid-aspectnotneeded.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid-av1sampleentry-hdr-configOBU.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid-av1sampleentry-hdr-sample.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid-av1sampleentry.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid_isobmff-sample-groups.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid_isobmff-static-metadata.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid_isobmff-sync.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid_isobmff.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid_isobmff_fragmented.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid_isobmff_is_leading.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/av1isobmff/valid_isobmff_no_config_obu.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | av1isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AV1 Codec ISO Media File Format Binding v1.2.0, 12 December 2019 6 | https://github.com/AOMediaCodec/av1-isobmff/commit/ee2f1f0d2c342478206767fb4b79a39870c0827e 7 | https://aomediacodec.github.io/av1-isobmff/v1.2.0.html 8 | 9 | ======================================== 10 | [av1isobmff] No errors. 11 | ======================================== 12 | 13 | +--------------------------------------+ 14 | | isobmff validation | 15 | +--------------------------------------+ 16 | 17 | Specification description: ISO Base Media File Format 18 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 19 | 20 | ======================================== 21 | [isobmff] No errors. 22 | ======================================== 23 | 24 | -------------------------------------------------------------------------------- /tests/avc.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gpac/ComplianceWarden/203f95e9f0e6ee126264dd75004a13a63c4b84de/tests/avc.mp4 -------------------------------------------------------------------------------- /tests/avc.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | ======================================== 9 | [isobmff] No errors. 10 | ======================================== 11 | 12 | -------------------------------------------------------------------------------- /tests/avif/invalid-2seqhdrs.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | [avif][Rule #2] Error: [ItemId=1] Expected 1 sequence Header OBU in Image Item Data but found 2 9 | 10 | ======================================== 11 | [avif] 1 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [avif][Rule #2] id: assert-809b9acc 17 | Section 2.1 18 | The AV1 Image Item Data shall have exactly one Sequence Header OBU. 19 | 20 | +--------------------------------------+ 21 | | miaf validation | 22 | +--------------------------------------+ 23 | 24 | Specification description: MIAF (Multi-Image Application Format) 25 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 26 | 27 | ======================================== 28 | [miaf] No errors. 29 | ======================================== 30 | 31 | +--------------------------------------+ 32 | | heif validation | 33 | +--------------------------------------+ 34 | 35 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 36 | 37 | ======================================== 38 | [heif] No errors. 39 | ======================================== 40 | 41 | +--------------------------------------+ 42 | | isobmff validation | 43 | +--------------------------------------+ 44 | 45 | Specification description: ISO Base Media File Format 46 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 47 | 48 | ======================================== 49 | [isobmff] No errors. 50 | ======================================== 51 | 52 | -------------------------------------------------------------------------------- /tests/avif/invalid-brand.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | [avif][Rule #17] Error: 'avif', 'avis', or 'avio' brand not found 9 | 10 | ======================================== 11 | [avif] 1 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [avif][Rule #17] Section 5 17 | AVIF files shall contain either the 'avif', 'avis', or 'avio' brand 18 | 19 | +--------------------------------------+ 20 | | miaf validation | 21 | +--------------------------------------+ 22 | 23 | Specification description: MIAF (Multi-Image Application Format) 24 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 25 | 26 | ======================================== 27 | [miaf] No errors. 28 | ======================================== 29 | 30 | +--------------------------------------+ 31 | | heif validation | 32 | +--------------------------------------+ 33 | 34 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 35 | 36 | ======================================== 37 | [heif] No errors. 38 | ======================================== 39 | 40 | +--------------------------------------+ 41 | | isobmff validation | 42 | +--------------------------------------+ 43 | 44 | Specification description: ISO Base Media File Format 45 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 46 | 47 | ======================================== 48 | [isobmff] No errors. 49 | ======================================== 50 | 51 | -------------------------------------------------------------------------------- /tests/avif/invalid-essential.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | [avif][Rule #7] Error: Property "av1C" shall be marked as essential (item_ID=1) 9 | 10 | ======================================== 11 | [avif] 1 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [avif][Rule #7] id: assert-ebb95262 17 | Section 2.2.1 18 | AV1 Item Configuration Property [...] shall be marked as essential. 19 | 20 | +--------------------------------------+ 21 | | miaf validation | 22 | +--------------------------------------+ 23 | 24 | Specification description: MIAF (Multi-Image Application Format) 25 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 26 | 27 | ======================================== 28 | [miaf] No errors. 29 | ======================================== 30 | 31 | +--------------------------------------+ 32 | | heif validation | 33 | +--------------------------------------+ 34 | 35 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 36 | 37 | ======================================== 38 | [heif] No errors. 39 | ======================================== 40 | 41 | +--------------------------------------+ 42 | | isobmff validation | 43 | +--------------------------------------+ 44 | 45 | Specification description: ISO Base Media File Format 46 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 47 | 48 | ======================================== 49 | [isobmff] No errors. 50 | ======================================== 51 | 52 | -------------------------------------------------------------------------------- /tests/avif/invalid-not-sync.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | [avif][Rule #1] Error: [ItemId=1] AV1 Sample shall be marked as sync (showFrame=0, keyFrame=1) 9 | 10 | ======================================== 11 | [avif] 1 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [avif][Rule #1] id: assert-8ef3bad2 17 | Section 2.1 18 | The AV1 Image Item Data shall be identical to the content of an AV1 Sample marked as 'sync', as defined in [AV1-ISOBMFF]. 19 | 20 | +--------------------------------------+ 21 | | miaf validation | 22 | +--------------------------------------+ 23 | 24 | Specification description: MIAF (Multi-Image Application Format) 25 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 26 | 27 | ======================================== 28 | [miaf] No errors. 29 | ======================================== 30 | 31 | +--------------------------------------+ 32 | | heif validation | 33 | +--------------------------------------+ 34 | 35 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 36 | 37 | ======================================== 38 | [heif] No errors. 39 | ======================================== 40 | 41 | +--------------------------------------+ 42 | | isobmff validation | 43 | +--------------------------------------+ 44 | 45 | Specification description: ISO Base Media File Format 46 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 47 | 48 | ======================================== 49 | [isobmff] No errors. 50 | ======================================== 51 | 52 | -------------------------------------------------------------------------------- /tests/avif/invalid-profile-baseline.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | [avif][Rule #15] Error: Item ID=1 (image item): Baseline Profile requires AV1 Main Profile 9 | [avif][Rule #15] Error: Item ID=1 (image item): Baseline Profile requires AV1 level 5.1 or lower 10 | 11 | ======================================== 12 | [avif] 2 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [avif][Rule #15] Section 7.2 18 | AVIF Baseline Profile (MA1B): 19 | - Image items and image sequences: AV1 profile shall be Main Profile and 20 | level shall be 5.1 or lower 21 | 22 | +--------------------------------------+ 23 | | miaf validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: MIAF (Multi-Image Application Format) 27 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 28 | 29 | ======================================== 30 | [miaf] No errors. 31 | ======================================== 32 | 33 | +--------------------------------------+ 34 | | heif validation | 35 | +--------------------------------------+ 36 | 37 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 38 | 39 | ======================================== 40 | [heif] No errors. 41 | ======================================== 42 | 43 | +--------------------------------------+ 44 | | isobmff validation | 45 | +--------------------------------------+ 46 | 47 | Specification description: ISO Base Media File Format 48 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 49 | 50 | ======================================== 51 | [isobmff] No errors. 52 | ======================================== 53 | 54 | -------------------------------------------------------------------------------- /tests/avif/invalid-reduced-still.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | ======================================== 9 | [avif] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | miaf validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: MIAF (Multi-Image Application Format) 17 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 18 | 19 | ======================================== 20 | [miaf] No errors. 21 | ======================================== 22 | 23 | +--------------------------------------+ 24 | | heif validation | 25 | +--------------------------------------+ 26 | 27 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 28 | 29 | ======================================== 30 | [heif] No errors. 31 | ======================================== 32 | 33 | +--------------------------------------+ 34 | | isobmff validation | 35 | +--------------------------------------+ 36 | 37 | Specification description: ISO Base Media File Format 38 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 39 | 40 | ======================================== 41 | [isobmff] No errors. 42 | ======================================== 43 | 44 | -------------------------------------------------------------------------------- /tests/avif/invalid-seqhdr-av1c.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | [avif][Rule #3] Warning: Sequence Header OBUs should not be present in the AV1CodecConfigurationBox 9 | 10 | ======================================== 11 | [avif] 0 error(s), 1 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [avif][Rule #3] id: assert-9c37f45a 17 | Section 2.1 18 | Sequence Header OBUs should not be present in the AV1ItemConfigurationProperty. 19 | 20 | +--------------------------------------+ 21 | | miaf validation | 22 | +--------------------------------------+ 23 | 24 | Specification description: MIAF (Multi-Image Application Format) 25 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 26 | 27 | ======================================== 28 | [miaf] No errors. 29 | ======================================== 30 | 31 | +--------------------------------------+ 32 | | heif validation | 33 | +--------------------------------------+ 34 | 35 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 36 | 37 | ======================================== 38 | [heif] No errors. 39 | ======================================== 40 | 41 | +--------------------------------------+ 42 | | isobmff validation | 43 | +--------------------------------------+ 44 | 45 | Specification description: ISO Base Media File Format 46 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 47 | 48 | ======================================== 49 | [isobmff] No errors. 50 | ======================================== 51 | 52 | -------------------------------------------------------------------------------- /tests/avif/invalid-still.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | ======================================== 9 | [avif] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | miaf validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: MIAF (Multi-Image Application Format) 17 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 18 | 19 | ======================================== 20 | [miaf] No errors. 21 | ======================================== 22 | 23 | +--------------------------------------+ 24 | | heif validation | 25 | +--------------------------------------+ 26 | 27 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 28 | 29 | ======================================== 30 | [heif] No errors. 31 | ======================================== 32 | 33 | +--------------------------------------+ 34 | | isobmff validation | 35 | +--------------------------------------+ 36 | 37 | Specification description: ISO Base Media File Format 38 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 39 | 40 | ======================================== 41 | [isobmff] No errors. 42 | ======================================== 43 | 44 | -------------------------------------------------------------------------------- /tests/avif/valid-64b-box-size-0-box-size.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | ======================================== 9 | [avif] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | miaf validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: MIAF (Multi-Image Application Format) 17 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 18 | 19 | ======================================== 20 | [miaf] No errors. 21 | ======================================== 22 | 23 | +--------------------------------------+ 24 | | heif validation | 25 | +--------------------------------------+ 26 | 27 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 28 | 29 | ======================================== 30 | [heif] No errors. 31 | ======================================== 32 | 33 | +--------------------------------------+ 34 | | isobmff validation | 35 | +--------------------------------------+ 36 | 37 | Specification description: ISO Base Media File Format 38 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 39 | 40 | ======================================== 41 | [isobmff] No errors. 42 | ======================================== 43 | 44 | -------------------------------------------------------------------------------- /tests/avif/valid-profile-advanced.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | ======================================== 9 | [avif] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | miaf validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: MIAF (Multi-Image Application Format) 17 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 18 | 19 | ======================================== 20 | [miaf] No errors. 21 | ======================================== 22 | 23 | +--------------------------------------+ 24 | | heif validation | 25 | +--------------------------------------+ 26 | 27 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 28 | 29 | ======================================== 30 | [heif] No errors. 31 | ======================================== 32 | 33 | +--------------------------------------+ 34 | | isobmff validation | 35 | +--------------------------------------+ 36 | 37 | Specification description: ISO Base Media File Format 38 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 39 | 40 | ======================================== 41 | [isobmff] No errors. 42 | ======================================== 43 | 44 | -------------------------------------------------------------------------------- /tests/avif/valid-profile-baseline.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | ======================================== 9 | [avif] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | miaf validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: MIAF (Multi-Image Application Format) 17 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 18 | 19 | ======================================== 20 | [miaf] No errors. 21 | ======================================== 22 | 23 | +--------------------------------------+ 24 | | heif validation | 25 | +--------------------------------------+ 26 | 27 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 28 | 29 | ======================================== 30 | [heif] No errors. 31 | ======================================== 32 | 33 | +--------------------------------------+ 34 | | isobmff validation | 35 | +--------------------------------------+ 36 | 37 | Specification description: ISO Base Media File Format 38 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 39 | 40 | ======================================== 41 | [isobmff] No errors. 42 | ======================================== 43 | 44 | -------------------------------------------------------------------------------- /tests/avif/valid.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | avif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: AVIF v1.2.0, 8 January 2025 6 | https://aomediacodec.github.io/av1-avif/v1.2.0.html 7 | 8 | ======================================== 9 | [avif] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | miaf validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: MIAF (Multi-Image Application Format) 17 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 18 | 19 | ======================================== 20 | [miaf] No errors. 21 | ======================================== 22 | 23 | +--------------------------------------+ 24 | | heif validation | 25 | +--------------------------------------+ 26 | 27 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 28 | 29 | ======================================== 30 | [heif] No errors. 31 | ======================================== 32 | 33 | +--------------------------------------+ 34 | | isobmff validation | 35 | +--------------------------------------+ 36 | 37 | Specification description: ISO Base Media File Format 38 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 39 | 40 | ======================================== 41 | [isobmff] No errors. 42 | ======================================== 43 | 44 | -------------------------------------------------------------------------------- /tests/heif.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gpac/ComplianceWarden/203f95e9f0e6ee126264dd75004a13a63c4b84de/tests/heif.mp4 -------------------------------------------------------------------------------- /tests/heif.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #21] Warning: File extension for "heif.mp4" doesn't match: expecting one of 'heif hif ', got 'mp4' 8 | 9 | ======================================== 10 | [heif] 0 error(s), 1 warning(s). 11 | ======================================== 12 | 13 | ===== Involved rules descriptions: 14 | 15 | [heif][Rule #21] Section C.2, D.2, F.2, G.2 16 | File extensions to identify the presence of specific image coding formats 17 | 18 | +--------------------------------------+ 19 | | isobmff validation | 20 | +--------------------------------------+ 21 | 22 | Specification description: ISO Base Media File Format 23 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 24 | 25 | ======================================== 26 | [isobmff] No errors. 27 | ======================================== 28 | 29 | -------------------------------------------------------------------------------- /tests/heif/invalid-auxl-auxi.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #1] Error: AuxiliaryTypeInfoBox ('auxi') is absent (trackIDs: video=1, aux=2) 8 | [heif][Rule #33] Error: 'msf1' brand: this file shall conform to HEIF section 7, check the other errors for details 9 | 10 | ======================================== 11 | [heif] 2 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [heif][Rule #1] Section 7.5.3.1 17 | The nature of the auxiliary track is announced by the AuxiliaryTypeInfoBox that 18 | shall be included in the sample entry of the auxiliary track. 19 | 20 | [heif][Rule #33] Section 10.3 21 | when a brand specified in 10.3 is among the compatible brands of a file, 22 | the requirements specified in Clause 7 shall be obeyed 23 | 24 | +--------------------------------------+ 25 | | isobmff validation | 26 | +--------------------------------------+ 27 | 28 | Specification description: ISO Base Media File Format 29 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 30 | 31 | ======================================== 32 | [isobmff] No errors. 33 | ======================================== 34 | 35 | -------------------------------------------------------------------------------- /tests/heif/invalid-brand-msf1.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #3] Error: The handler type for the MetaBox shall be 'pict' 8 | [heif][Rule #31] Error: 'msf1' brand: 'iso8' shall be present among the compatible brands array 9 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 10 | 11 | ======================================== 12 | [heif] 3 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [heif][Rule #3] Section 6.2 18 | The handler type for the MetaBox shall be 'pict'. 19 | 20 | [heif][Rule #31] Section 10.3.1.1 21 | Files shall contain the brand 'msf1' in the compatible brands: 22 | - At least one track of handler type 'pict', as defined in 7.2, is required. 23 | - It is required that 'iso8' is present among the compatible brands array. 24 | 25 | [heif][Rule #32] Section 10.2 26 | when a brand specified in 10.2 is among the compatible brands of a file, 27 | the requirements specified in Clause 6 shall be obeyed 28 | 29 | +--------------------------------------+ 30 | | isobmff validation | 31 | +--------------------------------------+ 32 | 33 | Specification description: ISO Base Media File Format 34 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 35 | 36 | ======================================== 37 | [isobmff] No errors. 38 | ======================================== 39 | 40 | -------------------------------------------------------------------------------- /tests/heif/invalid-dimg-from-arity.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #17] Error: The number of SingleItemTypeReferenceBoxes with the box type 'dimg' and from_item_ID=2 found more than once 8 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 9 | 10 | ======================================== 11 | [heif] 2 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [heif][Rule #17] Section 6.4 17 | The number of SingleItemTypeReferenceBoxes with the box type 'dimg' and with the 18 | same value of from_item_ID shall not be greater than 1 19 | 20 | [heif][Rule #32] Section 10.2 21 | when a brand specified in 10.2 is among the compatible brands of a file, 22 | the requirements specified in Clause 6 shall be obeyed 23 | 24 | +--------------------------------------+ 25 | | isobmff validation | 26 | +--------------------------------------+ 27 | 28 | Specification description: ISO Base Media File Format 29 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 30 | 31 | ======================================== 32 | [isobmff] No errors. 33 | ======================================== 34 | 35 | -------------------------------------------------------------------------------- /tests/heif/invalid-displayable-primary_item.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | db "pitm" 34 | dd BE(0) 35 | db 0xaa, 0xbb 36 | pitm_end: 37 | 38 | iinf_start: 39 | dd BE(iinf_end - iinf_start) 40 | db "iinf" 41 | dd BE(0) 42 | db 0x00, 0x01 43 | infe_start: 44 | dd BE(infe_end - infe_start) 45 | db "infe" 46 | dd BE(1) ; not displayable 47 | db 0xaa, 0xbb ; item_ID 48 | db 0x00, 0x00 ; protected item 49 | db 0x00 50 | db 0x00 51 | db 0x00 52 | infe_end: 53 | iinf_end: 54 | 55 | iprp_start: 56 | dd BE(iprp_end - iprp_start) 57 | db "iprp" 58 | ipco_start: 59 | dd BE(ipco_end - ipco_start) 60 | db "ipco" 61 | ispe_start: 62 | dd BE(ispe_end - ispe_start) 63 | db "ispe" 64 | dd 0, 0, 0 65 | ispe_end: 66 | ipco_end: 67 | iprp_end: 68 | 69 | meta_end: 70 | 71 | ; vim: syntax=nasm 72 | -------------------------------------------------------------------------------- /tests/heif/invalid-displayable-primary_item.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #14] Error: primary item (Item_ID=43707) has no associated item_type. 8 | [heif][Rule #15] Error: The primary item shall not be a hidden image item 9 | [heif][Rule #29] Error: 'infe' version shall be 2 or 3, found 0 10 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 11 | 12 | ======================================== 13 | [heif] 4 error(s), 0 warning(s). 14 | ======================================== 15 | 16 | ===== Involved rules descriptions: 17 | 18 | [heif][Rule #14] Section 6.2 19 | The file-level MetaBox shall identify as its primary item an item that is a 20 | coded image or a derived image item 21 | 22 | [heif][Rule #15] Section 6.4.2 23 | The primary item shall not be a hidden image item 24 | 25 | [heif][Rule #29] Section 10.2.1.1 26 | Other versions of the boxes shall not be present. 27 | 28 | [heif][Rule #32] Section 10.2 29 | when a brand specified in 10.2 is among the compatible brands of a file, 30 | the requirements specified in Clause 6 shall be obeyed 31 | 32 | +--------------------------------------+ 33 | | isobmff validation | 34 | +--------------------------------------+ 35 | 36 | Specification description: ISO Base Media File Format 37 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 38 | 39 | ======================================== 40 | [isobmff] No errors. 41 | ======================================== 42 | 43 | -------------------------------------------------------------------------------- /tests/heif/invalid-grid-version.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #14] Error: No primary item. 8 | [heif][Rule #18] Error: 'iovl' version shall be equal to 0, found 255 (itemId=10) 9 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 10 | 11 | ======================================== 12 | [heif] 3 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [heif][Rule #14] Section 6.2 18 | The file-level MetaBox shall identify as its primary item an item that is a 19 | coded image or a derived image item 20 | 21 | [heif][Rule #18] Section 6.6.2.2.3 22 | 'iovl' box: version shall be equal to 0 23 | 24 | [heif][Rule #32] Section 10.2 25 | when a brand specified in 10.2 is among the compatible brands of a file, 26 | the requirements specified in Clause 6 shall be obeyed 27 | 28 | +--------------------------------------+ 29 | | isobmff validation | 30 | +--------------------------------------+ 31 | 32 | Specification description: ISO Base Media File Format 33 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 34 | 35 | ======================================== 36 | [isobmff] No errors. 37 | ======================================== 38 | 39 | -------------------------------------------------------------------------------- /tests/heif/invalid-hdlr-not-pict.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db "dumy" ; handler_type(32) ('dumy') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | iinf_start: 32 | dd BE(iinf_end - iinf_start) 33 | db "iinf" 34 | dd BE(0) 35 | db 0x00, 0x00 36 | iinf_end: 37 | 38 | iprp_start: 39 | dd BE(iprp_end - iprp_start) 40 | db "iprp" 41 | ipco_start: 42 | dd BE(ipco_end - ipco_start) 43 | db "ipco" 44 | ispe_start: 45 | dd BE(ispe_end - ispe_start) 46 | db "ispe" 47 | dd 0, 0, 0 48 | ispe_end: 49 | ipco_end: 50 | iprp_end: 51 | 52 | meta_end: 53 | 54 | ; vim: syntax=nasm 55 | -------------------------------------------------------------------------------- /tests/heif/invalid-hdlr-not-pict.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #3] Error: The handler type for the MetaBox shall be 'pict' 8 | [heif][Rule #14] Error: No primary item. 9 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 10 | 11 | ======================================== 12 | [heif] 3 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [heif][Rule #3] Section 6.2 18 | The handler type for the MetaBox shall be 'pict'. 19 | 20 | [heif][Rule #14] Section 6.2 21 | The file-level MetaBox shall identify as its primary item an item that is a 22 | coded image or a derived image item 23 | 24 | [heif][Rule #32] Section 10.2 25 | when a brand specified in 10.2 is among the compatible brands of a file, 26 | the requirements specified in Clause 6 shall be obeyed 27 | 28 | +--------------------------------------+ 29 | | isobmff validation | 30 | +--------------------------------------+ 31 | 32 | Specification description: ISO Base Media File Format 33 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 34 | 35 | ======================================== 36 | [isobmff] No errors. 37 | ======================================== 38 | 39 | -------------------------------------------------------------------------------- /tests/heif/invalid-iovl-version.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #14] Error: No primary item. 8 | [heif][Rule #18] Error: 'iovl' version shall be equal to 0, found 255 (itemId=10) 9 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 10 | 11 | ======================================== 12 | [heif] 3 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [heif][Rule #14] Section 6.2 18 | The file-level MetaBox shall identify as its primary item an item that is a 19 | coded image or a derived image item 20 | 21 | [heif][Rule #18] Section 6.6.2.2.3 22 | 'iovl' box: version shall be equal to 0 23 | 24 | [heif][Rule #32] Section 10.2 25 | when a brand specified in 10.2 is among the compatible brands of a file, 26 | the requirements specified in Clause 6 shall be obeyed 27 | 28 | +--------------------------------------+ 29 | | isobmff validation | 30 | +--------------------------------------+ 31 | 32 | Specification description: ISO Base Media File Format 33 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 34 | 35 | ======================================== 36 | [isobmff] No errors. 37 | ======================================== 38 | 39 | -------------------------------------------------------------------------------- /tests/heif/invalid-ispe-missing.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | db "pitm" 34 | dd BE(0) 35 | db 0x00, 0x00 36 | pitm_end: 37 | 38 | iinf_start: 39 | dd BE(iinf_end - iinf_start) 40 | db "iinf" 41 | dd BE(0) 42 | db 0x00, 0x00 43 | iinf_end: 44 | 45 | iprp_start: 46 | dd BE(iprp_end - iprp_start) 47 | db "iprp" 48 | ipco_start: 49 | dd BE(ipco_end - ipco_start) 50 | db "ipco" 51 | ipco_end: 52 | iprp_end: 53 | 54 | meta_end: 55 | 56 | ; vim: syntax=nasm 57 | -------------------------------------------------------------------------------- /tests/heif/invalid-ispe-missing.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #11] Error: image spatial extents property ("ispe") not detected. 8 | [heif][Rule #14] Error: primary item (Item_ID=0) has no associated item_type. 9 | [heif][Rule #28] Error: Wrong arity for boxes { ispe } in parents { ipco }: expected in range [1-2147483647], found 0 10 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 11 | 12 | ======================================== 13 | [heif] 4 error(s), 0 warning(s). 14 | ======================================== 15 | 16 | ===== Involved rules descriptions: 17 | 18 | [heif][Rule #11] Section 6.5.3.1 19 | Every image item shall be associated with one [image spatial extents property], 20 | prior to the association of all transformative properties. 21 | 22 | [heif][Rule #14] Section 6.2 23 | The file-level MetaBox shall identify as its primary item an item that is a 24 | coded image or a derived image item 25 | 26 | [heif][Rule #28] Section 6.4 27 | Box structure and arity for boxes defined in HEIF 28 | This is rather a safety check than a formal rule. 29 | 30 | [heif][Rule #32] Section 10.2 31 | when a brand specified in 10.2 is among the compatible brands of a file, 32 | the requirements specified in Clause 6 shall be obeyed 33 | 34 | +--------------------------------------+ 35 | | isobmff validation | 36 | +--------------------------------------+ 37 | 38 | Specification description: ISO Base Media File Format 39 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 40 | 41 | ======================================== 42 | [isobmff] No errors. 43 | ======================================== 44 | 45 | -------------------------------------------------------------------------------- /tests/heif/invalid-ispe-property-order.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #11] Error: Item ID=1: transformative property "imir" (index=2) found prior to "ispe" 8 | [heif][Rule #11] Error: Item ID=2: transformative property "imir" (index=2) found prior to "ispe" 9 | [heif][Rule #14] Error: No primary item. 10 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 11 | 12 | ======================================== 13 | [heif] 4 error(s), 0 warning(s). 14 | ======================================== 15 | 16 | ===== Involved rules descriptions: 17 | 18 | [heif][Rule #11] Section 6.5.3.1 19 | Every image item shall be associated with one [image spatial extents property], 20 | prior to the association of all transformative properties. 21 | 22 | [heif][Rule #14] Section 6.2 23 | The file-level MetaBox shall identify as its primary item an item that is a 24 | coded image or a derived image item 25 | 26 | [heif][Rule #32] Section 10.2 27 | when a brand specified in 10.2 is among the compatible brands of a file, 28 | the requirements specified in Clause 6 shall be obeyed 29 | 30 | +--------------------------------------+ 31 | | isobmff validation | 32 | +--------------------------------------+ 33 | 34 | Specification description: ISO Base Media File Format 35 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 36 | 37 | ======================================== 38 | [isobmff] No errors. 39 | ======================================== 40 | 41 | -------------------------------------------------------------------------------- /tests/heif/invalid-no-ftyp.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftip" ; error: mistyped 'ftyp' 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "isom", "iso2", "mp41" 10 | ftyp_end: 11 | 12 | ; vim: syntax=nasm 13 | -------------------------------------------------------------------------------- /tests/heif/invalid-no-meta.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | ; vim: syntax=nasm 14 | -------------------------------------------------------------------------------- /tests/heif/invalid-no-mif1.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "isom", "iso2", "mp41" ; error: no 'mif1' 10 | ftyp_end: 11 | 12 | ; vim: syntax=nasm 13 | -------------------------------------------------------------------------------- /tests/heif/invalid-pitm-type.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #14] Error: primary item (Item_ID=1) is not coded image or a derived image item (found item_type="aaaa") 8 | [heif][Rule #21] Warning: File extension for "invalid-pitm-type.mp4" doesn't match: expecting one of 'heif hif ', got 'mp4' 9 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 10 | 11 | ======================================== 12 | [heif] 2 error(s), 1 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [heif][Rule #14] Section 6.2 18 | The file-level MetaBox shall identify as its primary item an item that is a 19 | coded image or a derived image item 20 | 21 | [heif][Rule #21] Section C.2, D.2, F.2, G.2 22 | File extensions to identify the presence of specific image coding formats 23 | 24 | [heif][Rule #32] Section 10.2 25 | when a brand specified in 10.2 is among the compatible brands of a file, 26 | the requirements specified in Clause 6 shall be obeyed 27 | 28 | +--------------------------------------+ 29 | | isobmff validation | 30 | +--------------------------------------+ 31 | 32 | Specification description: ISO Base Media File Format 33 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 34 | 35 | ======================================== 36 | [isobmff] No errors. 37 | ======================================== 38 | 39 | -------------------------------------------------------------------------------- /tests/heif/invalid-thmb.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | [heif][Rule #16] Error: Thumbnail image is linked to another thumbnail image (from item_ID=1 to item_ID=1) 8 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 9 | 10 | ======================================== 11 | [heif] 2 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [heif][Rule #16] Section 6.4.4 17 | A thumbnail image shall not be linked to another thumbnail image with 18 | the 'thmb' item reference. 19 | 20 | [heif][Rule #32] Section 10.2 21 | when a brand specified in 10.2 is among the compatible brands of a file, 22 | the requirements specified in Clause 6 shall be obeyed 23 | 24 | +--------------------------------------+ 25 | | isobmff validation | 26 | +--------------------------------------+ 27 | 28 | Specification description: ISO Base Media File Format 29 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 30 | 31 | ======================================== 32 | [isobmff] No errors. 33 | ======================================== 34 | 35 | -------------------------------------------------------------------------------- /tests/heif/valid-J2K.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid-auxl-auxi.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid-brand-msf1.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid-derivation-iden.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid-dimg-from-arity.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid-displayable-primary_item.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | dd "pitm" 34 | db 0x00 ; "version(8)" 35 | db 0x00, 0x00, 0x00 ; "flags(24)" 36 | db 0x00, 0x01 ; "item_ID(16)" 37 | pitm_end: 38 | 39 | iinf_start: 40 | dd BE(iinf_end - iinf_start) 41 | dd "iinf" 42 | db 0x00 ; "version(8)" 43 | db 0x00, 0x00, 0x00 ; "flags(24)" 44 | db 0x00, 0x01 ; "entry_count(16)" 45 | infe_start: 46 | dd BE(infe_end - infe_start) 47 | dd "infe" 48 | db 0x02 ; "version(8)" 49 | db 0x00, 0x00, 0x00 ; "flags(24)" 50 | db 0x00, 0x01 ; "item_ID(16)" 51 | db 0x00, 0x00 ; "item_protection_index(16)" 52 | db 0x61, 0x76, 0x30, 0x31 ; "item_type(32)" ('av01') 53 | db 0x00 ; "item_name(8)" 54 | infe_end: 55 | iinf_end: 56 | 57 | iprp_start: 58 | dd BE(iprp_end - iprp_start) 59 | db "iprp" 60 | ipco_start: 61 | dd BE(ipco_end - ipco_start) 62 | db "ipco" 63 | ispe_start: 64 | dd BE(ispe_end - ispe_start) 65 | db "ispe" 66 | dd 0, 0, 0 67 | ispe_end: 68 | ipco_end: 69 | iprp_end: 70 | 71 | meta_end: 72 | 73 | ; vim: syntax=nasm 74 | -------------------------------------------------------------------------------- /tests/heif/valid-displayable-primary_item.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid-grid-version.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid-iovl-version.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid-multiple-extents.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid-thmb.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid-tkhd_transformations.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/heif/valid.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | dd "pitm" 34 | db 0x00 ; "version(8)" 35 | db 0x00, 0x00, 0x00 ; "flags(24)" 36 | db 0x00, 0x01 ; "item_ID(16)" 37 | pitm_end: 38 | 39 | iinf_start: 40 | dd BE(iinf_end - iinf_start) 41 | dd "iinf" 42 | db 0x00 ; "version(8)" 43 | db 0x00, 0x00, 0x00 ; "flags(24)" 44 | db 0x00, 0x01 ; "entry_count(16)" 45 | infe_start: 46 | dd BE(infe_end - infe_start) 47 | dd "infe" 48 | db 0x02 ; "version(8)" 49 | db 0x00, 0x00, 0x00 ; "flags(24)" 50 | db 0x00, 0x01 ; "item_ID(16)" 51 | db 0x00, 0x00 ; "item_protection_index(16)" 52 | db 0x61, 0x76, 0x30, 0x31 ; "item_type(32)" ('av01') 53 | db 0x00 ; "item_name(8)" 54 | infe_end: 55 | iinf_end: 56 | 57 | iprp_start: 58 | dd BE(iprp_end - iprp_start) 59 | db "iprp" 60 | ipco_start: 61 | dd BE(ipco_end - ipco_start) 62 | db "ipco" 63 | ispe_start: 64 | dd BE(ispe_end - ispe_start) 65 | db "ispe" 66 | dd 0, 0, 0 67 | ispe_end: 68 | ipco_end: 69 | iprp_end: 70 | 71 | meta_end: 72 | 73 | ; vim: syntax=nasm 74 | -------------------------------------------------------------------------------- /tests/heif/valid.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | heif validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 6 | 7 | ======================================== 8 | [heif] No errors. 9 | ======================================== 10 | 11 | +--------------------------------------+ 12 | | isobmff validation | 13 | +--------------------------------------+ 14 | 15 | Specification description: ISO Base Media File Format 16 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 17 | 18 | ======================================== 19 | [isobmff] No errors. 20 | ======================================== 21 | 22 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-2-moovs.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24)) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | db "isom" 7 | dd BE(0x00) 8 | db "mif1", "isom" 9 | ftyp_end: 10 | 11 | moov_start: 12 | dd BE(moov_end - moov_start) 13 | db "moov" 14 | moov_end: 15 | moov2_start: 16 | dd BE(moov2_end - moov2_start) 17 | db "moov" 18 | moov2_end: 19 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-2-moovs.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | [isobmff][Rule #10] Error: There shall be one 'moov' at most, found 2 9 | [isobmff][Rule #11] Error: Wrong arity for boxes { moov } in parents { root }: expected in range [0-1], found 2 10 | [isobmff][Rule #11] Error: Wrong arity for boxes { mvhd } in parents { moov }: expected in range [1-1], found 0 11 | [isobmff][Rule #11] Error: Wrong arity for boxes { mvhd } in parents { moov }: expected in range [1-1], found 0 12 | [isobmff][Rule #11] Error: Wrong arity for boxes { trak } in parents { moov }: expected in range [1-2147483647], found 0 13 | [isobmff][Rule #11] Error: Wrong arity for boxes { trak } in parents { moov }: expected in range [1-2147483647], found 0 14 | 15 | ======================================== 16 | [isobmff] 6 error(s), 0 warning(s). 17 | ======================================== 18 | 19 | ===== Involved rules descriptions: 20 | 21 | [isobmff][Rule #10] Section 6.1.2 22 | The sequence of objects in the file shall contain exactly one presentation 23 | metadata wrapper (the MovieBox). 24 | 25 | [isobmff][Rule #11] Table 1: box structure and arity 26 | This is rather a safety check than a formal rule. 27 | 28 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-box-overflow.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | stsd_start: 4 | dd BE(stsd_end - stsd_start) 5 | db "stsd" 6 | dd BE(0) 7 | dd BE(1) 8 | ; not enough fields: 'stsd' parsing will overflow 9 | stsd_end: 10 | 11 | ; put a fake box to ensure this error won't be hidden by a bitstream reader error 12 | aaaa_start: 13 | dd BE(aaaa_end - aaaa_start) 14 | db "aaaa" 15 | aaaa_end: 16 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-box-overflow.ref: -------------------------------------------------------------------------------- 1 | Error: BitReader::bit() overflow 2 | Failed to parse box: '' 3 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-box-underflow.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | stsd_start: 4 | dd BE(stsd_end - stsd_start) 5 | db "stsd" 6 | dd BE(0) 7 | dd BE(0) 8 | dd BE(0); extra bytes: 'stsd' parsing will underflow 9 | stsd_end: 10 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-box-underflow.ref: -------------------------------------------------------------------------------- 1 | Error: Box 'stsd': read 128 bits instead of 160 bits 2 | Failed to parse box: 'stsd' 3 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-brand.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | dd "ftyp" 6 | db 0x68, 0x65, 0x69, 0x63 ; "major_brand" 7 | db 0x0, 0x0, 0x0, 0x0 ; "minor_version" 8 | db 0x6D, 0x69, 0x66, 0x31 ; "compatible_brand" 9 | ftyp_end: 10 | 11 | aaaa_start: 12 | dd BE(aaaa_end - aaaa_start) 13 | db "aaaa" 14 | aaaa_end: 15 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-brand.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | [isobmff][Rule #0] Warning: The major_brand "heic" should be repeated in the compatible_brands list 9 | 10 | ======================================== 11 | [isobmff] 0 error(s), 1 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [isobmff][Rule #0] Section 4.3.1: the major_brand should be repeated in the compatible_brands list 17 | 18 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-ftyp-postion.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | [isobmff][Rule #12] Error: MovieBox (position=0) placed before FileTypeBox (position=354) in file 9 | [isobmff][Rule #12] Error: MediaDataBox (position=345) placed before FileTypeBox (position=354) in file 10 | [isobmff][Rule #12] Error: FreeSpaceBox (position=337) placed before FileTypeBox (position=354) in file 11 | 12 | ======================================== 13 | [isobmff] 3 error(s), 0 warning(s). 14 | ======================================== 15 | 16 | ===== Involved rules descriptions: 17 | 18 | [isobmff][Rule #12] Section 4.3.1 19 | The 'ftyp' box shall be placed as early as possible in the file (e.g. after any 20 | obligatory signature, but before any significant variable-size boxes such as a 21 | MovieBox, MediaDataBox, or FreeSpaceBox). 22 | 23 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-hdlr.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24)) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | dd "ftyp" 6 | db 0x61, 0x76, 0x69, 0x66 ; brand(32) ('avif') 7 | db 0x00, 0x00, 0x00, 0x00 ; version(32) 8 | db 0x61, 0x76, 0x69, 0x66 ; compatible_brand(32) ('avif') 9 | ftyp_end: 10 | meta_start: 11 | dd 0 12 | dd "meta" 13 | db 0x00 ; version(8) 14 | db 0x00, 0x00, 0x00 ; flags(24) 15 | 16 | hdlr_start: 17 | dd BE(hdlr_end - hdlr_start) 18 | dd "hdlr" 19 | db 0x00 ; version(8) 20 | db 0x00, 0x00, 0x00 ; flags(24) 21 | db 0x00, 0x00, 0x00, 0x01 ; pre_defined(32) 22 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 23 | db 0x00, 0x00, 0x00, 0x01 ; reserved1(32) 24 | db 0x00, 0x00, 0x00, 0x01 ; reserved2(32) 25 | db 0x00, 0x00, 0x00, 0x01 ; reserved3(32) 26 | db 0x01 ; name(8) 27 | hdlr_end: 28 | meta_end: 29 | 30 | ; vim: syntax=nasm 31 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-hdlr.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | [isobmff][Rule #14] Error: 'hdlr box': pre_defined shall be 0 but value is 1 9 | [isobmff][Rule #15] Error: 'hdlr box': reserved1 shall be 0 but value is 1 10 | [isobmff][Rule #15] Error: 'hdlr box': reserved2 shall be 0 but value is 1 11 | [isobmff][Rule #15] Error: 'hdlr box': reserved3 shall be 0 but value is 1 12 | [isobmff][Rule #16] Error: 'hdlr box': 'name' field shall be null-terminated 13 | 14 | ======================================== 15 | [isobmff] 5 error(s), 0 warning(s). 16 | ======================================== 17 | 18 | ===== Involved rules descriptions: 19 | 20 | [isobmff][Rule #14] Section 8.4.3.1 21 | 'hdlr box': pre_defined = 0. 22 | 23 | [isobmff][Rule #15] Section 8.4.3.1 24 | 'hdlr box': reserved = 0 25 | 26 | [isobmff][Rule #16] Section 8.4.3.1 27 | 'hdlr box': 'name' field shall be null-terminated. 28 | 29 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-ipma-flags.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | [isobmff][Rule #7] Warning: 'ipma' flags should be equal to 0 unless there are more than 127 properties in the ItemPropertyContainerBox (found 4) 9 | 10 | ======================================== 11 | [isobmff] 0 error(s), 1 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [isobmff][Rule #7] Section 8.11.14.1 17 | ItemPropertyContainerBox: flags should be equal to 0 unless there are more than 18 | 127 properties in the ItemPropertyContainerBox 19 | 20 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-ipma-version.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | [isobmff][Rule #2] Error: Data offset overflow for Item_ID=1: offset is 437 (pos=286,len=151) while file size is 278 9 | [isobmff][Rule #8] Warning: 'ipma' version 0 should be used unless 32-bit item_ID values are needed (Item_IDs = { 1 }) 10 | 11 | ======================================== 12 | [isobmff] 1 error(s), 1 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [isobmff][Rule #2] Section 8.11.3: Item location box 18 | Data offset integrity: check we don't point out of the file. 19 | This is rather a safety check than a formal rule. 20 | 21 | [isobmff][Rule #8] Section 8.11.14.1 22 | ItemPropertyContainerBox: version 0 should be used unless 32-bit item_ID values 23 | are needed 24 | 25 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-ipma.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | [isobmff][Rule #5] Error: Each ItemPropertyAssociationBox shall be ordered by increasing item_ID (1, last=2) 9 | [isobmff][Rule #5] Error: Each ItemPropertyAssociationBox shall be ordered by increasing item_ID (1, last=1) 10 | [isobmff][Rule #5] Error: There shall be at most one occurrence of a given item_ID but item_ID=1 found several times 11 | [isobmff][Rule #17] Error: 'iinf box' entry: previous item_ID(2) shall be less than current(1) 12 | 13 | ======================================== 14 | [isobmff] 4 error(s), 0 warning(s). 15 | ======================================== 16 | 17 | ===== Involved rules descriptions: 18 | 19 | [isobmff][Rule #5] Section 8.11.14.1 20 | Each ItemPropertyAssociationBox shall be ordered by increasing item_ID, 21 | and there shall be at most one occurrence of a given item_ID, in the set of 22 | ItemPropertyAssociationBox boxes 23 | 24 | [isobmff][Rule #17] Section 8.11.6.1 25 | 'iinf box': contains an array of entries, and each entry is formatted as a box. This array 26 | is sorted by increasing item_ID in the entry records. 27 | 28 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-iref-dup.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24)) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | dd "ftyp" 6 | db 0x6D, 0x69, 0x66, 0x31 ; brand(32) ('mif1') 7 | db 0x00, 0x00, 0x00, 0x00 ; version(32) 8 | db 0x6D, 0x69, 0x66, 0x31 ; brand(32) ('mif1') 9 | ftyp_end: 10 | meta_start: 11 | dd BE(meta_end - meta_start) 12 | dd "meta" 13 | db 0x00 ; version(8) 14 | db 0x00, 0x00, 0x00 ; flags(24) 15 | hdlr_start: 16 | dd BE(hdlr_end - hdlr_start) 17 | dd "hdlr" 18 | db 0x00 ; version(8) 19 | db 0x00, 0x00, 0x00 ; flags(24) 20 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 21 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 22 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 23 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 24 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 25 | db 0x00 ; name(8) 26 | hdlr_end: 27 | iref_start: 28 | dd BE(iref_end - iref_start) 29 | dd "iref" 30 | db 0x00 ; version(8) 31 | db 0x00, 0x00, 0x00 ; flags(24) 32 | iref_end: 33 | iref2_start: 34 | dd BE(iref2_end - iref2_start) 35 | dd "iref" 36 | db 0x00 ; version(8) 37 | db 0x00, 0x00, 0x00 ; flags(24) 38 | iref2_end: 39 | meta_end: 40 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-iref-dup.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | [isobmff][Rule #4] Error: There shall be zero or one 'iref' box per MetaBox, found 2 9 | [isobmff][Rule #11] Error: Wrong arity for boxes { iref } in parents { meta }: expected in range [0-1], found 2 10 | 11 | ======================================== 12 | [isobmff] 2 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [isobmff][Rule #4] Section 8.11.12.1 18 | Zero or one 'iref' box per MetaBox 19 | 20 | [isobmff][Rule #11] Table 1: box structure and arity 21 | This is rather a safety check than a formal rule. 22 | 23 | -------------------------------------------------------------------------------- /tests/isobmff/invalid-track-identifiers.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | [isobmff][Rule #13] Error: Found non-unique track identifier 2 9 | 10 | ======================================== 11 | [isobmff] 1 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [isobmff][Rule #13] Section 6.1.4 17 | The track identifiers used in an ISO file are unique within that file; 18 | no two tracks shall use the same identifier. 19 | 20 | -------------------------------------------------------------------------------- /tests/isobmff/valid-box.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | dd "ftyp" 6 | db 0x68, 0x65, 0x69, 0x63 ; "major_brand" 7 | db 0x0, 0x0, 0x0, 0x0 ; "minor_version" 8 | db 0x6D, 0x69, 0x66, 0x31 ; "compatible_brand" 9 | db 0x68, 0x65, 0x69, 0x63 ; "compatible_brand" 10 | ftyp_end: 11 | 12 | aaaa_start: 13 | dd BE(aaaa_end - aaaa_start) 14 | db "aaaa" 15 | aaaa_end: 16 | -------------------------------------------------------------------------------- /tests/isobmff/valid-box.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | ======================================== 9 | [isobmff] No errors. 10 | ======================================== 11 | 12 | -------------------------------------------------------------------------------- /tests/isobmff/valid-track-identifiers.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | ======================================== 9 | [isobmff] No errors. 10 | ======================================== 11 | 12 | -------------------------------------------------------------------------------- /tests/isobmff/valid-zero-size.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24)) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | dd "ftyp" 6 | db 0x61, 0x76, 0x69, 0x66 ; brand(32) ('avif') 7 | db 0x00, 0x00, 0x00, 0x00 ; version(32) 8 | db 0x61, 0x76, 0x69, 0x66 ; compatible_brand(32) ('avif') 9 | ftyp_end: 10 | meta_start: 11 | dd 0 12 | dd "meta" 13 | db 0x00 ; version(8) 14 | db 0x00, 0x00, 0x00 ; flags(24) 15 | 16 | hdlr_start: 17 | dd BE(hdlr_end - hdlr_start) 18 | dd "hdlr" 19 | db 0x00 ; version(8) 20 | db 0x00, 0x00, 0x00 ; flags(24) 21 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 22 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 23 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 24 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 26 | db 0x00 ; name(8) 27 | hdlr_end: 28 | meta_end: 29 | 30 | ; vim: syntax=nasm 31 | -------------------------------------------------------------------------------- /tests/isobmff/valid-zero-size.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | isobmff validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: ISO Base Media File Format 6 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 7 | 8 | ======================================== 9 | [isobmff] No errors. 10 | ======================================== 11 | 12 | -------------------------------------------------------------------------------- /tests/miaf/invalid-alpha-track-composition-times.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | [miaf][Rule #24] Error: Composition times for trackId=1 different from alpha plane trackId=2 9 | [miaf][Rule #26] Error: Found 1 (ItemIds={3}) 'pixi' associated for 2 displayable (not hidden) images (ItemIds={3,4}) 10 | 11 | ======================================== 12 | [miaf] 2 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [miaf][Rule #24] Section 7.4.6 18 | for every sample of the master image sequence or video track, there shall be a 19 | sample of the alpha plane track with the same composition time. 20 | 21 | [miaf][Rule #26] Section 7.3.6.6 22 | The pixel information property shall be associated with every image that is 23 | displayable (not hidden) 24 | 25 | +--------------------------------------+ 26 | | heif validation | 27 | +--------------------------------------+ 28 | 29 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 30 | 31 | ======================================== 32 | [heif] No errors. 33 | ======================================== 34 | 35 | +--------------------------------------+ 36 | | isobmff validation | 37 | +--------------------------------------+ 38 | 39 | Specification description: ISO Base Media File Format 40 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 41 | 42 | ======================================== 43 | [isobmff] No errors. 44 | ======================================== 45 | 46 | -------------------------------------------------------------------------------- /tests/miaf/invalid-apple-transformation-order.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | [miaf][Rule #27] Error: Item_ID=1 property: expecting "imir" ({ clap irot imir }), got "clap" ({ irot clap }) 9 | 10 | ======================================== 11 | [miaf] 1 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [miaf][Rule #27] Section 7.3.6.7 17 | [Transformative properties][if used] shall be indicated to be applied in the 18 | following order: clean aperture first, then rotation, then mirror. 19 | 20 | +--------------------------------------+ 21 | | heif validation | 22 | +--------------------------------------+ 23 | 24 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 25 | 26 | ======================================== 27 | [heif] No errors. 28 | ======================================== 29 | 30 | +--------------------------------------+ 31 | | isobmff validation | 32 | +--------------------------------------+ 33 | 34 | Specification description: ISO Base Media File Format 35 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 36 | 37 | ======================================== 38 | [isobmff] No errors. 39 | ======================================== 40 | 41 | -------------------------------------------------------------------------------- /tests/miaf/invalid-data-reference-index.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | db "pitm" 34 | dd BE(0) 35 | db 0xaa, 0xbb 36 | pitm_end: 37 | 38 | iinf_start: 39 | dd BE(iinf_end - iinf_start) 40 | db "iinf" 41 | dd BE(0) 42 | db 0x00, 0x00 43 | iinf_end: 44 | 45 | iloc_start: 46 | dd BE(iloc_end - iloc_start) 47 | db "iloc" 48 | dd BE(0x01000000) 49 | dd BE(1) ; 1 item 50 | dd BE(0) ; construction_method 51 | db 0, 1 ; invalid data_reference_index 52 | dw BE(0) 53 | iloc_end: 54 | 55 | iref_start: 56 | dd BE(iref_end - iref_start) 57 | db "iref" 58 | dd BE(0) 59 | iref_end: 60 | 61 | iprp_start: 62 | dd BE(iprp_end - iprp_start) 63 | db "iprp" 64 | ipco_start: 65 | dd BE(ipco_end - ipco_start) 66 | db "ipco" 67 | ispe_start: 68 | dd BE(ispe_end - ispe_start) 69 | db "ispe" 70 | dd 0, 0, 0 71 | ispe_end: 72 | ipco_end: 73 | iprp_end: 74 | 75 | meta_end: 76 | 77 | ; vim: syntax=nasm 78 | -------------------------------------------------------------------------------- /tests/miaf/invalid-dref.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | dinf_start: 32 | dd BE(dinf_end - dinf_start) 33 | db "dinf" 34 | dref_start: 35 | dd BE(dref_end - dref_start) 36 | db "dref" 37 | dd BE(0) 38 | dd BE(1) ; 1 entry 39 | url_start: 40 | dd BE(url_end - url_start) 41 | db "url " 42 | dd BE(0) ; invalid: not in the same file 43 | db 0x6a, 0x0 ; fake URL 44 | url_end: 45 | dref_end: 46 | dinf_end: 47 | 48 | pitm_start: 49 | dd BE(pitm_end - pitm_start) 50 | db "pitm" 51 | dd BE(0) 52 | db 0x00, 0x00 53 | pitm_end: 54 | 55 | iinf_start: 56 | dd BE(iinf_end - iinf_start) 57 | db "iinf" 58 | dd BE(0) 59 | db 0x00, 0x00 60 | iinf_end: 61 | 62 | iprp_start: 63 | dd BE(iprp_end - iprp_start) 64 | db "iprp" 65 | ipco_start: 66 | dd BE(ipco_end - ipco_start) 67 | db "ipco" 68 | ispe_start: 69 | dd BE(ispe_end - ispe_start) 70 | db "ispe" 71 | dd 0, 0, 0 72 | ispe_end: 73 | ipco_end: 74 | iprp_end: 75 | 76 | meta_end: 77 | 78 | ; vim: syntax=nasm 79 | -------------------------------------------------------------------------------- /tests/miaf/invalid-empty-meta.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | iprp_start: 19 | dd BE(iprp_end - iprp_start) 20 | db "iprp" 21 | ipco_start: 22 | dd BE(ipco_end - ipco_start) 23 | db "ipco" 24 | ispe_start: 25 | dd BE(ispe_end - ispe_start) 26 | db "ispe" 27 | dd 0, 0, 0 28 | ispe_end: 29 | ipco_end: 30 | iprp_end: 31 | 32 | meta_end: 33 | 34 | ; vim: syntax=nasm 35 | -------------------------------------------------------------------------------- /tests/miaf/invalid-exif.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | [miaf][Rule #8] Error: [Exif] itemID=2: offset=1 belongs to box "ftyp": expecting "mdat" 9 | [miaf][Rule #8] Error: [Exif] itemID=2: offset=1 belongs to box "ftyp": expecting "mdat" 10 | 11 | ======================================== 12 | [miaf] 2 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [miaf][Rule #8] Section 7.2.1.13 18 | Exif and XMP metadata shall also be in a MediaDataBox. 19 | 20 | +--------------------------------------+ 21 | | heif validation | 22 | +--------------------------------------+ 23 | 24 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 25 | 26 | ======================================== 27 | [heif] No errors. 28 | ======================================== 29 | 30 | +--------------------------------------+ 31 | | isobmff validation | 32 | +--------------------------------------+ 33 | 34 | Specification description: ISO Base Media File Format 35 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 36 | 37 | [isobmff][Rule #2] Error: Data offset 1 belongs to box "ftyp": expecting "mdat" or "idat" 38 | [isobmff][Rule #2] Error: Data offset 1 belongs to box "ftyp": expecting "mdat" or "idat" 39 | 40 | ======================================== 41 | [isobmff] 2 error(s), 0 warning(s). 42 | ======================================== 43 | 44 | ===== Involved rules descriptions: 45 | 46 | [isobmff][Rule #2] Section 8.11.3: Item location box 47 | Data offset integrity: check we don't point out of the file. 48 | This is rather a safety check than a formal rule. 49 | 50 | -------------------------------------------------------------------------------- /tests/miaf/invalid-ftyp-mif1-only.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | db "pitm" 34 | dd BE(0) 35 | db 0x00, 0x00 36 | pitm_end: 37 | 38 | iinf_start: 39 | dd BE(iinf_end - iinf_start) 40 | db "iinf" 41 | dd BE(0) 42 | db 0x00, 0x00 43 | iinf_end: 44 | 45 | iprp_start: 46 | dd BE(iprp_end - iprp_start) 47 | db "iprp" 48 | ipco_start: 49 | dd BE(ipco_end - ipco_start) 50 | db "ipco" 51 | ispe_start: 52 | dd BE(ispe_end - ispe_start) 53 | db "ispe" 54 | dd 0, 0, 0 55 | ispe_end: 56 | ipco_end: 57 | iprp_end: 58 | 59 | meta_end: 60 | -------------------------------------------------------------------------------- /tests/miaf/invalid-hdlr-not-first-in-meta.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | dinf_start: 19 | dd BE(dinf_end - dinf_start) 20 | db "dinf" 21 | dinf_end: 22 | 23 | iinf_start: 24 | dd BE(iinf_end - iinf_start) 25 | db "iinf" 26 | dd BE(0) 27 | db 0x00, 0x00 28 | iinf_end: 29 | 30 | hdlr_start: 31 | dd BE(hdlr_end - hdlr_start) 32 | db "hdlr" 33 | db 0x00 ; version(8) 34 | db 0x00, 0x00, 0x00 ; flags(24) 35 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 36 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 37 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 38 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 39 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 40 | db 0x00 ; name(8) 41 | hdlr_end: 42 | 43 | pitm_start: 44 | dd BE(pitm_end - pitm_start) 45 | db "pitm" 46 | dd BE(0) 47 | db 0x00, 0x00 48 | pitm_end: 49 | 50 | iprp_start: 51 | dd BE(iprp_end - iprp_start) 52 | db "iprp" 53 | ipco_start: 54 | dd BE(ipco_end - ipco_start) 55 | db "ipco" 56 | ispe_start: 57 | dd BE(ispe_end - ispe_start) 58 | db "ispe" 59 | dd 0, 0, 0 60 | ispe_end: 61 | ipco_end: 62 | iprp_end: 63 | 64 | meta_end: 65 | 66 | ; vim: syntax=nasm 67 | -------------------------------------------------------------------------------- /tests/miaf/invalid-hdlr-not-pict.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db "dumy" ; handler_type(32) ('dumy') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | db "pitm" 34 | dd BE(0) 35 | db 0x00, 0x00 36 | pitm_end: 37 | 38 | iinf_start: 39 | dd BE(iinf_end - iinf_start) 40 | db "iinf" 41 | dd BE(0) 42 | db 0x00, 0x00 43 | iinf_end: 44 | 45 | iprp_start: 46 | dd BE(iprp_end - iprp_start) 47 | db "iprp" 48 | ipco_start: 49 | dd BE(ipco_end - ipco_start) 50 | db "ipco" 51 | ispe_start: 52 | dd BE(ispe_end - ispe_start) 53 | db "ispe" 54 | dd 0, 0, 0 55 | ispe_end: 56 | ipco_end: 57 | iprp_end: 58 | 59 | meta_end: 60 | 61 | ; vim: syntax=nasm 62 | -------------------------------------------------------------------------------- /tests/miaf/invalid-ipco.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | db "pitm" 34 | dd BE(0) 35 | db 0x00, 0x00 36 | pitm_end: 37 | 38 | iinf_start: 39 | dd BE(iinf_end - iinf_start) 40 | db "iinf" 41 | dd BE(0) 42 | db 0x00, 0x00 43 | iinf_end: 44 | 45 | iprp_start: 46 | dd BE(iprp_end - iprp_start) 47 | db "iprp" 48 | ipco_start: 49 | dd BE(ipco_end - ipco_start) 50 | db "ipco" 51 | pasp_start: 52 | dd BE(pasp_end - pasp_start) 53 | dd "pasp" 54 | db 0x00, 0x00, 0x00, 0x02 ; hSpacing(32) 55 | db 0x00, 0x00, 0x00, 0x01 ; vSpacing(32) 56 | pasp_end: 57 | ispe_start: 58 | dd BE(ispe_end - ispe_start) 59 | db "ispe" 60 | dd 0, 0, 0 61 | ispe_end: 62 | ipco_end: 63 | iprp_end: 64 | 65 | meta_end: 66 | 67 | ; vim: syntax=nasm 68 | -------------------------------------------------------------------------------- /tests/miaf/invalid-ispe-missing.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | [miaf][Rule #10] Error: [ItemID=1] MIAF missing Image spatial extents property 9 | 10 | ======================================== 11 | [miaf] 1 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [miaf][Rule #10] Section 7.3.6.3 17 | Every image item shall be associated with a Image spatial extents property 18 | 19 | +--------------------------------------+ 20 | | heif validation | 21 | +--------------------------------------+ 22 | 23 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 24 | 25 | [heif][Rule #11] Error: Item ID=1: missing Image spatial extents property 26 | [heif][Rule #32] Error: 'mif1' brand: this file shall conform to HEIF section 6, check the other errors for details 27 | 28 | ======================================== 29 | [heif] 2 error(s), 0 warning(s). 30 | ======================================== 31 | 32 | ===== Involved rules descriptions: 33 | 34 | [heif][Rule #11] Section 6.5.3.1 35 | Every image item shall be associated with one [image spatial extents property], 36 | prior to the association of all transformative properties. 37 | 38 | [heif][Rule #32] Section 10.2 39 | when a brand specified in 10.2 is among the compatible brands of a file, 40 | the requirements specified in Clause 6 shall be obeyed 41 | 42 | +--------------------------------------+ 43 | | isobmff validation | 44 | +--------------------------------------+ 45 | 46 | Specification description: ISO Base Media File Format 47 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 48 | 49 | ======================================== 50 | [isobmff] No errors. 51 | ======================================== 52 | 53 | -------------------------------------------------------------------------------- /tests/miaf/invalid-meta-infe-protected.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | db "pitm" 34 | dd BE(0) 35 | db 0xaa, 0xbb 36 | pitm_end: 37 | 38 | iinf_start: 39 | dd BE(iinf_end - iinf_start) 40 | db "iinf" 41 | dd BE(0) 42 | db 0x00, 0x01 43 | infe_start: 44 | dd BE(infe_end - infe_start) 45 | db "infe" 46 | dd BE(0) 47 | db 0xaa, 0xbb 48 | db 0x00, 0x01 ; protected item 49 | db 0x00 50 | db 0x00 51 | db 0x00 52 | infe_end: 53 | iinf_end: 54 | 55 | iprp_start: 56 | dd BE(iprp_end - iprp_start) 57 | db "iprp" 58 | ipco_start: 59 | dd BE(ipco_end - ipco_start) 60 | db "ipco" 61 | ispe_start: 62 | dd BE(ispe_end - ispe_start) 63 | db "ispe" 64 | dd 0, 0, 0 65 | ispe_end: 66 | pixi_start: 67 | dd BE(pixi_end - pixi_start) 68 | db "pixi" 69 | pixi_end: 70 | ipco_end: 71 | ipma_start: 72 | dd BE(ipma_end - ipma_start) 73 | dd "ipma" 74 | db 0x00 ; "version(8)" 75 | db 0x00, 0x00, 0x00 ; "flags(24)" 76 | db 0x00, 0x00, 0x00, 0x01 ; "entry_count(32)" 77 | db 0xaa, 0xbb ; "item_ID(16)" 78 | db 0x02 ; "association_count(8)" 79 | db 0x81 ; "essential(1)" "property_index(7)" 80 | db 0x82 ; "essential(1)" "property_index(7)" 81 | ipma_end: 82 | iprp_end: 83 | 84 | meta_end: 85 | 86 | ; vim: syntax=nasm 87 | -------------------------------------------------------------------------------- /tests/miaf/invalid-meta-ipro.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | db "pitm" 34 | dd BE(0) 35 | db 0x00, 0x00 36 | pitm_end: 37 | 38 | ipro_start: 39 | dd BE(ipro_end - ipro_start) 40 | db "ipro" 41 | ipro_end: 42 | 43 | iinf_start: 44 | dd BE(iinf_end - iinf_start) 45 | db "iinf" 46 | dd BE(0) 47 | db 0x00, 0x00 48 | iinf_end: 49 | 50 | iprp_start: 51 | dd BE(iprp_end - iprp_start) 52 | db "iprp" 53 | ipco_start: 54 | dd BE(ipco_end - ipco_start) 55 | db "ipco" 56 | ispe_start: 57 | dd BE(ispe_end - ispe_start) 58 | db "ispe" 59 | dd 0, 0, 0 60 | ispe_end: 61 | ipco_end: 62 | iprp_end: 63 | 64 | meta_end: 65 | 66 | ; vim: syntax=nasm 67 | -------------------------------------------------------------------------------- /tests/miaf/invalid-meta-xml-bxml.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | dinf_start: 19 | dd BE(dinf_end - dinf_start) 20 | db "dinf" 21 | dinf_end: 22 | 23 | pitm_start: 24 | dd BE(pitm_end - pitm_start) 25 | db "pitm" 26 | dd BE(0) 27 | db 0x00, 0x00 28 | pitm_end: 29 | 30 | iinf_start: 31 | dd BE(iinf_end - iinf_start) 32 | db "iinf" 33 | dd BE(0) 34 | db 0x00, 0x00 35 | iinf_end: 36 | 37 | xml_start: 38 | dd BE(xml_end - xml_start) 39 | db "xml " 40 | xml_end: 41 | 42 | bxml_start: 43 | dd BE(bxml_end - bxml_start) 44 | db "bxml" 45 | bxml_end: 46 | 47 | iprp_start: 48 | dd BE(iprp_end - iprp_start) 49 | db "iprp" 50 | ipco_start: 51 | dd BE(ipco_end - ipco_start) 52 | db "ipco" 53 | ispe_start: 54 | dd BE(ispe_end - ispe_start) 55 | db "ispe" 56 | dd 0, 0, 0 57 | ispe_end: 58 | ipco_end: 59 | iprp_end: 60 | 61 | meta_end: 62 | 63 | ; vim: syntax=nasm 64 | -------------------------------------------------------------------------------- /tests/miaf/invalid-no-ftyp.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | meta_start: 4 | dd BE(meta_end - meta_start) 5 | db "meta" 6 | dd BE(0) 7 | 8 | hdlr_start: 9 | dd BE(hdlr_end - hdlr_start) 10 | db "hdlr" 11 | db 0x00 ; version(8) 12 | db 0x00, 0x00, 0x00 ; flags(24) 13 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 14 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 15 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 16 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 17 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 18 | db 0x00 ; name(8) 19 | hdlr_end: 20 | 21 | pitm_start: 22 | dd BE(pitm_end - pitm_start) 23 | db "pitm" 24 | dd BE(0) 25 | db 0x00, 0x00 26 | pitm_end: 27 | 28 | iinf_start: 29 | dd BE(iinf_end - iinf_start) 30 | db "iinf" 31 | dd BE(0) 32 | db 0x00, 0x00 33 | iinf_end: 34 | 35 | iprp_start: 36 | dd BE(iprp_end - iprp_start) 37 | db "iprp" 38 | ipco_start: 39 | dd BE(ipco_end - ipco_start) 40 | db "ipco" 41 | ispe_start: 42 | dd BE(ispe_end - ispe_start) 43 | db "ispe" 44 | dd 0, 0, 0 45 | ispe_end: 46 | ipco_end: 47 | iprp_end: 48 | 49 | meta_end: 50 | -------------------------------------------------------------------------------- /tests/miaf/invalid-no-hdlr-in-meta.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | dinf_start: 19 | dd BE(dinf_end - dinf_start) 20 | db "dinf" 21 | dinf_end: 22 | 23 | pitm_start: 24 | dd BE(pitm_end - pitm_start) 25 | db "pitm" 26 | dd BE(0) 27 | db 0x00, 0x00 28 | pitm_end: 29 | 30 | iinf_start: 31 | dd BE(iinf_end - iinf_start) 32 | db "iinf" 33 | dd BE(0) 34 | db 0x00, 0x00 35 | iinf_end: 36 | 37 | iprp_start: 38 | dd BE(iprp_end - iprp_start) 39 | db "iprp" 40 | ipco_start: 41 | dd BE(ipco_end - ipco_start) 42 | db "ipco" 43 | ispe_start: 44 | dd BE(ispe_end - ispe_start) 45 | db "ispe" 46 | dd 0, 0, 0 47 | ispe_end: 48 | ipco_end: 49 | iprp_end: 50 | 51 | meta_end: 52 | 53 | ; vim: syntax=nasm 54 | -------------------------------------------------------------------------------- /tests/miaf/invalid-no-meta.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | ; vim: syntax=nasm 14 | -------------------------------------------------------------------------------- /tests/miaf/invalid-pixi-displayable.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | [miaf][Rule #24] Error: Composition times for trackId=1 different from alpha plane trackId=2 9 | [miaf][Rule #26] Error: Found 1 (ItemIds={3}) 'pixi' associated for 2 displayable (not hidden) images (ItemIds={3,4}) 10 | 11 | ======================================== 12 | [miaf] 2 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [miaf][Rule #24] Section 7.4.6 18 | for every sample of the master image sequence or video track, there shall be a 19 | sample of the alpha plane track with the same composition time. 20 | 21 | [miaf][Rule #26] Section 7.3.6.6 22 | The pixel information property shall be associated with every image that is 23 | displayable (not hidden) 24 | 25 | +--------------------------------------+ 26 | | heif validation | 27 | +--------------------------------------+ 28 | 29 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 30 | 31 | ======================================== 32 | [heif] No errors. 33 | ======================================== 34 | 35 | +--------------------------------------+ 36 | | isobmff validation | 37 | +--------------------------------------+ 38 | 39 | Specification description: ISO Base Media File Format 40 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 41 | 42 | ======================================== 43 | [isobmff] No errors. 44 | ======================================== 45 | 46 | -------------------------------------------------------------------------------- /tests/miaf/invalid-pixi-missing.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | [miaf][Rule #10] Error: [ItemID=1] MIAF missing Image spatial extents property 9 | [miaf][Rule #26] Error: Found no 'pixi' associated for 1 displayable (not hidden) images (ItemIds={1}) 10 | 11 | ======================================== 12 | [miaf] 2 error(s), 0 warning(s). 13 | ======================================== 14 | 15 | ===== Involved rules descriptions: 16 | 17 | [miaf][Rule #10] Section 7.3.6.3 18 | Every image item shall be associated with a Image spatial extents property 19 | 20 | [miaf][Rule #26] Section 7.3.6.6 21 | The pixel information property shall be associated with every image that is 22 | displayable (not hidden) 23 | 24 | +--------------------------------------+ 25 | | heif validation | 26 | +--------------------------------------+ 27 | 28 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 29 | 30 | ======================================== 31 | [heif] No errors. 32 | ======================================== 33 | 34 | +--------------------------------------+ 35 | | isobmff validation | 36 | +--------------------------------------+ 37 | 38 | Specification description: ISO Base Media File Format 39 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 40 | 41 | ======================================== 42 | [isobmff] No errors. 43 | ======================================== 44 | 45 | -------------------------------------------------------------------------------- /tests/miaf/invalid-primary-item.asm: -------------------------------------------------------------------------------- 1 | %define BE(a) ( ((((a)>>24)&0xFF) << 0) + ((((a)>>16)&0xFF) << 8) + ((((a)>>8)&0xFF) << 16) + ((((a)>>0)&0xFF) << 24) ) 2 | 3 | ftyp_start: 4 | dd BE(ftyp_end - ftyp_start) 5 | db "ftyp" 6 | 7 | db "isom" 8 | dd BE(0x00) 9 | db "mif1", "miaf", "isom" 10 | 11 | ftyp_end: 12 | 13 | meta_start: 14 | dd BE(meta_end - meta_start) 15 | db "meta" 16 | dd BE(0) 17 | 18 | hdlr_start: 19 | dd BE(hdlr_end - hdlr_start) 20 | db "hdlr" 21 | db 0x00 ; version(8) 22 | db 0x00, 0x00, 0x00 ; flags(24) 23 | db 0x00, 0x00, 0x00, 0x00 ; pre_defined(32) 24 | db 0x70, 0x69, 0x63, 0x74 ; handler_type(32) ('pict') 25 | db 0x00, 0x00, 0x00, 0x00 ; reserved1(32) 26 | db 0x00, 0x00, 0x00, 0x00 ; reserved2(32) 27 | db 0x00, 0x00, 0x00, 0x00 ; reserved3(32) 28 | db 0x00 ; name(8) 29 | hdlr_end: 30 | 31 | pitm_start: 32 | dd BE(pitm_end - pitm_start) 33 | db "pitm" 34 | dd BE(0) 35 | db 0xaa, 0xbb 36 | pitm_end: 37 | 38 | iloc_start: 39 | dd BE(iloc_end - iloc_start) 40 | db "iloc" 41 | dd BE(0x01000000) 42 | dd BE(1) ; 1 item 43 | dd BE(0) ; construction_method(1) 44 | dw 0 45 | dw 0 46 | iloc_end: 47 | 48 | iref_start: 49 | dd BE(iref_end - iref_start) 50 | db "iref" 51 | db 0x01, 0x00, 0x00, 0x00 ; version=1 52 | thmb_start: 53 | dd BE(thmb_end - thmb_start) 54 | dd "thmb" 55 | dd BE(0xaabb) ; from_item_ID 56 | db 0x00, 0x01 ; reference_count 57 | dd BE(0) ; to_item_ID 58 | thmb_end: 59 | auxl_start: 60 | dd BE(auxl_end - auxl_start) 61 | dd "auxl" 62 | dd BE(0xaabb) ; from_item_ID 63 | db 0x00, 0x01 ; reference_count 64 | dd BE(0) ; to_item_ID 65 | auxl_end: 66 | iref_end: 67 | 68 | iinf_start: 69 | dd BE(iinf_end - iinf_start) 70 | db "iinf" 71 | dd BE(0) 72 | db 0x00, 0x00 73 | iinf_end: 74 | 75 | iprp_start: 76 | dd BE(iprp_end - iprp_start) 77 | db "iprp" 78 | ipco_start: 79 | dd BE(ipco_end - ipco_start) 80 | db "ipco" 81 | ispe_start: 82 | dd BE(ispe_end - ispe_start) 83 | db "ispe" 84 | dd 0, 0, 0 85 | ispe_end: 86 | ipco_end: 87 | iprp_end: 88 | 89 | meta_end: 90 | 91 | ; vim: syntax=nasm 92 | -------------------------------------------------------------------------------- /tests/miaf/invalid-xmp.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | [miaf][Rule #8] Error: [XMP ] itemID=2: offset=1 belongs to box "ftyp": expecting "mdat" 9 | 10 | ======================================== 11 | [miaf] 1 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [miaf][Rule #8] Section 7.2.1.13 17 | Exif and XMP metadata shall also be in a MediaDataBox. 18 | 19 | +--------------------------------------+ 20 | | heif validation | 21 | +--------------------------------------+ 22 | 23 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 24 | 25 | ======================================== 26 | [heif] No errors. 27 | ======================================== 28 | 29 | +--------------------------------------+ 30 | | isobmff validation | 31 | +--------------------------------------+ 32 | 33 | Specification description: ISO Base Media File Format 34 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 35 | 36 | [isobmff][Rule #2] Error: Data offset 1 belongs to box "ftyp": expecting "mdat" or "idat" 37 | 38 | ======================================== 39 | [isobmff] 1 error(s), 0 warning(s). 40 | ======================================== 41 | 42 | ===== Involved rules descriptions: 43 | 44 | [isobmff][Rule #2] Section 8.11.3: Item location box 45 | Data offset integrity: check we don't point out of the file. 46 | This is rather a safety check than a formal rule. 47 | 48 | -------------------------------------------------------------------------------- /tests/miaf/valid-alpha-track-composition-times.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | [miaf][Rule #26] Error: Found 1 (ItemIds={3}) 'pixi' associated for 2 displayable (not hidden) images (ItemIds={3,4}) 9 | 10 | ======================================== 11 | [miaf] 1 error(s), 0 warning(s). 12 | ======================================== 13 | 14 | ===== Involved rules descriptions: 15 | 16 | [miaf][Rule #26] Section 7.3.6.6 17 | The pixel information property shall be associated with every image that is 18 | displayable (not hidden) 19 | 20 | +--------------------------------------+ 21 | | heif validation | 22 | +--------------------------------------+ 23 | 24 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 25 | 26 | ======================================== 27 | [heif] No errors. 28 | ======================================== 29 | 30 | +--------------------------------------+ 31 | | isobmff validation | 32 | +--------------------------------------+ 33 | 34 | Specification description: ISO Base Media File Format 35 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 36 | 37 | ======================================== 38 | [isobmff] No errors. 39 | ======================================== 40 | 41 | -------------------------------------------------------------------------------- /tests/miaf/valid-audio-aac.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-audio-twos.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-clli-mdcv.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-colours-av1-420.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-colours-av1-422.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-colours-av1-444.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-colours-hevc-420.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-colours-hevc-422.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-colours-hevc-444.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-colours-hevc-monochrome.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-construction_mode_1.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-derivation-iden.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-edts.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-exif.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-extra-brands.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-extra-free-boxes.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-grid-dimensions.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-infe-unprotected.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-minimal.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-multiple-tracks-duration.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-num-pixels.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-primary-item.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-tkhd_transformations.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-transformation-order-apple.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-transformation-order-gpac.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-unknown-box.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | -------------------------------------------------------------------------------- /tests/miaf/valid-xmp.ref: -------------------------------------------------------------------------------- 1 | +--------------------------------------+ 2 | | miaf validation | 3 | +--------------------------------------+ 4 | 5 | Specification description: MIAF (Multi-Image Application Format) 6 | MPEG-A part 22 - ISO/IEC 23000-22 - w18260 FDIS - Jan 2019 7 | 8 | ======================================== 9 | [miaf] No errors. 10 | ======================================== 11 | 12 | +--------------------------------------+ 13 | | heif validation | 14 | +--------------------------------------+ 15 | 16 | Specification description: HEIF - ISO/IEC 23008-12 - 2nd Edition N18310 17 | 18 | ======================================== 19 | [heif] No errors. 20 | ======================================== 21 | 22 | +--------------------------------------+ 23 | | isobmff validation | 24 | +--------------------------------------+ 25 | 26 | Specification description: ISO Base Media File Format 27 | MPEG-4 part 12 - ISO/IEC 14496-12 - m17277 (6th+FDAM1+FDAM2+COR1-R4) 28 | 29 | ======================================== 30 | [isobmff] No errors. 31 | ======================================== 32 | 33 | --------------------------------------------------------------------------------