Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add several corner case test vectors #114

Merged
merged 4 commits into from
Jul 29, 2024

Conversation

jwcullen
Copy link
Collaborator

This PR syncs to the latest version of protos from AOMediaCodec/iamf-tools and introduces several test vectors based on
https://groups.aomedia.org/g/WG-Storage-and-Transport/message/873.

Many of the new tests exercise the spec by using reserved fields and are intended to ensure decoder gracefully handle bitstreams in a backwards compatible manner (when signaled appropriately).

Comparison files are omitted for some test mixes which exercise reserved features which would affect rendering, but are not defined yet.

jwcullen added 3 commits July 10, 2024 22:23
  - As always some of these have `is_valid = false`.
  - `test_000013`: Uses non-required trimmed samples.
  - `test_000097`: Uses a mono audio element and 32 bit=depth LPCM.
  - `test_000098`: Uses two layers and 32 bit-depth LPCM
  - `test_000116`: Places reserved OBUs at various spots within the bitstream.
  - `test_000117`: Uses `obu_exension_header`.
  - `test_000118`: Has a mix presentation which is valid in the "additional" profile, but not the "primary" profile.
  - `test_000124`: Has two sub-mixes.
  - `test_000125`: Uses a reserved `headphones_rendering_mode`.
  - `test_000126`: Has a reserved loudness layout.
  - `test_000127`: Has a mix presentation with too many audio elements for simple profile.
  - `test_000128`: Has a mix presentation with too many audio elements for base profile.
  - `test_000131`: Contains a loudness layout reserved in simple profile, but not in base-enhanced profile.
  - `test_000500`: Mixed-first order ambisonics using FLAC.
  - `test_000501`: Uses a single reserved OBU.
  - `test_000502`: Has 0 sub-mixes
  - `test_000503`: Uses the reserved fields in `info_type`.
  - `test_000119`: Uses a reserved `codec_id`.
  - `test_000120`: Uses a reserved `audio_element_type`.
  - `test_000121`: Uses a reserved `param_definition_type`.
  - `test_000122`: Uses a reserved `loudspeaker_layout` in the first layer.
  - `test_000123`: Uses 28 channels.
  - `test_000129`: Uses a reserved `loudspeaker_layout` in the second layer.
  - `test_000130`: Uses a reserved `ambisonics_mode`.
  - `test_000132`: Uses fourth-order ambisonics.
  - Generated files based on AOMediaCodec/iamf-tools@02d6318
@yongmin-kwon
Copy link
Collaborator

yongmin-kwon commented Jul 24, 2024

It seems that there is a typo in the human_readable_description of test_000123.textproto file.
Although it says "second Mix Presentation has 7.1.4 Audio Element", actually it has TOA Audio Element and the provided reference file is also TOA signal.
It would be good to modify the content of the description.

@yilun-zhangs
Copy link
Collaborator

@jwcullen
In test_000098.textproto, the human_readable_description describes "A 2-layer IAMF stream encoded using Opus with the last layer , being 5.1 and a 32-bit input wav file."

As I know, libopus dose not suppport 32-bit input, do you think it is necessary to modify this? use ipcm encoding or use 16-bits input?

jwcullen added a commit to AOMediaCodec/iamf-tools that referenced this pull request Jul 29, 2024
  - `test_000123`: Fix editorial typo
 from AOMediaCodec/libiamf#114 (comment).
  - `test_000098`: Address AOMediaCodec/libiamf#114 (comment).
    - Configure to pass through the Opus float API, but still configure it to generate a 16-bit file for output comparison file.

PiperOrigin-RevId: 657332276
Copy link
Collaborator

@tdaede tdaede left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved once Opus float test case is updated.

  - `test_000123`: Fix editorial typo
 from AOMediaCodec#114 (comment).
  - `test_000098`: Address AOMediaCodec#114 (comment).
    - Configure to pass through the Opus float API, but since this is not signaled in the bitstream still generate a 16-bit output comparison file.

  - Generated files based on AOMediaCodec/iamf-tools@3363a86
@tdaede tdaede merged commit e348c8d into AOMediaCodec:main Jul 29, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants