Skip to content

Commit

Permalink
Address some reviewer concerns.
Browse files Browse the repository at this point in the history
  - `test_000123`: Fix editorial typo
 from #114 (comment).
  - `test_000098`: Address #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
  • Loading branch information
jwcullen authored and tdaede committed Jul 29, 2024
1 parent 27e56a6 commit e348c8d
Show file tree
Hide file tree
Showing 9 changed files with 9 additions and 7 deletions.
1 change: 1 addition & 0 deletions proto/codec_config.proto
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ message OpusEncoderMetadata {
optional int32 target_bitrate_per_channel = 1;
optional OpusApplicationFlag application = 2;
optional bool use_float_api = 3 [default = true];
optional float coupling_rate_adjustment = 4 [default = 1.0];
}

message OpusDecoderConfig {
Expand Down
Binary file modified tests/test_000098.iamf
Binary file not shown.
7 changes: 4 additions & 3 deletions tests/test_000098.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@

test_vector_metadata {
human_readable_description:
"A 2-layer IAMF stream encoded using Opus with the last layer "
"being 5.1 and a 32-bit input wav file."
"A 2-layer IAMF stream encoded by normalizing the input 32-bit wav file to "
"the range [-1.0, 1.0] then encoding it with the Opus float API."
file_name_prefix: "test_000098"
is_valid: true
validate_user_loudness: true
Expand All @@ -29,6 +29,7 @@ test_vector_metadata {
"3.11.1/OPUS Specific"
]
base_test: "test_000049"
output_wav_file_bit_depth_override: 16
}

ia_sequence_header_metadata {
Expand All @@ -49,7 +50,7 @@ codec_config_metadata {
opus_encoder_metadata {
target_bitrate_per_channel: 48000
application: APPLICATION_AUDIO
use_float_api: false
use_float_api: true
}
}
}
Expand Down
Binary file modified tests/test_000098_f.mp4
Binary file not shown.
Binary file modified tests/test_000098_rendered_id_42_sub_mix_0_layout_0.wav
Binary file not shown.
Binary file modified tests/test_000098_rendered_id_42_sub_mix_0_layout_1.wav
Binary file not shown.
Binary file modified tests/test_000098_s.mp4
Binary file not shown.
4 changes: 2 additions & 2 deletions tests/test_000123.textproto
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ test_vector_metadata {
human_readable_description:
"A 7.1.4 + TOA IAMF stream encoded using Opus and with two Mix "
"Presentations. The first Mix Presentation uses both Audio Elements. The "
"second Mix Presentation uses only the 7.1.4 Audio Element. The primary "
"second Mix Presentation uses only the TOA Audio Element. The primary "
"profile is set to Base and the additional profile is set to "
" Base-Enhanced."
"Base-Enhanced."
file_name_prefix: "test_000123"
is_valid: true
validate_user_loudness: true
Expand Down
4 changes: 2 additions & 2 deletions tests/test_summary.csv
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
"test_000095","test_000050","3.6/default_w, 3.6.2/channel_audio_layer_config, 3.6.2/loudspeaker_layout == Stereo, 3.6.2/loudspeaker_layout == 3.1.2, 3.6.2/loudspeaker_layout == 7.1.2, 3.6.2/loudspeaker_layout == 7.1.4, 3.6.2/num_layers, 3.7.3/headphones_rendering_mode == 1, 3.7.6/layout_type == BINAURAL, 3.9/Audio Frame OBU Syntax and Semantics, 3.11.1/OPUS Specific, 6/ISOBMFF IAMF Encapsulation, 7/IAMF Processing, 7.3.2/Rendering an Audio Element, 7.3.2.1/Rendering a Channel-Based Audio Element to Loudspeakers, 7.3.2.3/Rendering a Channel-Based Audio Element to Headphones",True,"A 4-layer IAMF stream encoded using Opus with the last layer being 7.1.4 and a binaural layout."
"test_000096","test_000103","3.6.3/ambisonics_mono_config, 3.7.3/headphones_rendering_mode == 1, 3.7.6/layout_type == BINAURAL, 7.3.2.4/Rendering a Scene-Based Audio Element to Headphones, 7.5.1/Loudness Normalization, 7.5.2/Limiter",True,"A third-order ambisonics IAMF stream encoded using `ambisonics_mode` = `MONO` and a binaural layout."
"test_000097","test_000031","3.6.2/loudspeaker_layout == Mono, 3.9/Audio Frame OBU Syntax and Semantics, 3.11.4/sample_size",True,"A mono IAMF stream with a bit-depth of 32."
"test_000098","test_000049","3.6/num_parameters, 3.6.2/channel_audio_layer_config, 3.6.2/loudspeaker_layout == Stereo, 3.6.2/loudspeaker_layout == 5.1, 3.6.2/num_layers, 3.9/Audio Frame OBU Syntax and Semantics, 3.11.1/OPUS Specific",True,"A 2-layer IAMF stream encoded using Opus with the last layer being 5.1 and a 32-bit input wav file."
"test_000098","test_000049","3.6/num_parameters, 3.6.2/channel_audio_layer_config, 3.6.2/loudspeaker_layout == Stereo, 3.6.2/loudspeaker_layout == 5.1, 3.6.2/num_layers, 3.9/Audio Frame OBU Syntax and Semantics, 3.11.1/OPUS Specific",True,"A 2-layer IAMF stream encoded by normalizing the input 32-bit wav file to the range [-1.0, 1.0] then encoding it with the Opus float API."
"test_000100","test_000038","3.6.3/ambisonics_mono_config, 4.1/Simple Profile, 5.1/IA Sequence",True,"A zero-order ambisonics IAMF stream encoded using `ambisonics_mode` = `MONO`."
"test_000101","test_000038","3.6.3/ambisonics_mono_config, 7.5.1/Loudness Normalization, 7.5.2/Limiter",True,"A first-order ambisonics IAMF stream encoded using `ambisonics_mode` = `MONO`."
"test_000102","test_000038","3.6.3/ambisonics_mono_config, 7.5.1/Loudness Normalization, 7.5.2/Limiter",True,"A second-order ambisonics IAMF stream encoded using `ambisonics_mode` = `MONO`."
Expand All @@ -112,7 +112,7 @@
"test_000120","test_000119","3.6/audio_element_type, 4.1/Simple Profile",False,"An invalid IAMF stream. The first mix uses a single stereo audio element. The second mix presentation uses an `audio_element_type` which is reserved in Simple profile."
"test_000121","test_000005","3.6/param_definition_type",True,"A Simple profile IAMF stream which uses a reserved parameter type that must be ignored."
"test_000122","test_000119","3.6.2/loudspeaker_layout, 4.1/Simple Profile",False,"An invalid IAMF stream. The first mix uses a stereo audio element. The second mix uses a `loudspeaker_layout` which is reserved under Simple profile for the first layer."
"test_000123","test_000118","3.6/num_substreams, 3.6.2/subtream_count, 3.6.2/coupled_substream_count, 3.6.4/subtream_count, 3.6.4/coupled_substream_count, 4.2/Simple Profile, 4.2/Base-Enhannced Profile, 4.3/Cumulative channel limit",True,"A 7.1.4 + TOA IAMF stream encoded using Opus and with two Mix Presentations. The first Mix Presentation uses both Audio Elements. The second Mix Presentation uses only the 7.1.4 Audio Element. The primary profile is set to Base and the additional profile is set to Base-Enhanced."
"test_000123","test_000118","3.6/num_substreams, 3.6.2/subtream_count, 3.6.2/coupled_substream_count, 3.6.4/subtream_count, 3.6.4/coupled_substream_count, 4.2/Simple Profile, 4.2/Base-Enhannced Profile, 4.3/Cumulative channel limit",True,"A 7.1.4 + TOA IAMF stream encoded using Opus and with two Mix Presentations. The first Mix Presentation uses both Audio Elements. The second Mix Presentation uses only the TOA Audio Element. The primary profile is set to Base and the additional profile is set to Base-Enhanced."
"test_000124","test_000020","3.7/num_sub_mixes",False,"An invalid IAMF stream because it is base profile and the Mix Presentation contains 2 sub-mixes."
"test_000125","test_000020","3.7.3/headphones_rendering_mode",False,"An invalid IAMF stream because it is simple profile and contains a Mix Presentation with a reserved headphones rendering mode."
"test_000126","test_000020","3.7/loudness_layout, 3.7.6/layout_type, 3.9/Audio Frame OBU Syntax and Semantics, 3.11.1/OPUS Specific, 3.11.1/num_samples_per_frame, 6.2.2/roll",True,"A stereo Opus IAMF stream with a Mix Presentation that contains two loudness `layout_type` values: stereo and a reserved layout."
Expand Down

0 comments on commit e348c8d

Please sign in to comment.