// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: debug.proto
// Protobuf C++ Version: 7.35.1

#include "debug.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/io/zero_copy_stream_impl_lite.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
namespace webrtc {
namespace audioproc {
class Stream::_Internal {
 public:
  using HasBits = decltype(::std::declval<Stream>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Stream, _impl_._has_bits_);
};

constexpr Stream::ParseTableT_ Stream::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Stream, _impl_._has_bits_),
      0, // no _extensions_
      8, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967040,  // skipmap
      offsetof(ParseTableT_, field_entries),
      8,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::webrtc::audioproc::Stream>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated bytes output_channel = 8;
      {::_pbi::TcParser::FastBR1,
       {66, 1, 0,
        PROTOBUF_FIELD_OFFSET(Stream, _impl_.output_channel_)}},
      // optional bytes input_data = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 2, 0,
        PROTOBUF_FIELD_OFFSET(Stream, _impl_.input_data_)}},
      // optional bytes output_data = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 3, 0,
        PROTOBUF_FIELD_OFFSET(Stream, _impl_.output_data_)}},
      // optional int32 delay = 3;
      {::_pbi::TcParser::FastV32S1,
       {24, 4, 0,
        PROTOBUF_FIELD_OFFSET(Stream, _impl_.delay_)}},
      // optional sint32 drift = 4;
      {::_pbi::TcParser::FastZ32S1,
       {32, 5, 0,
        PROTOBUF_FIELD_OFFSET(Stream, _impl_.drift_)}},
      // optional int32 applied_input_volume = 5;
      {::_pbi::TcParser::FastV32S1,
       {40, 6, 0,
        PROTOBUF_FIELD_OFFSET(Stream, _impl_.applied_input_volume_)}},
      // optional bool keypress = 6;
      {::_pbi::TcParser::FastV8S1,
       {48, 7, 0,
        PROTOBUF_FIELD_OFFSET(Stream, _impl_.keypress_)}},
      // repeated bytes input_channel = 7;
      {::_pbi::TcParser::FastBR1,
       {58, 0, 0,
        PROTOBUF_FIELD_OFFSET(Stream, _impl_.input_channel_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bytes input_data = 1;
      {PROTOBUF_FIELD_OFFSET(Stream, _impl_.input_data_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bytes output_data = 2;
      {PROTOBUF_FIELD_OFFSET(Stream, _impl_.output_data_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional int32 delay = 3;
      {PROTOBUF_FIELD_OFFSET(Stream, _impl_.delay_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional sint32 drift = 4;
      {PROTOBUF_FIELD_OFFSET(Stream, _impl_.drift_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kSInt32)},
      // optional int32 applied_input_volume = 5;
      {PROTOBUF_FIELD_OFFSET(Stream, _impl_.applied_input_volume_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional bool keypress = 6;
      {PROTOBUF_FIELD_OFFSET(Stream, _impl_.keypress_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated bytes input_channel = 7;
      {PROTOBUF_FIELD_OFFSET(Stream, _impl_.input_channel_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
      // repeated bytes output_channel = 8;
      {PROTOBUF_FIELD_OFFSET(Stream, _impl_.output_channel_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Stream::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        input_channel_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::webrtc::audioproc::Stream,
            PROTOBUF_FIELD_OFFSET(::webrtc::audioproc::Stream, _impl_.input_channel_)>()
         }
        ,
        output_channel_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::webrtc::audioproc::Stream,
            PROTOBUF_FIELD_OFFSET(::webrtc::audioproc::Stream, _impl_.output_channel_)>()
         }
        ,
        input_data_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        output_data_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        delay_{0},
        drift_{0},
        applied_input_volume_{0},
        keypress_{false} {}

template <typename>
constexpr Stream::Stream(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Stream::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Stream(arena);
}
constexpr auto Stream::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Stream), alignof(Stream));
}
constexpr auto Stream::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Stream::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Stream>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Stream::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Stream>(), &Stream::ByteSizeLong,
              &Stream::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Stream, _impl_._cached_size_),
          true,
      },
      "webrtc.audioproc.Stream",
  };
}
struct StreamGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr StreamGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Stream_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Stream::InternalGenerateClassData_(
            _default, &Stream_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Stream>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~StreamGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Stream _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Stream>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(StreamGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST StreamGlobalsTypeInternal Stream_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Stream_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Stream_globals_.GetClassData();
#else
  return Stream_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ReverseStream::_Internal {
 public:
  using HasBits = decltype(::std::declval<ReverseStream>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ReverseStream, _impl_._has_bits_);
};

constexpr ReverseStream::ParseTableT_ ReverseStream::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ReverseStream, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::webrtc::audioproc::ReverseStream>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // repeated bytes channel = 2;
      {::_pbi::TcParser::FastBR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(ReverseStream, _impl_.channel_)}},
      // optional bytes data = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(ReverseStream, _impl_.data_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bytes data = 1;
      {PROTOBUF_FIELD_OFFSET(ReverseStream, _impl_.data_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated bytes channel = 2;
      {PROTOBUF_FIELD_OFFSET(ReverseStream, _impl_.channel_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBytes | ::_fl::kRepSString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr ReverseStream::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        channel_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::webrtc::audioproc::ReverseStream,
            PROTOBUF_FIELD_OFFSET(::webrtc::audioproc::ReverseStream, _impl_.channel_)>()
         }
        ,
        data_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr ReverseStream::ReverseStream(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ReverseStream::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReverseStream(arena);
}
constexpr auto ReverseStream::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ReverseStream), alignof(ReverseStream));
}
constexpr auto ReverseStream::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ReverseStream::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ReverseStream>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReverseStream::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ReverseStream>(), &ReverseStream::ByteSizeLong,
              &ReverseStream::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReverseStream, _impl_._cached_size_),
          true,
      },
      "webrtc.audioproc.ReverseStream",
  };
}
struct ReverseStreamGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ReverseStreamGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ReverseStream_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ReverseStream::InternalGenerateClassData_(
            _default, &ReverseStream_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ReverseStream>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ReverseStreamGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ReverseStream _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ReverseStream>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ReverseStreamGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ReverseStreamGlobalsTypeInternal ReverseStream_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ReverseStream_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ReverseStream_globals_.GetClassData();
#else
  return ReverseStream_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class PlayoutAudioDeviceInfo::_Internal {
 public:
  using HasBits = decltype(::std::declval<PlayoutAudioDeviceInfo>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PlayoutAudioDeviceInfo, _impl_._has_bits_);
};

constexpr PlayoutAudioDeviceInfo::ParseTableT_ PlayoutAudioDeviceInfo::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(PlayoutAudioDeviceInfo, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::webrtc::audioproc::PlayoutAudioDeviceInfo>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional int32 max_volume = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(PlayoutAudioDeviceInfo, _impl_.max_volume_)}},
      // optional int32 id = 1;
      {::_pbi::TcParser::FastV32S1,
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(PlayoutAudioDeviceInfo, _impl_.id_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional int32 id = 1;
      {PROTOBUF_FIELD_OFFSET(PlayoutAudioDeviceInfo, _impl_.id_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 max_volume = 2;
      {PROTOBUF_FIELD_OFFSET(PlayoutAudioDeviceInfo, _impl_.max_volume_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr PlayoutAudioDeviceInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        id_{0},
        max_volume_{0} {}

template <typename>
constexpr PlayoutAudioDeviceInfo::PlayoutAudioDeviceInfo(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL PlayoutAudioDeviceInfo::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PlayoutAudioDeviceInfo(arena);
}
constexpr auto PlayoutAudioDeviceInfo::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(PlayoutAudioDeviceInfo), alignof(PlayoutAudioDeviceInfo));
}
constexpr auto PlayoutAudioDeviceInfo::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &PlayoutAudioDeviceInfo::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<PlayoutAudioDeviceInfo>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PlayoutAudioDeviceInfo::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<PlayoutAudioDeviceInfo>(), &PlayoutAudioDeviceInfo::ByteSizeLong,
              &PlayoutAudioDeviceInfo::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PlayoutAudioDeviceInfo, _impl_._cached_size_),
          true,
      },
      "webrtc.audioproc.PlayoutAudioDeviceInfo",
  };
}
struct PlayoutAudioDeviceInfoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr PlayoutAudioDeviceInfoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 PlayoutAudioDeviceInfo_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(PlayoutAudioDeviceInfo::InternalGenerateClassData_(
            _default, &PlayoutAudioDeviceInfo_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<PlayoutAudioDeviceInfo>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~PlayoutAudioDeviceInfoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) PlayoutAudioDeviceInfo _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<PlayoutAudioDeviceInfo>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(PlayoutAudioDeviceInfoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST PlayoutAudioDeviceInfoGlobalsTypeInternal PlayoutAudioDeviceInfo_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* PlayoutAudioDeviceInfo_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return PlayoutAudioDeviceInfo_globals_.GetClassData();
#else
  return PlayoutAudioDeviceInfo_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Init::_Internal {
 public:
  using HasBits = decltype(::std::declval<Init>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Init, _impl_._has_bits_);
};

constexpr Init::ParseTableT_ Init::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Init, _impl_._has_bits_),
      0, // no _extensions_
      10, 120,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294966272,  // skipmap
      offsetof(ParseTableT_, field_entries),
      10,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::webrtc::audioproc::Init>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional int32 sample_rate = 1;
      {::_pbi::TcParser::FastV32S1,
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(Init, _impl_.sample_rate_)}},
      // optional int32 device_sample_rate = 2 [deprecated = true];
      {::_pbi::TcParser::FastV32S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(Init, _impl_.device_sample_rate_)}},
      // optional int32 num_input_channels = 3;
      {::_pbi::TcParser::FastV32S1,
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(Init, _impl_.num_input_channels_)}},
      // optional int32 num_output_channels = 4;
      {::_pbi::TcParser::FastV32S1,
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(Init, _impl_.num_output_channels_)}},
      // optional int32 num_reverse_channels = 5;
      {::_pbi::TcParser::FastV32S1,
       {40, 4, 0,
        PROTOBUF_FIELD_OFFSET(Init, _impl_.num_reverse_channels_)}},
      // optional int32 reverse_sample_rate = 6;
      {::_pbi::TcParser::FastV32S1,
       {48, 5, 0,
        PROTOBUF_FIELD_OFFSET(Init, _impl_.reverse_sample_rate_)}},
      // optional int32 output_sample_rate = 7;
      {::_pbi::TcParser::FastV32S1,
       {56, 6, 0,
        PROTOBUF_FIELD_OFFSET(Init, _impl_.output_sample_rate_)}},
      // optional int32 reverse_output_sample_rate = 8;
      {::_pbi::TcParser::FastV32S1,
       {64, 7, 0,
        PROTOBUF_FIELD_OFFSET(Init, _impl_.reverse_output_sample_rate_)}},
      // optional int32 num_reverse_output_channels = 9;
      {::_pbi::TcParser::FastV32S1,
       {72, 9, 0,
        PROTOBUF_FIELD_OFFSET(Init, _impl_.num_reverse_output_channels_)}},
      // optional int64 timestamp_ms = 10;
      {::_pbi::TcParser::FastV64S1,
       {80, 8, 0,
        PROTOBUF_FIELD_OFFSET(Init, _impl_.timestamp_ms_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional int32 sample_rate = 1;
      {PROTOBUF_FIELD_OFFSET(Init, _impl_.sample_rate_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 device_sample_rate = 2 [deprecated = true];
      {PROTOBUF_FIELD_OFFSET(Init, _impl_.device_sample_rate_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 num_input_channels = 3;
      {PROTOBUF_FIELD_OFFSET(Init, _impl_.num_input_channels_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 num_output_channels = 4;
      {PROTOBUF_FIELD_OFFSET(Init, _impl_.num_output_channels_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 num_reverse_channels = 5;
      {PROTOBUF_FIELD_OFFSET(Init, _impl_.num_reverse_channels_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 reverse_sample_rate = 6;
      {PROTOBUF_FIELD_OFFSET(Init, _impl_.reverse_sample_rate_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 output_sample_rate = 7;
      {PROTOBUF_FIELD_OFFSET(Init, _impl_.output_sample_rate_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 reverse_output_sample_rate = 8;
      {PROTOBUF_FIELD_OFFSET(Init, _impl_.reverse_output_sample_rate_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 num_reverse_output_channels = 9;
      {PROTOBUF_FIELD_OFFSET(Init, _impl_.num_reverse_output_channels_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int64 timestamp_ms = 10;
      {PROTOBUF_FIELD_OFFSET(Init, _impl_.timestamp_ms_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Init::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sample_rate_{0},
        device_sample_rate_{0},
        num_input_channels_{0},
        num_output_channels_{0},
        num_reverse_channels_{0},
        reverse_sample_rate_{0},
        output_sample_rate_{0},
        reverse_output_sample_rate_{0},
        timestamp_ms_{::int64_t{0}},
        num_reverse_output_channels_{0} {}

template <typename>
constexpr Init::Init(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Init::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Init(arena);
}
constexpr auto Init::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Init), alignof(Init));
}
constexpr auto Init::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Init::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Init>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Init::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Init>(), &Init::ByteSizeLong,
              &Init::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Init, _impl_._cached_size_),
          true,
      },
      "webrtc.audioproc.Init",
  };
}
struct InitGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr InitGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Init_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Init::InternalGenerateClassData_(
            _default, &Init_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Init>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~InitGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Init _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Init>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(InitGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST InitGlobalsTypeInternal Init_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Init_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Init_globals_.GetClassData();
#else
  return Init_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Config::_Internal {
 public:
  using HasBits = decltype(::std::declval<Config>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Config, _impl_._has_bits_);
};

constexpr Config::ParseTableT_ Config::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Config, _impl_._has_bits_),
      0, // no _extensions_
      21, 248,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4293001440,  // skipmap
      offsetof(ParseTableT_, field_entries),
      17,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::webrtc::audioproc::Config>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional bool aec_enabled = 1;
      {::_pbi::TcParser::FastV8S1,
       {8, 2, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_enabled_)}},
      // optional bool aec_delay_agnostic_enabled = 2;
      {::_pbi::TcParser::FastV8S1,
       {16, 3, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_delay_agnostic_enabled_)}},
      // optional bool aec_drift_compensation_enabled = 3;
      {::_pbi::TcParser::FastV8S1,
       {24, 4, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_drift_compensation_enabled_)}},
      // optional bool aec_extended_filter_enabled = 4;
      {::_pbi::TcParser::FastV8S1,
       {32, 5, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_extended_filter_enabled_)}},
      // optional int32 aec_suppression_level = 5;
      {::_pbi::TcParser::FastV32S1,
       {40, 6, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_suppression_level_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional bool agc_enabled = 9;
      {::_pbi::TcParser::FastV8S1,
       {72, 8, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.agc_enabled_)}},
      // optional int32 agc_mode = 10;
      {::_pbi::TcParser::FastV32S1,
       {80, 7, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.agc_mode_)}},
      // optional bool agc_limiter_enabled = 11;
      {::_pbi::TcParser::FastV8S1,
       {88, 9, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.agc_limiter_enabled_)}},
      // optional bool noise_robust_agc_enabled = 12;
      {::_pbi::TcParser::FastV8S1,
       {96, 10, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.noise_robust_agc_enabled_)}},
      // optional bool hpf_enabled = 13;
      {::_pbi::TcParser::FastV8S1,
       {104, 11, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.hpf_enabled_)}},
      // optional bool ns_enabled = 14;
      {::_pbi::TcParser::FastV8S1,
       {112, 13, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.ns_enabled_)}},
      // optional int32 ns_level = 15;
      {::_pbi::TcParser::FastV32S1,
       {120, 12, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.ns_level_)}},
      // optional bool transient_suppression_enabled = 16;
      {::_pbi::TcParser::FastV8S2,
       {384, 14, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.transient_suppression_enabled_)}},
      // optional string experiments_description = 17;
      {::_pbi::TcParser::FastBS2,
       {394, 0, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.experiments_description_)}},
      {::_pbi::TcParser::MiniParse, {}},
      // optional bool pre_amplifier_enabled = 19;
      {::_pbi::TcParser::FastV8S2,
       {408, 15, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.pre_amplifier_enabled_)}},
      // optional float pre_amplifier_fixed_gain_factor = 20;
      {::_pbi::TcParser::FastF32S2,
       {421, 16, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.pre_amplifier_fixed_gain_factor_)}},
      // optional string api_config_string = 21;
      {::_pbi::TcParser::FastBS2,
       {426, 1, 0,
        PROTOBUF_FIELD_OFFSET(Config, _impl_.api_config_string_)}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bool aec_enabled = 1;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_enabled_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool aec_delay_agnostic_enabled = 2;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_delay_agnostic_enabled_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool aec_drift_compensation_enabled = 3;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_drift_compensation_enabled_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool aec_extended_filter_enabled = 4;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_extended_filter_enabled_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional int32 aec_suppression_level = 5;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_suppression_level_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional bool agc_enabled = 9;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.agc_enabled_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional int32 agc_mode = 10;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.agc_mode_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional bool agc_limiter_enabled = 11;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.agc_limiter_enabled_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool noise_robust_agc_enabled = 12;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.noise_robust_agc_enabled_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool hpf_enabled = 13;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.hpf_enabled_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional bool ns_enabled = 14;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.ns_enabled_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional int32 ns_level = 15;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.ns_level_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional bool transient_suppression_enabled = 16;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.transient_suppression_enabled_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional string experiments_description = 17;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.experiments_description_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional bool pre_amplifier_enabled = 19;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.pre_amplifier_enabled_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional float pre_amplifier_fixed_gain_factor = 20;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.pre_amplifier_fixed_gain_factor_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
      // optional string api_config_string = 21;
      {PROTOBUF_FIELD_OFFSET(Config, _impl_.api_config_string_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr Config::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        experiments_description_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        api_config_string_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        aec_enabled_{false},
        aec_delay_agnostic_enabled_{false},
        aec_drift_compensation_enabled_{false},
        aec_extended_filter_enabled_{false},
        aec_suppression_level_{0},
        agc_mode_{0},
        agc_enabled_{false},
        agc_limiter_enabled_{false},
        noise_robust_agc_enabled_{false},
        hpf_enabled_{false},
        ns_level_{0},
        ns_enabled_{false},
        transient_suppression_enabled_{false},
        pre_amplifier_enabled_{false},
        pre_amplifier_fixed_gain_factor_{0} {}

template <typename>
constexpr Config::Config(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Config::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Config(arena);
}
constexpr auto Config::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(Config), alignof(Config));
}
constexpr auto Config::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &Config::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Config>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Config::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Config>(), &Config::ByteSizeLong,
              &Config::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Config, _impl_._cached_size_),
          true,
      },
      "webrtc.audioproc.Config",
  };
}
struct ConfigGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ConfigGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Config_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Config::InternalGenerateClassData_(
            _default, &Config_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Config>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ConfigGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Config _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Config>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ConfigGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ConfigGlobalsTypeInternal Config_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Config_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Config_globals_.GetClassData();
#else
  return Config_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class RuntimeSetting::_Internal {
 public:
  using HasBits = decltype(::std::declval<RuntimeSetting>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_._has_bits_);
};

constexpr RuntimeSetting::ParseTableT_ RuntimeSetting::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_._has_bits_),
      0, // no _extensions_
      7, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967168,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::webrtc::audioproc::RuntimeSetting>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional float capture_pre_gain = 1;
      {::_pbi::TcParser::FastF32S1,
       {13, 1, 0,
        PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.capture_pre_gain_)}},
      // optional float custom_render_processing_setting = 2;
      {::_pbi::TcParser::FastF32S1,
       {21, 2, 0,
        PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.custom_render_processing_setting_)}},
      // optional float capture_fixed_post_gain = 3;
      {::_pbi::TcParser::FastF32S1,
       {29, 3, 0,
        PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.capture_fixed_post_gain_)}},
      // optional int32 playout_volume_change = 4;
      {::_pbi::TcParser::FastV32S1,
       {32, 4, 0,
        PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.playout_volume_change_)}},
      // optional .webrtc.audioproc.PlayoutAudioDeviceInfo playout_audio_device_change = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 0, 0,
        PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.playout_audio_device_change_)}},
      // optional bool capture_output_used = 6;
      {::_pbi::TcParser::FastV8S1,
       {48, 5, 0,
        PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.capture_output_used_)}},
      // optional float capture_post_gain = 7;
      {::_pbi::TcParser::FastF32S1,
       {61, 6, 0,
        PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.capture_post_gain_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional float capture_pre_gain = 1;
      {PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.capture_pre_gain_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
      // optional float custom_render_processing_setting = 2;
      {PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.custom_render_processing_setting_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
      // optional float capture_fixed_post_gain = 3;
      {PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.capture_fixed_post_gain_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
      // optional int32 playout_volume_change = 4;
      {PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.playout_volume_change_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional .webrtc.audioproc.PlayoutAudioDeviceInfo playout_audio_device_change = 5;
      {PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.playout_audio_device_change_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional bool capture_output_used = 6;
      {PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.capture_output_used_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional float capture_post_gain = 7;
      {PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.capture_post_gain_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::webrtc::audioproc::PlayoutAudioDeviceInfo>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::webrtc::audioproc::PlayoutAudioDeviceInfo_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr RuntimeSetting::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        playout_audio_device_change_{nullptr},
        capture_pre_gain_{0},
        custom_render_processing_setting_{0},
        capture_fixed_post_gain_{0},
        playout_volume_change_{0},
        capture_output_used_{false},
        capture_post_gain_{0} {}

template <typename>
constexpr RuntimeSetting::RuntimeSetting(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL RuntimeSetting::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RuntimeSetting(arena);
}
constexpr auto RuntimeSetting::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RuntimeSetting), alignof(RuntimeSetting));
}
constexpr auto RuntimeSetting::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &RuntimeSetting::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<RuntimeSetting>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RuntimeSetting::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<RuntimeSetting>(), &RuntimeSetting::ByteSizeLong,
              &RuntimeSetting::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_._cached_size_),
          true,
      },
      "webrtc.audioproc.RuntimeSetting",
  };
}
struct RuntimeSettingGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr RuntimeSettingGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 RuntimeSetting_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(RuntimeSetting::InternalGenerateClassData_(
            _default, &RuntimeSetting_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<RuntimeSetting>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~RuntimeSettingGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) RuntimeSetting _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<RuntimeSetting>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(RuntimeSettingGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST RuntimeSettingGlobalsTypeInternal RuntimeSetting_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* RuntimeSetting_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return RuntimeSetting_globals_.GetClassData();
#else
  return RuntimeSetting_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class Event::_Internal {
 public:
  using HasBits = decltype(::std::declval<Event>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Event, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000020) ^ 0x00000020) != 0;
  }
};

constexpr Event::ParseTableT_ Event::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(Event, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      6,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::webrtc::audioproc::Event>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // required .webrtc.audioproc.Event.Type type = 1;
      {::_pbi::TcParser::FastEr0S1,
       {8, 5, 5,
        PROTOBUF_FIELD_OFFSET(Event, _impl_.type_)}},
      // optional .webrtc.audioproc.Init init = 2;
      {::_pbi::TcParser::FastMtS1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(Event, _impl_.init_)}},
      // optional .webrtc.audioproc.ReverseStream reverse_stream = 3;
      {::_pbi::TcParser::FastMtS1,
       {26, 1, 1,
        PROTOBUF_FIELD_OFFSET(Event, _impl_.reverse_stream_)}},
      // optional .webrtc.audioproc.Stream stream = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 2, 2,
        PROTOBUF_FIELD_OFFSET(Event, _impl_.stream_)}},
      // optional .webrtc.audioproc.Config config = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 3, 3,
        PROTOBUF_FIELD_OFFSET(Event, _impl_.config_)}},
      // optional .webrtc.audioproc.RuntimeSetting runtime_setting = 6;
      {::_pbi::TcParser::FastMtS1,
       {50, 4, 4,
        PROTOBUF_FIELD_OFFSET(Event, _impl_.runtime_setting_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // required .webrtc.audioproc.Event.Type type = 1;
      {PROTOBUF_FIELD_OFFSET(Event, _impl_.type_), _Internal::kHasBitsOffset + 5, 5, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .webrtc.audioproc.Init init = 2;
      {PROTOBUF_FIELD_OFFSET(Event, _impl_.init_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .webrtc.audioproc.ReverseStream reverse_stream = 3;
      {PROTOBUF_FIELD_OFFSET(Event, _impl_.reverse_stream_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .webrtc.audioproc.Stream stream = 4;
      {PROTOBUF_FIELD_OFFSET(Event, _impl_.stream_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .webrtc.audioproc.Config config = 5;
      {PROTOBUF_FIELD_OFFSET(Event, _impl_.config_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .webrtc.audioproc.RuntimeSetting runtime_setting = 6;
      {PROTOBUF_FIELD_OFFSET(Event, _impl_.runtime_setting_), _Internal::kHasBitsOffset + 4, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::webrtc::audioproc::Init>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::webrtc::audioproc::Init_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::webrtc::audioproc::ReverseStream>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::webrtc::audioproc::ReverseStream_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::webrtc::audioproc::Stream>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::webrtc::audioproc::Stream_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::webrtc::audioproc::Config>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::webrtc::audioproc::Config_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::webrtc::audioproc::RuntimeSetting>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::webrtc::audioproc::RuntimeSetting_globals_},
        #endif
        {0, 5},
    }},
    {{
    }},
  };
}


inline constexpr Event::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        init_{nullptr},
        reverse_stream_{nullptr},
        stream_{nullptr},
        config_{nullptr},
        runtime_setting_{nullptr},
        type_{static_cast< ::webrtc::audioproc::Event_Type >(0)} {}

template <typename>
constexpr Event::Event(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL Event::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Event(arena);
}
constexpr auto Event::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(Event), alignof(Event));
}
constexpr auto Event::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          Event::IsInitializedImpl,
          &Event::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<Event>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Event::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<Event>(), &Event::ByteSizeLong,
              &Event::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Event, _impl_._cached_size_),
          true,
      },
      "webrtc.audioproc.Event",
  };
}
struct EventGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr EventGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 Event_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(Event::InternalGenerateClassData_(
            _default, &Event_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<Event>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~EventGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) Event _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<Event>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(EventGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST EventGlobalsTypeInternal Event_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* Event_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return Event_globals_.GetClassData();
#else
  return Event_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
}  // namespace audioproc
}  // namespace webrtc
namespace webrtc {
namespace audioproc {
PROTOBUF_CONSTINIT const uint32_t Event_Type_internal_data_[] = {
    393216u, 0u, };
static const char Event_Type_names[] = {
    "CONFIG"
    "INIT"
    "REVERSE_STREAM"
    "RUNTIME_SETTING"
    "STREAM"
    "UNKNOWN_EVENT"
};

static const ::google::protobuf::internal::EnumEntry Event_Type_entries[] = {
    {{&Event_Type_names[0], 6}, 3},
    {{&Event_Type_names[6], 4}, 0},
    {{&Event_Type_names[10], 14}, 1},
    {{&Event_Type_names[24], 15}, 5},
    {{&Event_Type_names[39], 6}, 2},
    {{&Event_Type_names[45], 13}, 4},
};

static const int Event_Type_entries_by_number[] = {
    1,  // 0 -> INIT
    2,  // 1 -> REVERSE_STREAM
    4,  // 2 -> STREAM
    0,  // 3 -> CONFIG
    5,  // 4 -> UNKNOWN_EVENT
    3,  // 5 -> RUNTIME_SETTING
};

bool Event_Type_Parse(::absl::string_view name,
                                  Event_Type* PROTOBUF_NONNULL value) {
  int int_value;
  bool success = ::google::protobuf::internal::LookUpEnumValue(
      Event_Type_entries, 6, name, &int_value);
  if (success) {
    *value = static_cast<Event_Type>(int_value);
  }
  return success;
}
static ::google::protobuf::internal::ExplicitlyConstructed<::std::string>
    Event_Type_strings[6] = {};

const ::std::string& Event_Type_Name(Event_Type value) {
  static const bool kDummy = ::google::protobuf::internal::InitializeEnumStrings(
      Event_Type_entries, Event_Type_entries_by_number, 6,
      Event_Type_strings);
  (void)kDummy;

  int idx = ::google::protobuf::internal::LookUpEnumName(Event_Type_entries,
                                  Event_Type_entries_by_number,
                                  6, value);
  return idx == -1 ? ::google::protobuf::internal::GetEmptyString() : Event_Type_strings[idx].get();
}
// ===================================================================

Init::Init(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Init_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:webrtc.audioproc.Init)
}
Init::Init(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Init& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Init_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE Init::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Init::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, sample_rate_),
           0,
           offsetof(Impl_, num_reverse_output_channels_) -
               offsetof(Impl_, sample_rate_) +
               sizeof(Impl_::num_reverse_output_channels_));
}
Init::~Init() {
  // @@protoc_insertion_point(destructor:webrtc.audioproc.Init)
  SharedDtor(*this);
}
inline void Init::SharedDtor(MessageLite& self) {
  Init& this_ = static_cast<Init&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite Init_class_data_ =
    Init::InternalGenerateClassData_(Init_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Init::GetClassData() const {
  return Init_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Init::GetClassData() const {
  return Init_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Init::ParseTableT_
    Init::_table_ =
        Init::InternalGenerateParseTable_(Init_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Init::Clear() {
// @@protoc_insertion_point(message_clear_start:webrtc.audioproc.Init)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    ::memset(&_impl_.sample_rate_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.reverse_output_sample_rate_) -
        reinterpret_cast<char*>(&_impl_.sample_rate_)) + sizeof(_impl_.reverse_output_sample_rate_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000300U)) {
    ::memset(&_impl_.timestamp_ms_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.num_reverse_output_channels_) -
        reinterpret_cast<char*>(&_impl_.timestamp_ms_)) + sizeof(_impl_.num_reverse_output_channels_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Init::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Init& this_ = static_cast<const Init&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Init::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Init& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:webrtc.audioproc.Init)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 sample_rate = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_sample_rate(), target);
  }

  // optional int32 device_sample_rate = 2 [deprecated = true];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_device_sample_rate(), target);
  }

  // optional int32 num_input_channels = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_num_input_channels(), target);
  }

  // optional int32 num_output_channels = 4;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<4>(
            stream, this_._internal_num_output_channels(), target);
  }

  // optional int32 num_reverse_channels = 5;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_num_reverse_channels(), target);
  }

  // optional int32 reverse_sample_rate = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<6>(
            stream, this_._internal_reverse_sample_rate(), target);
  }

  // optional int32 output_sample_rate = 7;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<7>(
            stream, this_._internal_output_sample_rate(), target);
  }

  // optional int32 reverse_output_sample_rate = 8;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<8>(
            stream, this_._internal_reverse_output_sample_rate(), target);
  }

  // optional int32 num_reverse_output_channels = 9;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<9>(
            stream, this_._internal_num_reverse_output_channels(), target);
  }

  // optional int64 timestamp_ms = 10;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt64ToArrayWithField<10>(
            stream, this_._internal_timestamp_ms(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:webrtc.audioproc.Init)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Init::ByteSizeLong(const MessageLite& base) {
  const Init& this_ = static_cast<const Init&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Init::ByteSizeLong() const {
  const Init& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:webrtc.audioproc.Init)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    // optional int32 sample_rate = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_sample_rate());
    }
    // optional int32 device_sample_rate = 2 [deprecated = true];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_device_sample_rate());
    }
    // optional int32 num_input_channels = 3;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_num_input_channels());
    }
    // optional int32 num_output_channels = 4;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_num_output_channels());
    }
    // optional int32 num_reverse_channels = 5;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_num_reverse_channels());
    }
    // optional int32 reverse_sample_rate = 6;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_reverse_sample_rate());
    }
    // optional int32 output_sample_rate = 7;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_output_sample_rate());
    }
    // optional int32 reverse_output_sample_rate = 8;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_reverse_output_sample_rate());
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000300U)) {
    // optional int64 timestamp_ms = 10;
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(
          this_._internal_timestamp_ms());
    }
    // optional int32 num_reverse_output_channels = 9;
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_num_reverse_output_channels());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void Init::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Init*>(&to_msg);
  auto& from = static_cast<const Init&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:webrtc.audioproc.Init)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_impl_.sample_rate_ = from._impl_.sample_rate_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.device_sample_rate_ = from._impl_.device_sample_rate_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.num_input_channels_ = from._impl_.num_input_channels_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.num_output_channels_ = from._impl_.num_output_channels_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.num_reverse_channels_ = from._impl_.num_reverse_channels_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.reverse_sample_rate_ = from._impl_.reverse_sample_rate_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.output_sample_rate_ = from._impl_.output_sample_rate_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.reverse_output_sample_rate_ = from._impl_.reverse_output_sample_rate_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000300U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_impl_.timestamp_ms_ = from._impl_.timestamp_ms_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_impl_.num_reverse_output_channels_ = from._impl_.num_reverse_output_channels_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void Init::CopyFrom(const Init& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:webrtc.audioproc.Init)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Init::InternalSwap(Init* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Init, _impl_.num_reverse_output_channels_)
      + sizeof(Init::_impl_.num_reverse_output_channels_)
      - PROTOBUF_FIELD_OFFSET(Init, _impl_.sample_rate_)>(
          reinterpret_cast<char*>(&_impl_.sample_rate_),
          reinterpret_cast<char*>(&other->_impl_.sample_rate_));
}

