Skip to content

Commit

Permalink
Merge pull request #116 from jwcullen/add_is_valid_to_decode
Browse files Browse the repository at this point in the history
V1.0.0-errata updates.
  • Loading branch information
sunghee-hwang authored Aug 26, 2024
2 parents 98b38f9 + 1961a67 commit 2ca376c
Show file tree
Hide file tree
Showing 201 changed files with 1,147 additions and 199 deletions.
2 changes: 1 addition & 1 deletion proto/codec_config.proto
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ message AacDecoderConfig {
optional uint32 object_type_indication = 1 [default = 0x40];
optional uint32 stream_type = 2 [default = 5];
optional bool upstream = 3 [default = false];
optional bool reserved = 4;
optional bool reserved = 4 [default = true]; // As per ISO 14496-1:2010.
optional uint32 buffer_size_db = 5;
optional uint32 max_bitrate = 6;
optional uint32 average_bit_rate = 7;
Expand Down
20 changes: 20 additions & 0 deletions proto/test_vector_metadata.proto
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,29 @@ message TestVectorMetadata {
// Prefix of the output file names. Leave empty to skip writing to output
// files.
optional string file_name_prefix = 2;

// TODO(b/269708630): Rename `is_valid` to `is_valid_to_encode`.
// `true` when all mixes are valid to encode. Mixes may be invalid if they
// contain any mixes that use certain reserved values, or if they exercise any
// features which are not supported by the encoder.
optional bool is_valid = 3;
// `true` when a compliant decoder would decode at least one valid mix. Some
// other mixes may be invalid or use reserved values which may be ignored.
optional bool is_valid_to_decode = 14 [default = true];
optional string mp4_fixed_timestamp = 4;
reserved 5;
// Tags to identify the repository this test vector belongs to. A repository
// could be a git branch or it could refer to some other way to organize a
// test suite.
//
// Some canonical tags are used to identify which GitHub branch(es) the test
// vector should be synchronized with.
//
// `github/aomediacodec/libiamf/main`: Used on the `main` branch of
// https://github.com/AOMediaCodec/libiamf
// `github/aomediacodec/libiamf/v1.0.0-errata`: Used on the `v1.0.0-errata`
// branch of https://github.com/AOMediaCodec/libiamf
repeated string test_repository_tags = 15;
repeated string primary_tested_spec_sections = 6;
optional string base_test = 7;
optional int32 ms_per_fragment = 8 [default = 10000];
Expand Down
14 changes: 11 additions & 3 deletions tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,18 @@ several files associated with it.

## .textproto files

These file describe metadata about the test vector.
Theses file describe metadata about the test vector to encode an
[IA Sequence](https://aomediacodec.github.io/iamf/#standalone-ia-sequence).

- `is_valid`: True for conformant bitstreams ("should-pass"). False for
non-conformant bitstreams ("should-fail").
- `is_valid`: True when the encoder can produce an IA Sequence where all mixes
would be understood by a compliant decoder. False when one or more mixes
exercise fields or features which would cause mixes to be ignored.
- `is_valid_to_decode`: True when an IAMF-compliant decoder could decode at
least one mix of the associated IA Sequence ("should-pass"). False when all
mixes are non-conformant and may fail to be decoded ("should-fail"). The
IAMF spec does not specify what happens when requirements are violated; a
robust system may still attempt to process and create output for
"should-fail" tests.
- `human_readable_descriptions`: A short description of what is being tested
and why.
- `mp4_fixed_timestamp`: The timestamp within the MP4 file. Can be safely
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000000_3.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,13 @@ test_vector_metadata {
"not have sufficient `num_samples_to_trim_at_end`."
file_name_prefix: "test_000000_3"
is_valid: false
is_valid_to_decode: false
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-06 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.2/num_samples_to_trim_at_end",
"3.4/IA Sequence Header OBU Syntax and Semantics",
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000002.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"added."
file_name_prefix: "test_000002"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.8/Parameter Block OBU Syntax and Semantics",
"3.8.1/animation_type == STEP",
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000003.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"parameter blocks."
file_name_prefix: "test_000003"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.2/num_samples_to_trim_at_end",
"3.6.2/num_layers",
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000005.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"trimming."
file_name_prefix: "test_000005"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: ["3.2/num_samples_to_trim_at_end"]
base_test: "test_000002"
}
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000006.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"delimiters."
file_name_prefix: "test_000006"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.4/IA Sequence Header OBU Syntax and Semantics",
"3.10/Codec Specific",
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000007.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"case-sensitive and should be lowercase."
file_name_prefix: "test_000007"
is_valid: false
is_valid_to_decode: false
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: ["3.4/ia_code"]
base_test: "test_000005"
}
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000012.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"input wav file to make it shorter."
file_name_prefix: "test_000012"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: ["3.2/num_samples_to_trim_at_end"]
base_test: "test_000005"
}
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000013.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"input wav file to make it shorter."
file_name_prefix: "test_000013"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: ["3.2/num_samples_to_trim_at_end"]
base_test: "test_000005"
}
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000014.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"because `pre_skip` is incorrectly set to 0."
file_name_prefix: "test_000014"
is_valid: false
is_valid_to_decode: false
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.9/Audio Frame OBU Syntax and Semantics",
"3.11.1/pre_skip"
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000015.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"used by any audio element or mix presentation."
file_name_prefix: "test_000015"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: ["3.8/parameter_id"]
base_test: "test_000005"
}
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000016.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,13 @@ test_vector_metadata {
"parameter."
file_name_prefix: "test_000016"
is_valid: false
is_valid_to_decode: false
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.5/num_samples_per_frame",
"3.6.1/param_definition_mode",
Expand Down
10 changes: 8 additions & 2 deletions tests/test_000017.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,18 @@

test_vector_metadata {
human_readable_description:
"A stereo IAMF stream. It is invalid because it has one frame of samples "
"fully trimmed off the end."
"A stereo IAMF stream. It has one frame of samples fully trimmed off the "
"end."
file_name_prefix: "test_000017"
# TODO(b/356905554): Allow encoding fully trimmed frames.
is_valid: false
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.2/num_samples_to_trim_at_end",
"3.5/num_samples_per_frame"
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000018.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"requires the ID to be explicitly listed in the OBU."
file_name_prefix: "test_000018"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: ["3.1/obu_type", "3.9/explicit_audio_substream_id"]
base_test: "test_000005"
}
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000019.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"occuring one after another."
file_name_prefix: "test_000019"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-04-19 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: ["3.8/Parameter Block OBU Syntax and Semantics"]
base_test: "test_000005"
}
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000020.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"500 ms sine wav with a frequency of 1000 Hz."
file_name_prefix: "test_000020"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-05-05 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.5/audio_roll_distance",
"3.9/Audio Frame OBU Syntax and Semantics",
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000021.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"frames."
file_name_prefix: "test_000021"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-05-05 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.5/audio_roll_distance",
"3.9/Audio Frame OBU Syntax and Semantics",
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000022.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"distance is incorrect."
file_name_prefix: "test_000022"
is_valid: false
is_valid_to_decode: false
validate_user_loudness: true
mp4_fixed_timestamp: "2023-05-05 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.5/audio_roll_distance",
"3.9/Audio Frame OBU Syntax and Semantics",
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000023.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"trimmed frames at the start."
file_name_prefix: "test_000023"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-05-05 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.2/num_samples_to_trim_at_start",
"3.9/Audio Frame OBU Syntax and Semantics",
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000024.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"frames."
file_name_prefix: "test_000024"
is_valid: true
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-05-05 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.5/audio_roll_distance",
"3.9/Audio Frame OBU Syntax and Semantics",
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000025.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"version."
file_name_prefix: "test_000025"
is_valid: false
is_valid_to_decode: false
validate_user_loudness: true
mp4_fixed_timestamp: "2023-05-05 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.9/Audio Frame OBU Syntax and Semantics",
"3.11.1/version"
Expand Down
8 changes: 8 additions & 0 deletions tests/test_000026.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,17 @@ test_vector_metadata {
"A stereo IAMF stream encoded using Opus, with an incorrect "
"`output_channel_count`."
file_name_prefix: "test_000026"
# The encoder would not normally encode data with invalid
# `output_channel_count`.
is_valid: false
# A compliant decoder should ignore `output_channel_count`.
is_valid_to_decode: true
validate_user_loudness: true
mp4_fixed_timestamp: "2023-05-05 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.9/Audio Frame OBU Syntax and Semantics",
"3.11.1/output_channel_count"
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000027.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"`output_gain`."
file_name_prefix: "test_000027"
is_valid: false
is_valid_to_decode: false
validate_user_loudness: true
mp4_fixed_timestamp: "2023-05-05 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.9/Audio Frame OBU Syntax and Semantics",
"3.11.1/output_gain"
Expand Down
5 changes: 5 additions & 0 deletions tests/test_000028.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,13 @@ test_vector_metadata {
"`channel_mapping_family`."
file_name_prefix: "test_000028"
is_valid: false
is_valid_to_decode: false
validate_user_loudness: true
mp4_fixed_timestamp: "2023-05-05 00:00:00"
test_repository_tags: [
"github/aomediacodec/libiamf/main",
"github/aomediacodec/libiamf/v1.0.0-errata"
]
primary_tested_spec_sections: [
"3.9/Audio Frame OBU Syntax and Semantics",
"3.11.1/channel_mapping_family"
Expand Down
Loading

0 comments on commit 2ca376c

Please sign in to comment.