[M120 Migration][MM] Framerate calculation
[platform/framework/web/chromium-efl.git] / media / mojo / mojom / audio_processing_mojom_traits_unittest.cc
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.
4
5 #include "media/mojo/mojom/audio_processing_mojom_traits.h"
6
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"
12
13 namespace media {
14
15 TEST(AudioProcessingMojomTraitsTest, AudioProcessingSettings) {
16   AudioProcessingSettings settings_in;
17   AudioProcessingSettings settings_out;
18
19   mojo::test::SerializeAndDeserialize<media::mojom::AudioProcessingSettings>(
20       settings_in, settings_out);
21
22   EXPECT_EQ(settings_in, settings_out);
23
24   // Flip all fields.
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;
35
36   mojo::test::SerializeAndDeserialize<media::mojom::AudioProcessingSettings>(
37       settings_in, settings_out);
38
39   EXPECT_EQ(settings_in, settings_out);
40 }
41
42 TEST(AudioProcessingMojomTraitsTest, AudioProcessingStats) {
43   AudioProcessingStats stats_in;
44   AudioProcessingStats stats_out;
45
46   mojo::test::SerializeAndDeserialize<media::mojom::AudioProcessingStats>(
47       stats_in, stats_out);
48
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);
52
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;
58
59   mojo::test::SerializeAndDeserialize<media::mojom::AudioProcessingStats>(
60       stats_in, stats_out);
61
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);
65 }
66
67 }  // namespace media