// ===================================================================

ReverseStream::ReverseStream(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ReverseStream_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:webrtc.audioproc.ReverseStream)
}
PROTOBUF_NDEBUG_INLINE ReverseStream::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::webrtc::audioproc::ReverseStream& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        channel_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::webrtc::audioproc::ReverseStream,
              PROTOBUF_FIELD_OFFSET(::webrtc::audioproc::ReverseStream, _impl_.channel_)>()
          , from.channel_
        }
        ,
        data_(arena, from.data_) {}

ReverseStream::ReverseStream(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ReverseStream& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ReverseStream_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReverseStream* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:webrtc.audioproc.ReverseStream)
}
PROTOBUF_NDEBUG_INLINE ReverseStream::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        channel_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::webrtc::audioproc::ReverseStream,
            PROTOBUF_FIELD_OFFSET(::webrtc::audioproc::ReverseStream, _impl_.channel_)>()
         }
        ,
        data_(arena) {}

inline void ReverseStream::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ReverseStream::~ReverseStream() {
  // @@protoc_insertion_point(destructor:webrtc.audioproc.ReverseStream)
  SharedDtor(*this);
}
inline void ReverseStream::SharedDtor(MessageLite& self) {
  ReverseStream& this_ = static_cast<ReverseStream&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.data_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ReverseStream_class_data_ =
    ReverseStream::InternalGenerateClassData_(ReverseStream_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReverseStream::GetClassData() const {
  return ReverseStream_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReverseStream::GetClassData() const {
  return ReverseStream_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ReverseStream::ParseTableT_
    ReverseStream::_table_ =
        ReverseStream::InternalGenerateParseTable_(ReverseStream_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ReverseStream::Clear() {
// @@protoc_insertion_point(message_clear_start:webrtc.audioproc.ReverseStream)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.channel_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.data_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ReverseStream::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ReverseStream& this_ = static_cast<const ReverseStream&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ReverseStream::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ReverseStream& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:webrtc.audioproc.ReverseStream)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bytes data = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_data();
    target = stream->WriteBytesMaybeAliased(1, _s, target);
  }

  // repeated bytes channel = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_channel_size(); i < n; ++i) {
      const auto& s = this_._internal_channel().Get(i);
      target = stream->WriteBytes(2, s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:webrtc.audioproc.ReverseStream)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ReverseStream::ByteSizeLong(const MessageLite& base) {
  const ReverseStream& this_ = static_cast<const ReverseStream&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ReverseStream::ByteSizeLong() const {
  const ReverseStream& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:webrtc.audioproc.ReverseStream)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // repeated bytes channel = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_channel().size());
      for (int i = 0, n = this_._internal_channel().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::BytesSize(
            this_._internal_channel().Get(i));
      }
    }
    // optional bytes data = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_data());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void ReverseStream::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ReverseStream*>(&to_msg);
  auto& from = static_cast<const ReverseStream&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:webrtc.audioproc.ReverseStream)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_channel()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_channel());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_data(from._internal_data());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ReverseStream::CopyFrom(const ReverseStream& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:webrtc.audioproc.ReverseStream)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ReverseStream::InternalSwap(ReverseStream* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.channel_.InternalSwap(&other->_impl_.channel_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.data_, &other->_impl_.data_, arena);
}

// ===================================================================

Stream::Stream(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Stream_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:webrtc.audioproc.Stream)
}
PROTOBUF_NDEBUG_INLINE Stream::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::webrtc::audioproc::Stream& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        input_channel_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::webrtc::audioproc::Stream,
              PROTOBUF_FIELD_OFFSET(::webrtc::audioproc::Stream, _impl_.input_channel_)>()
          , from.input_channel_
        }
        ,
        output_channel_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::webrtc::audioproc::Stream,
              PROTOBUF_FIELD_OFFSET(::webrtc::audioproc::Stream, _impl_.output_channel_)>()
          , from.output_channel_
        }
        ,
        input_data_(arena, from.input_data_),
        output_data_(arena, from.output_data_) {}

