Stop hard-coding default IDs for RTP extensions

Hard-coding default values forces IDs over 14 to be used even
when we offer less than 15 different extensions.

Note that the code relies on MergeRtpHdrExts for making sure
that extension IDs are kept consistent and non-colliding between
different streams (audio/video).

Bug: webrtc:10288
Change-Id: I3e59f7ddc8ca43cea91084a6b7f36df70fb6be4a
Reviewed-on: https://webrtc-review.googlesource.com/c/121646
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26622}
This commit is contained in:
Elad Alon
2019-02-08 23:37:52 +01:00
committed by Commit Bot
parent efc9a14a2b
commit 157540ac05
13 changed files with 149 additions and 130 deletions

View File

@ -919,22 +919,26 @@ ParsedRtcEventLog::LoggedRtpStreamView::LoggedRtpStreamView(
// audio streams. Tracking bug: webrtc:6399
webrtc::RtpHeaderExtensionMap
ParsedRtcEventLog::GetDefaultHeaderExtensionMap() {
// Values from before the default RTP header extension IDs were removed.
constexpr int kAudioLevelDefaultId = 1;
constexpr int kTimestampOffsetDefaultId = 2;
constexpr int kAbsSendTimeDefaultId = 3;
constexpr int kVideoRotationDefaultId = 4;
constexpr int kTransportSequenceNumberDefaultId = 5;
constexpr int kPlayoutDelayDefaultId = 6;
constexpr int kVideoContentTypeDefaultId = 7;
constexpr int kVideoTimingDefaultId = 8;
webrtc::RtpHeaderExtensionMap default_map;
default_map.Register<AudioLevel>(webrtc::RtpExtension::kAudioLevelDefaultId);
default_map.Register<TransmissionOffset>(
webrtc::RtpExtension::kTimestampOffsetDefaultId);
default_map.Register<AbsoluteSendTime>(
webrtc::RtpExtension::kAbsSendTimeDefaultId);
default_map.Register<VideoOrientation>(
webrtc::RtpExtension::kVideoRotationDefaultId);
default_map.Register<VideoContentTypeExtension>(
webrtc::RtpExtension::kVideoContentTypeDefaultId);
default_map.Register<VideoTimingExtension>(
webrtc::RtpExtension::kVideoTimingDefaultId);
default_map.Register<AudioLevel>(kAudioLevelDefaultId);
default_map.Register<TransmissionOffset>(kTimestampOffsetDefaultId);
default_map.Register<AbsoluteSendTime>(kAbsSendTimeDefaultId);
default_map.Register<VideoOrientation>(kVideoRotationDefaultId);
default_map.Register<TransportSequenceNumber>(
webrtc::RtpExtension::kTransportSequenceNumberDefaultId);
default_map.Register<PlayoutDelayLimits>(
webrtc::RtpExtension::kPlayoutDelayDefaultId);
kTransportSequenceNumberDefaultId);
default_map.Register<PlayoutDelayLimits>(kPlayoutDelayDefaultId);
default_map.Register<VideoContentTypeExtension>(kVideoContentTypeDefaultId);
default_map.Register<VideoTimingExtension>(kVideoTimingDefaultId);
return default_map;
}

View File

@ -52,20 +52,6 @@ namespace webrtc {
namespace {
RtpHeaderExtensionMap ExtensionMapWithAllSupportedExtensions() {
RtpHeaderExtensionMap all_extensions;
all_extensions.Register<AudioLevel>(RtpExtension::kAudioLevelDefaultId);
all_extensions.Register<TransmissionOffset>(
RtpExtension::kTimestampOffsetDefaultId);
all_extensions.Register<AbsoluteSendTime>(
RtpExtension::kAbsSendTimeDefaultId);
all_extensions.Register<VideoOrientation>(
RtpExtension::kVideoRotationDefaultId);
all_extensions.Register<TransportSequenceNumber>(
RtpExtension::kTransportSequenceNumberDefaultId);
return all_extensions;
}
struct EventCounts {
size_t audio_send_streams = 0;
size_t audio_recv_streams = 0;
@ -247,7 +233,7 @@ void RtcEventLogSession::WriteVideoRecvConfigs(size_t video_recv_streams,
// Force least one stream to use all header extensions, to ensure
// (statistically) that every extension is tested in packet creation.
RtpHeaderExtensionMap all_extensions =
ExtensionMapWithAllSupportedExtensions();
ParsedRtcEventLog::GetDefaultHeaderExtensionMap();
clock_.AdvanceTimeMicros(prng_.Rand(20) * 1000);
uint32_t ssrc = prng_.Rand<uint32_t>();
@ -276,7 +262,7 @@ void RtcEventLogSession::WriteVideoSendConfigs(size_t video_send_streams,
// Force least one stream to use all header extensions, to ensure
// (statistically) that every extension is tested in packet creation.
RtpHeaderExtensionMap all_extensions =
ExtensionMapWithAllSupportedExtensions();
ParsedRtcEventLog::GetDefaultHeaderExtensionMap();
clock_.AdvanceTimeMicros(prng_.Rand(20) * 1000);
uint32_t ssrc = prng_.Rand<uint32_t>();