webrtc/test/call_config_utils_unittest.cc
Harald Alvestrand d7b28ebba1 Move all the receiver SSRC choices to the AudioChannel/VideoChannel
This makes the mediachannels not have to care about reportig SSRCs,
these are a concern of the RTP/RTCP module and the Channel only.

This allows deleting ~300 lines of code propagating and caching
SSRCs for sending RTCP reports that were following the wrong abstraction.

Bug: webrtc:41480926
Change-Id: I56eee4628011a13613ed8d977f3ef91ea912e4fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/442881
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#46966}
2026-02-20 10:02:57 -08:00

62 lines
2.5 KiB
C++

/*
* Copyright (c) 2019 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include "test/call_config_utils.h"
#include "api/rtp_headers.h"
#include "call/video_receive_stream.h"
#include "test/gtest.h"
namespace webrtc {
namespace test {
TEST(CallConfigUtils, MarshalUnmarshalProcessSameObject) {
VideoReceiveStreamInterface::Config recv_config(nullptr);
VideoReceiveStreamInterface::Decoder decoder;
decoder.payload_type = 10;
decoder.video_format.name = "test";
decoder.video_format.parameters["99"] = "b";
recv_config.decoders.push_back(decoder);
recv_config.render_delay_ms = 10;
recv_config.rtp.remote_ssrc = 100;
recv_config.rtp.rtcp_mode = RtcpMode::kCompound;
recv_config.rtp.lntf.enabled = false;
recv_config.rtp.nack.rtp_history_ms = 150;
recv_config.rtp.red_payload_type = 50;
recv_config.rtp.rtx_ssrc = 1000;
recv_config.rtp.rtx_associated_payload_types[10] = 10;
VideoReceiveStreamInterface::Config unmarshaled_config =
ParseVideoReceiveStreamJsonConfig(
nullptr, GenerateVideoReceiveStreamJsonConfig(recv_config));
EXPECT_EQ(recv_config.decoders[0].payload_type,
unmarshaled_config.decoders[0].payload_type);
EXPECT_EQ(recv_config.decoders[0].video_format.name,
unmarshaled_config.decoders[0].video_format.name);
EXPECT_EQ(recv_config.decoders[0].video_format.parameters,
unmarshaled_config.decoders[0].video_format.parameters);
EXPECT_EQ(recv_config.render_delay_ms, unmarshaled_config.render_delay_ms);
EXPECT_EQ(recv_config.rtp.remote_ssrc, unmarshaled_config.rtp.remote_ssrc);
EXPECT_EQ(recv_config.rtp.rtcp_mode, unmarshaled_config.rtp.rtcp_mode);
EXPECT_EQ(recv_config.rtp.lntf.enabled, unmarshaled_config.rtp.lntf.enabled);
EXPECT_EQ(recv_config.rtp.nack.rtp_history_ms,
unmarshaled_config.rtp.nack.rtp_history_ms);
EXPECT_EQ(recv_config.rtp.red_payload_type,
unmarshaled_config.rtp.red_payload_type);
EXPECT_EQ(recv_config.rtp.rtx_ssrc, unmarshaled_config.rtp.rtx_ssrc);
EXPECT_EQ(recv_config.rtp.rtx_associated_payload_types,
unmarshaled_config.rtp.rtx_associated_payload_types);
}
} // namespace test
} // namespace webrtc