# Copyright (c) 2020 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

import("../../../webrtc.gni")

rtc_library("nack_module") {
  sources = [
    "nack_module.cc",
    "nack_module.h",
  ]

  deps = [
    "..:nack_requester",
    "../..:module_api",
    "../../../api/units:time_delta",
    "../../../api/units:timestamp",
    "../../../rtc_base:checks",
    "../../../rtc_base:criticalsection",
    "../../../rtc_base:logging",
    "../../../rtc_base:macromagic",
    "../../../rtc_base:rtc_numerics",
    "../../../rtc_base/experiments:field_trial_parser",
    "../../../rtc_base/synchronization:mutex",
    "../../../system_wrappers",
    "../../../system_wrappers:field_trial",
    "../../utility",
  ]
  absl_deps = [ "//third_party/abseil-cpp/absl/base:core_headers" ]
}
