1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "media/mojo/mojom/audio_processing_mojom_traits.h"
7 #include "media/base/audio_processing.h"
8 #include "media/mojo/mojom/audio_processing.mojom.h"
9 #include "media/mojo/mojom/traits_test_service.mojom.h"
10 #include "mojo/public/cpp/test_support/test_utils.h"
11 #include "testing/gtest/include/gtest/gtest.h"
15 TEST(AudioProcessingMojomTraitsTest, AudioProcessingSettings) {
16 AudioProcessingSettings settings_in;
17 AudioProcessingSettings settings_out;
19 mojo::test::SerializeAndDeserialize<media::mojom::AudioProcessingSettings>(
20 settings_in, settings_out);
22 EXPECT_EQ(settings_in, settings_out);
25 settings_in.echo_cancellation = !settings_in.echo_cancellation;
26 settings_in.noise_suppression = !settings_in.noise_suppression;
27 settings_in.transient_noise_suppression =
28 !settings_in.transient_noise_suppression;
29 settings_in.automatic_gain_control = !settings_in.automatic_gain_control;
30 settings_in.high_pass_filter = !settings_in.high_pass_filter;
31 settings_in.multi_channel_capture_processing =
32 !settings_in.multi_channel_capture_processing;
33 settings_in.stereo_mirroring = !settings_in.stereo_mirroring;
34 settings_in.force_apm_creation = !settings_in.force_apm_creation;
36 mojo::test::SerializeAndDeserialize<media::mojom::AudioProcessingSettings>(
37 settings_in, settings_out);
39 EXPECT_EQ(settings_in, settings_out);
42 TEST(AudioProcessingMojomTraitsTest, AudioProcessingStats) {
43 AudioProcessingStats stats_in;
44 AudioProcessingStats stats_out;
46 mojo::test::SerializeAndDeserialize<media::mojom::AudioProcessingStats>(
49 EXPECT_EQ(stats_in.echo_return_loss, stats_out.echo_return_loss);
50 EXPECT_EQ(stats_in.echo_return_loss_enhancement,
51 stats_out.echo_return_loss_enhancement);
53 // Set all fields to non-default values.
54 ASSERT_FALSE(stats_in.echo_return_loss);
55 ASSERT_FALSE(stats_in.echo_return_loss_enhancement);
56 stats_in.echo_return_loss = 1.0;
57 stats_in.echo_return_loss_enhancement = 2.0;
59 mojo::test::SerializeAndDeserialize<media::mojom::AudioProcessingStats>(
62 EXPECT_EQ(stats_in.echo_return_loss, stats_out.echo_return_loss);
63 EXPECT_EQ(stats_in.echo_return_loss_enhancement,
64 stats_out.echo_return_loss_enhancement);