[M120 Migration][MM] Framerate calculation
[platform/framework/web/chromium-efl.git] / media / mojo / mojom / audio_processing_mojom_traits.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 namespace mojo {
8 namespace {
9 // Deserializes has_field and field into a absl::optional.
10 #define DESERIALIZE_INTO_OPT(field) \
11   if (input.has_##field())          \
12   out_stats->field = input.field()
13 }  // namespace
14
15 // static
16 bool StructTraits<media::mojom::AudioProcessingStatsDataView,
17                   media::AudioProcessingStats>::
18     Read(media::mojom::AudioProcessingStatsDataView input,
19          media::AudioProcessingStats* out_stats) {
20   DESERIALIZE_INTO_OPT(echo_return_loss);
21   DESERIALIZE_INTO_OPT(echo_return_loss_enhancement);
22   return true;
23 }
24
25 // static
26 bool StructTraits<media::mojom::AudioProcessingSettingsDataView,
27                   media::AudioProcessingSettings>::
28     Read(media::mojom::AudioProcessingSettingsDataView input,
29          media::AudioProcessingSettings* out_settings) {
30   *out_settings = media::AudioProcessingSettings();
31   out_settings->echo_cancellation = input.echo_cancellation();
32   out_settings->noise_suppression = input.noise_suppression();
33   out_settings->transient_noise_suppression =
34       input.transient_noise_suppression();
35   out_settings->automatic_gain_control = input.automatic_gain_control();
36   out_settings->high_pass_filter = input.high_pass_filter();
37   out_settings->multi_channel_capture_processing =
38       input.multi_channel_capture_processing();
39   out_settings->stereo_mirroring = input.stereo_mirroring();
40   out_settings->force_apm_creation = input.force_apm_creation();
41   return true;
42 }
43
44 }  // namespace mojo