Stream::Stream(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Stream& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Stream_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Stream* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, delay_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, delay_),
           offsetof(Impl_, keypress_) -
               offsetof(Impl_, delay_) +
               sizeof(Impl_::keypress_));

  // @@protoc_insertion_point(copy_constructor:webrtc.audioproc.Stream)
}
PROTOBUF_NDEBUG_INLINE Stream::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        input_channel_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::webrtc::audioproc::Stream,
            PROTOBUF_FIELD_OFFSET(::webrtc::audioproc::Stream, _impl_.input_channel_)>()
         }
        ,
        output_channel_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::webrtc::audioproc::Stream,
            PROTOBUF_FIELD_OFFSET(::webrtc::audioproc::Stream, _impl_.output_channel_)>()
         }
        ,
        input_data_(arena),
        output_data_(arena) {}

inline void Stream::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, delay_),
           0,
           offsetof(Impl_, keypress_) -
               offsetof(Impl_, delay_) +
               sizeof(Impl_::keypress_));
}
Stream::~Stream() {
  // @@protoc_insertion_point(destructor:webrtc.audioproc.Stream)
  SharedDtor(*this);
}
inline void Stream::SharedDtor(MessageLite& self) {
  Stream& this_ = static_cast<Stream&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.input_data_.Destroy();
  this_._impl_.output_data_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite Stream_class_data_ =
    Stream::InternalGenerateClassData_(Stream_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Stream::GetClassData() const {
  return Stream_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Stream::GetClassData() const {
  return Stream_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Stream::ParseTableT_
    Stream::_table_ =
        Stream::InternalGenerateParseTable_(Stream_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Stream::Clear() {
// @@protoc_insertion_point(message_clear_start:webrtc.audioproc.Stream)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.input_channel_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.output_channel_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.input_data_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.output_data_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000f0U)) {
    ::memset(&_impl_.delay_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.keypress_) -
        reinterpret_cast<char*>(&_impl_.delay_)) + sizeof(_impl_.keypress_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Stream::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Stream& this_ = static_cast<const Stream&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Stream::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Stream& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:webrtc.audioproc.Stream)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bytes input_data = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_input_data();
    target = stream->WriteBytesMaybeAliased(1, _s, target);
  }

  // optional bytes output_data = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    const ::std::string& _s = this_._internal_output_data();
    target = stream->WriteBytesMaybeAliased(2, _s, target);
  }

  // optional int32 delay = 3;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_delay(), target);
  }

  // optional sint32 drift = 4;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt32ToArray(
        4, this_._internal_drift(), target);
  }

  // optional int32 applied_input_volume = 5;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_applied_input_volume(), target);
  }

  // optional bool keypress = 6;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_keypress(), target);
  }

  // repeated bytes input_channel = 7;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_input_channel_size(); i < n; ++i) {
      const auto& s = this_._internal_input_channel().Get(i);
      target = stream->WriteBytes(7, s, target);
    }
  }

  // repeated bytes output_channel = 8;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (int i = 0, n = this_._internal_output_channel_size(); i < n; ++i) {
      const auto& s = this_._internal_output_channel().Get(i);
      target = stream->WriteBytes(8, s, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:webrtc.audioproc.Stream)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Stream::ByteSizeLong(const MessageLite& base) {
  const Stream& this_ = static_cast<const Stream&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Stream::ByteSizeLong() const {
  const Stream& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:webrtc.audioproc.Stream)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000080U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    // repeated bytes input_channel = 7;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_input_channel().size());
      for (int i = 0, n = this_._internal_input_channel().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::BytesSize(
            this_._internal_input_channel().Get(i));
      }
    }
    // repeated bytes output_channel = 8;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_output_channel().size());
      for (int i = 0, n = this_._internal_output_channel().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::BytesSize(
            this_._internal_output_channel().Get(i));
      }
    }
    // optional bytes input_data = 1;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_input_data());
    }
    // optional bytes output_data = 2;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_output_data());
    }
    // optional int32 delay = 3;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_delay());
    }
    // optional sint32 drift = 4;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += ::_pbi::WireFormatLite::SInt32SizePlusOne(
          this_._internal_drift());
    }
    // optional int32 applied_input_volume = 5;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_applied_input_volume());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void Stream::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Stream*>(&to_msg);
  auto& from = static_cast<const Stream&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:webrtc.audioproc.Stream)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_input_channel()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_input_channel());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_output_channel()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_output_channel());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_input_data(from._internal_input_data());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_output_data(from._internal_output_data());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.delay_ = from._impl_.delay_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.drift_ = from._impl_.drift_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.applied_input_volume_ = from._impl_.applied_input_volume_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.keypress_ = from._impl_.keypress_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void Stream::CopyFrom(const Stream& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:webrtc.audioproc.Stream)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Stream::InternalSwap(Stream* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.input_channel_.InternalSwap(&other->_impl_.input_channel_);
  _impl_.output_channel_.InternalSwap(&other->_impl_.output_channel_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.input_data_, &other->_impl_.input_data_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.output_data_, &other->_impl_.output_data_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Stream, _impl_.keypress_)
      + sizeof(Stream::_impl_.keypress_)
      - PROTOBUF_FIELD_OFFSET(Stream, _impl_.delay_)>(
          reinterpret_cast<char*>(&_impl_.delay_),
          reinterpret_cast<char*>(&other->_impl_.delay_));
}

