|
30 | 30 | #include "iamf/cli/tests/cli_test_utils.h" |
31 | 31 | #include "iamf/obu/mix_presentation.h" |
32 | 32 | #include "iamf/obu/param_definitions.h" |
| 33 | +#include "iamf/obu/param_definitions/cart16_param_definition.h" |
33 | 34 | #include "iamf/obu/param_definitions/cart8_param_definition.h" |
34 | 35 | #include "iamf/obu/param_definitions/dual_polar_param_definition.h" |
35 | 36 | #include "iamf/obu/param_definitions/polar_param_definition.h" |
@@ -326,6 +327,60 @@ TEST(Generate, CopiesRenderingConfigWithCart8ParamDefinition) { |
326 | 327 | .value()); |
327 | 328 | } |
328 | 329 |
|
| 330 | +TEST(Generate, CopiesRenderingConfigWithCart16ParamDefinition) { |
| 331 | + MixPresentationObuMetadatas mix_presentation_metadata; |
| 332 | + FillMixPresentationMetadata(mix_presentation_metadata.Add()); |
| 333 | + auto& first_rendering_config = *mix_presentation_metadata.at(0) |
| 334 | + .mutable_sub_mixes(0) |
| 335 | + ->mutable_audio_elements(0) |
| 336 | + ->mutable_rendering_config(); |
| 337 | + first_rendering_config.set_headphones_rendering_mode( |
| 338 | + HEADPHONES_RENDERING_MODE_RESERVED_3); |
| 339 | + using iamf_tools_cli_proto::PARAM_DEFINITION_TYPE_CART_16; |
| 340 | + auto& cart16_param_definition = |
| 341 | + *first_rendering_config.add_rendering_config_param_definitions(); |
| 342 | + cart16_param_definition.set_param_definition_type( |
| 343 | + PARAM_DEFINITION_TYPE_CART_16); |
| 344 | + auto& cart16_param_definition_proto = |
| 345 | + *cart16_param_definition.mutable_cart16_param_definition(); |
| 346 | + cart16_param_definition_proto.mutable_param_definition()->set_parameter_id(1); |
| 347 | + cart16_param_definition_proto.mutable_param_definition()->set_parameter_rate( |
| 348 | + 16000); |
| 349 | + cart16_param_definition_proto.mutable_param_definition() |
| 350 | + ->set_param_definition_mode(1); |
| 351 | + cart16_param_definition_proto.mutable_param_definition()->set_duration(1); |
| 352 | + cart16_param_definition_proto.mutable_param_definition() |
| 353 | + ->set_constant_subblock_duration(true); |
| 354 | + cart16_param_definition_proto.set_default_x(1); |
| 355 | + cart16_param_definition_proto.set_default_y(2); |
| 356 | + cart16_param_definition_proto.set_default_z(3); |
| 357 | + |
| 358 | + Cart16ParamDefinition expected_cart16_param_definition; |
| 359 | + expected_cart16_param_definition.parameter_id_ = 1; |
| 360 | + expected_cart16_param_definition.parameter_rate_ = 16000; |
| 361 | + expected_cart16_param_definition.param_definition_mode_ = 1; |
| 362 | + expected_cart16_param_definition.duration_ = 1; |
| 363 | + expected_cart16_param_definition.constant_subblock_duration_ = true; |
| 364 | + expected_cart16_param_definition.default_x_ = 1; |
| 365 | + expected_cart16_param_definition.default_y_ = 2; |
| 366 | + expected_cart16_param_definition.default_z_ = 3; |
| 367 | + |
| 368 | + MixPresentationGenerator generator(mix_presentation_metadata); |
| 369 | + std::list<MixPresentationObu> generated_obus; |
| 370 | + EXPECT_THAT(generator.Generate(kAppendBuildInformationTag, generated_obus), |
| 371 | + IsOk()); |
| 372 | + const auto& generated_rendering_config = |
| 373 | + generated_obus.front().sub_mixes_[0].audio_elements[0].rendering_config; |
| 374 | + EXPECT_THAT(generated_rendering_config.rendering_config_param_definitions, |
| 375 | + testing::SizeIs(1)); |
| 376 | + EXPECT_THAT( |
| 377 | + generated_rendering_config.rendering_config_param_definitions[0], |
| 378 | + RenderingConfigParamDefinition::Create( |
| 379 | + ParamDefinition::ParameterDefinitionType::kParameterDefinitionCart16, |
| 380 | + expected_cart16_param_definition, {}) |
| 381 | + .value()); |
| 382 | +} |
| 383 | + |
329 | 384 | TEST(Generate, CopiesRenderingConfigWithDualPolarParamDefinition) { |
330 | 385 | MixPresentationObuMetadatas mix_presentation_metadata; |
331 | 386 | FillMixPresentationMetadata(mix_presentation_metadata.Add()); |
|
0 commit comments