Index: webrtc/common_types.h |
diff --git a/webrtc/common_types.h b/webrtc/common_types.h |
index 73a1c8340d62e93b65b3d0f4894583826c336705..b0a21d604603eb86ee95c1f88add6a060ac78dab 100644 |
--- a/webrtc/common_types.h |
+++ b/webrtc/common_types.h |
@@ -20,6 +20,7 @@ |
#include "webrtc/api/video/video_content_type.h" |
#include "webrtc/api/video/video_rotation.h" |
+#include "webrtc/api/video/video_timing.h" |
#include "webrtc/base/array_view.h" |
#include "webrtc/base/checks.h" |
#include "webrtc/base/optional.h" |
@@ -588,6 +589,19 @@ class VideoCodec { |
VideoCodecMode mode; |
bool expect_encode_from_texture; |
+ // Timing frames configuration. There is delay of delay_ms between two |
+ // consequent timing frames, excluding outliers. Frame is always made a |
+ // timing frame if it's at least outlier_ratio in percent of "ideal" average |
+ // frame given bitrate and framerate, i.e. if it's bigger than |
+ // |outlier_ratio / 100.0 * bitrate_bps / fps| in bits. This way, timing |
+ // frames will not be sent too often usually. Yet large frames will always |
+ // have timing information for debug purposes because they are more likely to |
+ // cause extra delays. |
+ struct TimingFrameTriggerThresholds { |
+ int64_t delay_ms; |
+ uint16_t outlier_ratio_percent; |
+ } timing_frame_thresholds; |
+ |
bool operator==(const VideoCodec& other) const = delete; |
bool operator!=(const VideoCodec& other) const = delete; |
@@ -763,6 +777,9 @@ struct RTPHeaderExtension { |
bool hasVideoContentType; |
VideoContentType videoContentType; |
+ bool has_video_timing; |
+ VideoTiming video_timing; |
+ |
PlayoutDelay playout_delay = {-1, -1}; |
// For identification of a stream when ssrc is not signaled. See |