// ===================================================================

Config::Config(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Config_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:webrtc.audioproc.Config)
}
PROTOBUF_NDEBUG_INLINE Config::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::webrtc::audioproc::Config& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        experiments_description_(arena, from.experiments_description_),
        api_config_string_(arena, from.api_config_string_) {}

Config::Config(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Config& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Config_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Config* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, aec_enabled_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, aec_enabled_),
           offsetof(Impl_, pre_amplifier_fixed_gain_factor_) -
               offsetof(Impl_, aec_enabled_) +
               sizeof(Impl_::pre_amplifier_fixed_gain_factor_));

  // @@protoc_insertion_point(copy_constructor:webrtc.audioproc.Config)
}
PROTOBUF_NDEBUG_INLINE Config::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        experiments_description_(arena),
        api_config_string_(arena) {}

inline void Config::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, aec_enabled_),
           0,
           offsetof(Impl_, pre_amplifier_fixed_gain_factor_) -
               offsetof(Impl_, aec_enabled_) +
               sizeof(Impl_::pre_amplifier_fixed_gain_factor_));
}
Config::~Config() {
  // @@protoc_insertion_point(destructor:webrtc.audioproc.Config)
  SharedDtor(*this);
}
inline void Config::SharedDtor(MessageLite& self) {
  Config& this_ = static_cast<Config&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.experiments_description_.Destroy();
  this_._impl_.api_config_string_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite Config_class_data_ =
    Config::InternalGenerateClassData_(Config_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Config::GetClassData() const {
  return Config_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Config::GetClassData() const {
  return Config_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Config::ParseTableT_
    Config::_table_ =
        Config::InternalGenerateParseTable_(Config_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Config::Clear() {
// @@protoc_insertion_point(message_clear_start:webrtc.audioproc.Config)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.experiments_description_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.api_config_string_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000fcU)) {
    ::memset(&_impl_.aec_enabled_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.agc_mode_) -
        reinterpret_cast<char*>(&_impl_.aec_enabled_)) + sizeof(_impl_.agc_mode_));
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    ::memset(&_impl_.agc_enabled_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.pre_amplifier_enabled_) -
        reinterpret_cast<char*>(&_impl_.agc_enabled_)) + sizeof(_impl_.pre_amplifier_enabled_));
  }
  _impl_.pre_amplifier_fixed_gain_factor_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Config::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Config& this_ = static_cast<const Config&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Config::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Config& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:webrtc.audioproc.Config)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bool aec_enabled = 1;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        1, this_._internal_aec_enabled(), target);
  }

  // optional bool aec_delay_agnostic_enabled = 2;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_aec_delay_agnostic_enabled(), target);
  }

  // optional bool aec_drift_compensation_enabled = 3;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        3, this_._internal_aec_drift_compensation_enabled(), target);
  }

  // optional bool aec_extended_filter_enabled = 4;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        4, this_._internal_aec_extended_filter_enabled(), target);
  }

  // optional int32 aec_suppression_level = 5;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_aec_suppression_level(), target);
  }

  // optional bool agc_enabled = 9;
  if (CheckHasBit(cached_has_bits, 0x00000100U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        9, this_._internal_agc_enabled(), target);
  }

  // optional int32 agc_mode = 10;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<10>(
            stream, this_._internal_agc_mode(), target);
  }

  // optional bool agc_limiter_enabled = 11;
  if (CheckHasBit(cached_has_bits, 0x00000200U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        11, this_._internal_agc_limiter_enabled(), target);
  }

  // optional bool noise_robust_agc_enabled = 12;
  if (CheckHasBit(cached_has_bits, 0x00000400U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        12, this_._internal_noise_robust_agc_enabled(), target);
  }

  // optional bool hpf_enabled = 13;
  if (CheckHasBit(cached_has_bits, 0x00000800U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        13, this_._internal_hpf_enabled(), target);
  }

  // optional bool ns_enabled = 14;
  if (CheckHasBit(cached_has_bits, 0x00002000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        14, this_._internal_ns_enabled(), target);
  }

  // optional int32 ns_level = 15;
  if (CheckHasBit(cached_has_bits, 0x00001000U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<15>(
            stream, this_._internal_ns_level(), target);
  }

  // optional bool transient_suppression_enabled = 16;
  if (CheckHasBit(cached_has_bits, 0x00004000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        16, this_._internal_transient_suppression_enabled(), target);
  }

  // optional string experiments_description = 17;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_experiments_description();
    target = stream->WriteStringMaybeAliased(17, _s, target);
  }

  // optional bool pre_amplifier_enabled = 19;
  if (CheckHasBit(cached_has_bits, 0x00008000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        19, this_._internal_pre_amplifier_enabled(), target);
  }

  // optional float pre_amplifier_fixed_gain_factor = 20;
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        20, this_._internal_pre_amplifier_fixed_gain_factor(), target);
  }

  // optional string api_config_string = 21;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_api_config_string();
    target = stream->WriteStringMaybeAliased(21, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:webrtc.audioproc.Config)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Config::ByteSizeLong(const MessageLite& base) {
  const Config& this_ = static_cast<const Config&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Config::ByteSizeLong() const {
  const Config& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:webrtc.audioproc.Config)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00010000U & cached_has_bits) * 6;
  total_size += ::absl::popcount(0x0000c000U & cached_has_bits) * 3;
  total_size += ::absl::popcount(0x00002f3cU & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x000000c3U)) {
    // optional string experiments_description = 17;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_experiments_description());
    }
    // optional string api_config_string = 21;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_api_config_string());
    }
    // optional int32 aec_suppression_level = 5;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_aec_suppression_level());
    }
    // optional int32 agc_mode = 10;
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_agc_mode());
    }
  }
   {
    // optional int32 ns_level = 15;
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_ns_level());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void Config::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Config*>(&to_msg);
  auto& from = static_cast<const Config&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:webrtc.audioproc.Config)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_experiments_description(from._internal_experiments_description());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_api_config_string(from._internal_api_config_string());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.aec_enabled_ = from._impl_.aec_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.aec_delay_agnostic_enabled_ = from._impl_.aec_delay_agnostic_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.aec_drift_compensation_enabled_ = from._impl_.aec_drift_compensation_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.aec_extended_filter_enabled_ = from._impl_.aec_extended_filter_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.aec_suppression_level_ = from._impl_.aec_suppression_level_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.agc_mode_ = from._impl_.agc_mode_;
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000ff00U)) {
    if (CheckHasBit(cached_has_bits, 0x00000100U)) {
      _this->_impl_.agc_enabled_ = from._impl_.agc_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000200U)) {
      _this->_impl_.agc_limiter_enabled_ = from._impl_.agc_limiter_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000400U)) {
      _this->_impl_.noise_robust_agc_enabled_ = from._impl_.noise_robust_agc_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000800U)) {
      _this->_impl_.hpf_enabled_ = from._impl_.hpf_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00001000U)) {
      _this->_impl_.ns_level_ = from._impl_.ns_level_;
    }
    if (CheckHasBit(cached_has_bits, 0x00002000U)) {
      _this->_impl_.ns_enabled_ = from._impl_.ns_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00004000U)) {
      _this->_impl_.transient_suppression_enabled_ = from._impl_.transient_suppression_enabled_;
    }
    if (CheckHasBit(cached_has_bits, 0x00008000U)) {
      _this->_impl_.pre_amplifier_enabled_ = from._impl_.pre_amplifier_enabled_;
    }
  }
  if (CheckHasBit(cached_has_bits, 0x00010000U)) {
    _this->_impl_.pre_amplifier_fixed_gain_factor_ = from._impl_.pre_amplifier_fixed_gain_factor_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void Config::CopyFrom(const Config& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:webrtc.audioproc.Config)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Config::InternalSwap(Config* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.experiments_description_, &other->_impl_.experiments_description_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.api_config_string_, &other->_impl_.api_config_string_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Config, _impl_.pre_amplifier_fixed_gain_factor_)
      + sizeof(Config::_impl_.pre_amplifier_fixed_gain_factor_)
      - PROTOBUF_FIELD_OFFSET(Config, _impl_.aec_enabled_)>(
          reinterpret_cast<char*>(&_impl_.aec_enabled_),
          reinterpret_cast<char*>(&other->_impl_.aec_enabled_));
}

