include_rules = [
  "+third_party/libyuv",
  "+common_video",
  "+media",
  "+p2p",
  "+pc",
]

specific_include_rules = {
  "peerconnection_jni\.cc": [
    "+voice_engine",
  ],

  # TODO(ossu): Remove this exception when {builtin_,}audio_encoder_factory.h
  # has moved to api/.
  "peerconnectioninterface\.h": [
    "+call/callfactoryinterface.h",
    "+logging/rtc_event_log/rtc_event_log_factory_interface.h",
    "+modules/audio_coding/codecs/audio_encoder_factory.h",
    "+modules/audio_coding/codecs/builtin_audio_encoder_factory.h",
  ],

  # Needed because AudioEncoderOpus is in the wrong place for
  # backwards compatibilty reasons. See
  # https://bugs.chromium.org/p/webrtc/issues/detail?id=7847
  "audio_encoder_opus\.h": [
    "+modules/audio_coding/codecs/opus/audio_encoder_opus.h",
  ],

  # We allow .cc files in webrtc/api/ to #include a bunch of stuff
  # that's off-limits for the .h files. That's because .h files leak
  # their #includes to whoever's #including them, but .cc files do not
  # since no one #includes them.
  ".*\.cc": [
    "+modules/audio_coding",
  ],

  ".*i420_buffer\.h": [
    "+system_wrappers/include/aligned_malloc.h",
  ],

  # Needed to use the APM statistics.
  "mediastreaminterface.h": [
    "+modules/audio_processing/include/audio_processing_statistics.h",
  ],
}
