Fix circular dependencies in webrtc_common.
One reason for the circular deps is that common_types.h is a
historical dumping ground for various structs and defines that
are believed to be generally useful. I tried moving things out
that did not appear to be used downstream (StreamCounters,
RtpCounters etc) and moved the things that seemed used
(RtpHeader + supporting structs) to a new file api/rtp_headers.h.
This makes their place in the api more clear while moving out
the things that don't belong in the API in the first place.
I had to extract out typedefs.h from webrtc_common to resolve
another circular dependency. I believe checks includes typedefs,
but common depends on checks.
Bug: webrtc:7745
Change-Id: I725d49616b1ec0cdc8b74be7c078f7a4d46f084b
Reviewed-on: https://webrtc-review.googlesource.com/33001
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21295}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 592039f..94dd865 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -59,6 +59,8 @@
"proxy.h",
"rtcerror.cc",
"rtcerror.h",
+ "rtp_headers.cc",
+ "rtp_headers.h",
"rtpparameters.cc",
"rtpparameters.h",
"rtpreceiverinterface.h",
@@ -84,6 +86,7 @@
]
deps = [
+ ":array_view",
":optional",
":rtc_stats_api",
":video_frame_api",
@@ -93,10 +96,14 @@
# Basically, don't add stuff here. You might break sensitive downstream
# targets like pnacl. API should not depend on anything outside of this
# file, really. All these should arguably go away in time.
+ "..:typedefs",
"..:webrtc_common",
"../modules/audio_processing:audio_processing_statistics",
+ "../rtc_base:checks",
+ "../rtc_base:deprecation",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
+ "../rtc_base:stringutils",
]
# This is needed until bugs.webrtc.org/7504 is removed so this target can