// ===================================================================

PlayoutAudioDeviceInfo::PlayoutAudioDeviceInfo(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, PlayoutAudioDeviceInfo_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:webrtc.audioproc.PlayoutAudioDeviceInfo)
}
PlayoutAudioDeviceInfo::PlayoutAudioDeviceInfo(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PlayoutAudioDeviceInfo& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, PlayoutAudioDeviceInfo_get_class_data()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE PlayoutAudioDeviceInfo::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void PlayoutAudioDeviceInfo::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, id_),
           0,
           offsetof(Impl_, max_volume_) -
               offsetof(Impl_, id_) +
               sizeof(Impl_::max_volume_));
}
PlayoutAudioDeviceInfo::~PlayoutAudioDeviceInfo() {
  // @@protoc_insertion_point(destructor:webrtc.audioproc.PlayoutAudioDeviceInfo)
  SharedDtor(*this);
}
inline void PlayoutAudioDeviceInfo::SharedDtor(MessageLite& self) {
  PlayoutAudioDeviceInfo& this_ = static_cast<PlayoutAudioDeviceInfo&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite PlayoutAudioDeviceInfo_class_data_ =
    PlayoutAudioDeviceInfo::InternalGenerateClassData_(PlayoutAudioDeviceInfo_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PlayoutAudioDeviceInfo::GetClassData() const {
  return PlayoutAudioDeviceInfo_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PlayoutAudioDeviceInfo::GetClassData() const {
  return PlayoutAudioDeviceInfo_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const PlayoutAudioDeviceInfo::ParseTableT_
    PlayoutAudioDeviceInfo::_table_ =
        PlayoutAudioDeviceInfo::InternalGenerateParseTable_(PlayoutAudioDeviceInfo_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void PlayoutAudioDeviceInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:webrtc.audioproc.PlayoutAudioDeviceInfo)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    ::memset(&_impl_.id_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.max_volume_) -
        reinterpret_cast<char*>(&_impl_.id_)) + sizeof(_impl_.max_volume_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PlayoutAudioDeviceInfo::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PlayoutAudioDeviceInfo& this_ = static_cast<const PlayoutAudioDeviceInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PlayoutAudioDeviceInfo::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PlayoutAudioDeviceInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:webrtc.audioproc.PlayoutAudioDeviceInfo)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 id = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_id(), target);
  }

  // optional int32 max_volume = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_max_volume(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:webrtc.audioproc.PlayoutAudioDeviceInfo)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PlayoutAudioDeviceInfo::ByteSizeLong(const MessageLite& base) {
  const PlayoutAudioDeviceInfo& this_ = static_cast<const PlayoutAudioDeviceInfo&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PlayoutAudioDeviceInfo::ByteSizeLong() const {
  const PlayoutAudioDeviceInfo& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:webrtc.audioproc.PlayoutAudioDeviceInfo)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional int32 id = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_id());
    }
    // optional int32 max_volume = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_max_volume());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void PlayoutAudioDeviceInfo::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<PlayoutAudioDeviceInfo*>(&to_msg);
  auto& from = static_cast<const PlayoutAudioDeviceInfo&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:webrtc.audioproc.PlayoutAudioDeviceInfo)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_impl_.id_ = from._impl_.id_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.max_volume_ = from._impl_.max_volume_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void PlayoutAudioDeviceInfo::CopyFrom(const PlayoutAudioDeviceInfo& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:webrtc.audioproc.PlayoutAudioDeviceInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void PlayoutAudioDeviceInfo::InternalSwap(PlayoutAudioDeviceInfo* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PlayoutAudioDeviceInfo, _impl_.max_volume_)
      + sizeof(PlayoutAudioDeviceInfo::_impl_.max_volume_)
      - PROTOBUF_FIELD_OFFSET(PlayoutAudioDeviceInfo, _impl_.id_)>(
          reinterpret_cast<char*>(&_impl_.id_),
          reinterpret_cast<char*>(&other->_impl_.id_));
}

