| Index: webrtc/test/layer_filtering_transport.cc
|
| diff --git a/webrtc/test/layer_filtering_transport.cc b/webrtc/test/layer_filtering_transport.cc
|
| index d6f3591180743bdcca70ab2f116c9671c3f36f65..b9bc24d3ee53ad344a343c18e1c05a2bdfee2643 100644
|
| --- a/webrtc/test/layer_filtering_transport.cc
|
| +++ b/webrtc/test/layer_filtering_transport.cc
|
| @@ -29,9 +29,15 @@ LayerFilteringTransport::LayerFilteringTransport(
|
| vp8_video_payload_type_(vp8_video_payload_type),
|
| vp9_video_payload_type_(vp9_video_payload_type),
|
| tl_discard_threshold_(tl_discard_threshold),
|
| - sl_discard_threshold_(sl_discard_threshold),
|
| - current_seq_num_(10000) {
|
| -} // TODO(ivica): random seq num?
|
| + sl_discard_threshold_(sl_discard_threshold) {
|
| +}
|
| +
|
| +uint16_t LayerFilteringTransport::NextSequenceNumber(uint32_t ssrc) {
|
| + auto it = current_seq_nums_.find(ssrc);
|
| + if (it == current_seq_nums_.end())
|
| + return current_seq_nums_[ssrc] = 10000;
|
| + return ++it->second;
|
| +}
|
|
|
| bool LayerFilteringTransport::SendRtp(const uint8_t* packet,
|
| size_t length,
|
| @@ -88,13 +94,11 @@ bool LayerFilteringTransport::SendRtp(const uint8_t* packet,
|
| // We are discarding some of the packets (specifically, whole layers), so
|
| // make sure the marker bit is set properly, and that sequence numbers are
|
| // continuous.
|
| - if (set_marker_bit) {
|
| + if (set_marker_bit)
|
| temp_buffer[1] |= kRtpMarkerBitMask;
|
| - }
|
| - ByteWriter<uint16_t>::WriteBigEndian(&temp_buffer[2], current_seq_num_);
|
| -
|
| - ++current_seq_num_; // Increase only if packet not discarded.
|
|
|
| + uint16_t seq_num = NextSequenceNumber(header.ssrc);
|
| + ByteWriter<uint16_t>::WriteBigEndian(&temp_buffer[2], seq_num);
|
| return test::DirectTransport::SendRtp(temp_buffer, length, options);
|
| }
|
|
|
|
|