// ===================================================================

RuntimeSetting::RuntimeSetting(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, RuntimeSetting_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:webrtc.audioproc.RuntimeSetting)
}
PROTOBUF_NDEBUG_INLINE RuntimeSetting::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::webrtc::audioproc::RuntimeSetting& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

RuntimeSetting::RuntimeSetting(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RuntimeSetting& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, RuntimeSetting_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RuntimeSetting* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.playout_audio_device_change_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.playout_audio_device_change_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, capture_pre_gain_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, capture_pre_gain_),
           offsetof(Impl_, capture_post_gain_) -
               offsetof(Impl_, capture_pre_gain_) +
               sizeof(Impl_::capture_post_gain_));

  // @@protoc_insertion_point(copy_constructor:webrtc.audioproc.RuntimeSetting)
}
PROTOBUF_NDEBUG_INLINE RuntimeSetting::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void RuntimeSetting::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, playout_audio_device_change_),
           0,
           offsetof(Impl_, capture_post_gain_) -
               offsetof(Impl_, playout_audio_device_change_) +
               sizeof(Impl_::capture_post_gain_));
}
RuntimeSetting::~RuntimeSetting() {
  // @@protoc_insertion_point(destructor:webrtc.audioproc.RuntimeSetting)
  SharedDtor(*this);
}
inline void RuntimeSetting::SharedDtor(MessageLite& self) {
  RuntimeSetting& this_ = static_cast<RuntimeSetting&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.playout_audio_device_change_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite RuntimeSetting_class_data_ =
    RuntimeSetting::InternalGenerateClassData_(RuntimeSetting_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RuntimeSetting::GetClassData() const {
  return RuntimeSetting_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RuntimeSetting::GetClassData() const {
  return RuntimeSetting_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const RuntimeSetting::ParseTableT_
    RuntimeSetting::_table_ =
        RuntimeSetting::InternalGenerateParseTable_(RuntimeSetting_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void RuntimeSetting::Clear() {
// @@protoc_insertion_point(message_clear_start:webrtc.audioproc.RuntimeSetting)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.playout_audio_device_change_ != nullptr);
    _impl_.playout_audio_device_change_->Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000007eU)) {
    ::memset(&_impl_.capture_pre_gain_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.capture_post_gain_) -
        reinterpret_cast<char*>(&_impl_.capture_pre_gain_)) + sizeof(_impl_.capture_post_gain_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL RuntimeSetting::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const RuntimeSetting& this_ = static_cast<const RuntimeSetting&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL RuntimeSetting::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const RuntimeSetting& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:webrtc.audioproc.RuntimeSetting)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float capture_pre_gain = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_capture_pre_gain(), target);
  }

  // optional float custom_render_processing_setting = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_custom_render_processing_setting(), target);
  }

  // optional float capture_fixed_post_gain = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_capture_fixed_post_gain(), target);
  }

  // optional int32 playout_volume_change = 4;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<4>(
            stream, this_._internal_playout_volume_change(), target);
  }

  // optional .webrtc.audioproc.PlayoutAudioDeviceInfo playout_audio_device_change = 5;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.playout_audio_device_change_, this_._impl_.playout_audio_device_change_->GetCachedSize(), target,
        stream);
  }

  // optional bool capture_output_used = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_capture_output_used(), target);
  }

  // optional float capture_post_gain = 7;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        7, this_._internal_capture_post_gain(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:webrtc.audioproc.RuntimeSetting)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t RuntimeSetting::ByteSizeLong(const MessageLite& base) {
  const RuntimeSetting& this_ = static_cast<const RuntimeSetting&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t RuntimeSetting::ByteSizeLong() const {
  const RuntimeSetting& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:webrtc.audioproc.RuntimeSetting)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x0000004eU & cached_has_bits) * 5;
  total_size += static_cast<bool>(0x00000020U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x00000011U)) {
    // optional .webrtc.audioproc.PlayoutAudioDeviceInfo playout_audio_device_change = 5;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.playout_audio_device_change_);
    }
    // optional int32 playout_volume_change = 4;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_playout_volume_change());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void RuntimeSetting::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<RuntimeSetting*>(&to_msg);
  auto& from = static_cast<const RuntimeSetting&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:webrtc.audioproc.RuntimeSetting)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.playout_audio_device_change_ != nullptr);
      if (_this->_impl_.playout_audio_device_change_ == nullptr) {
        _this->_impl_.playout_audio_device_change_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.playout_audio_device_change_);
      } else {
        _this->_impl_.playout_audio_device_change_->MergeFrom(*from._impl_.playout_audio_device_change_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.capture_pre_gain_ = from._impl_.capture_pre_gain_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.custom_render_processing_setting_ = from._impl_.custom_render_processing_setting_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.capture_fixed_post_gain_ = from._impl_.capture_fixed_post_gain_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.playout_volume_change_ = from._impl_.playout_volume_change_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.capture_output_used_ = from._impl_.capture_output_used_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.capture_post_gain_ = from._impl_.capture_post_gain_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void RuntimeSetting::CopyFrom(const RuntimeSetting& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:webrtc.audioproc.RuntimeSetting)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void RuntimeSetting::InternalSwap(RuntimeSetting* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.capture_post_gain_)
      + sizeof(RuntimeSetting::_impl_.capture_post_gain_)
      - PROTOBUF_FIELD_OFFSET(RuntimeSetting, _impl_.playout_audio_device_change_)>(
          reinterpret_cast<char*>(&_impl_.playout_audio_device_change_),
          reinterpret_cast<char*>(&other->_impl_.playout_audio_device_change_));
}

// ===================================================================

Event::Event(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Event_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:webrtc.audioproc.Event)
}
PROTOBUF_NDEBUG_INLINE Event::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::webrtc::audioproc::Event& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

Event::Event(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Event& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, Event_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Event* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.init_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.init_)
                : nullptr;
  _impl_.reverse_stream_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.reverse_stream_)
                : nullptr;
  _impl_.stream_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.stream_)
                : nullptr;
  _impl_.config_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.config_)
                : nullptr;
  _impl_.runtime_setting_ = (CheckHasBit(cached_has_bits, 0x00000010U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.runtime_setting_)
                : nullptr;
  _impl_.type_ = from._impl_.type_;

  // @@protoc_insertion_point(copy_constructor:webrtc.audioproc.Event)
}
PROTOBUF_NDEBUG_INLINE Event::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void Event::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, init_),
           0,
           offsetof(Impl_, type_) -
               offsetof(Impl_, init_) +
               sizeof(Impl_::type_));
}
Event::~Event() {
  // @@protoc_insertion_point(destructor:webrtc.audioproc.Event)
  SharedDtor(*this);
}
inline void Event::SharedDtor(MessageLite& self) {
  Event& this_ = static_cast<Event&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.init_;
  delete this_._impl_.reverse_stream_;
  delete this_._impl_.stream_;
  delete this_._impl_.config_;
  delete this_._impl_.runtime_setting_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite Event_class_data_ =
    Event::InternalGenerateClassData_(Event_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Event::GetClassData() const {
  return Event_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Event::GetClassData() const {
  return Event_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const Event::ParseTableT_
    Event::_table_ =
        Event::InternalGenerateParseTable_(Event_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void Event::Clear() {
// @@protoc_insertion_point(message_clear_start:webrtc.audioproc.Event)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(_impl_.init_ != nullptr);
      _impl_.init_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(_impl_.reverse_stream_ != nullptr);
      _impl_.reverse_stream_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.stream_ != nullptr);
      _impl_.stream_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.config_ != nullptr);
      _impl_.config_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(_impl_.runtime_setting_ != nullptr);
      _impl_.runtime_setting_->Clear();
    }
  }
  _impl_.type_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Event::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Event& this_ = static_cast<const Event&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Event::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Event& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:webrtc.audioproc.Event)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // required .webrtc.audioproc.Event.Type type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_type(), target);
  }

  // optional .webrtc.audioproc.Init init = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.init_, this_._impl_.init_->GetCachedSize(), target,
        stream);
  }

  // optional .webrtc.audioproc.ReverseStream reverse_stream = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.reverse_stream_, this_._impl_.reverse_stream_->GetCachedSize(), target,
        stream);
  }

  // optional .webrtc.audioproc.Stream stream = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.stream_, this_._impl_.stream_->GetCachedSize(), target,
        stream);
  }

  // optional .webrtc.audioproc.Config config = 5;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.config_, this_._impl_.config_->GetCachedSize(), target,
        stream);
  }

  // optional .webrtc.audioproc.RuntimeSetting runtime_setting = 6;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.runtime_setting_, this_._impl_.runtime_setting_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:webrtc.audioproc.Event)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Event::ByteSizeLong(const MessageLite& base) {
  const Event& this_ = static_cast<const Event&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Event::ByteSizeLong() const {
  const Event& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:webrtc.audioproc.Event)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000001fU)) {
    // optional .webrtc.audioproc.Init init = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.init_);
    }
    // optional .webrtc.audioproc.ReverseStream reverse_stream = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.reverse_stream_);
    }
    // optional .webrtc.audioproc.Stream stream = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.stream_);
    }
    // optional .webrtc.audioproc.Config config = 5;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.config_);
    }
    // optional .webrtc.audioproc.RuntimeSetting runtime_setting = 6;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.runtime_setting_);
    }
  }
   {
    // required .webrtc.audioproc.Event.Type type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void Event::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<Event*>(&to_msg);
  auto& from = static_cast<const Event&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:webrtc.audioproc.Event)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.init_ != nullptr);
      if (_this->_impl_.init_ == nullptr) {
        _this->_impl_.init_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.init_);
      } else {
        _this->_impl_.init_->MergeFrom(*from._impl_.init_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.reverse_stream_ != nullptr);
      if (_this->_impl_.reverse_stream_ == nullptr) {
        _this->_impl_.reverse_stream_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.reverse_stream_);
      } else {
        _this->_impl_.reverse_stream_->MergeFrom(*from._impl_.reverse_stream_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.stream_ != nullptr);
      if (_this->_impl_.stream_ == nullptr) {
        _this->_impl_.stream_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.stream_);
      } else {
        _this->_impl_.stream_->MergeFrom(*from._impl_.stream_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.config_ != nullptr);
      if (_this->_impl_.config_ == nullptr) {
        _this->_impl_.config_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.config_);
      } else {
        _this->_impl_.config_->MergeFrom(*from._impl_.config_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      ABSL_DCHECK(from._impl_.runtime_setting_ != nullptr);
      if (_this->_impl_.runtime_setting_ == nullptr) {
        _this->_impl_.runtime_setting_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.runtime_setting_);
      } else {
        _this->_impl_.runtime_setting_->MergeFrom(*from._impl_.runtime_setting_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.type_ = from._impl_.type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void Event::CopyFrom(const Event& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:webrtc.audioproc.Event)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool Event::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const Event&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  return true;
}

void Event::InternalSwap(Event* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Event, _impl_.type_)
      + sizeof(Event::_impl_.type_)
      - PROTOBUF_FIELD_OFFSET(Event, _impl_.init_)>(
          reinterpret_cast<char*>(&_impl_.init_),
          reinterpret_cast<char*>(&other->_impl_.init_));
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace audioproc
}  // namespace webrtc
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
