Test Muninn RUDP URL media settings
This commit is contained in:
parent
cc14932522
commit
86ccd436dc
2 changed files with 58 additions and 0 deletions
|
|
@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.20)
|
|||
project(mimir_obs_stem_source LANGUAGES CXX)
|
||||
|
||||
find_package(libobs REQUIRED CONFIG)
|
||||
include(CTest)
|
||||
|
||||
add_library(mimir_obs_stem_source MODULE
|
||||
mimir_obs_muninn_source.cpp
|
||||
|
|
@ -21,3 +22,10 @@ add_executable(muninn_media_decoder_probe
|
|||
target_compile_features(muninn_media_decoder_probe PRIVATE cxx_std_20)
|
||||
target_include_directories(muninn_media_decoder_probe PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_executable(muninn_rudp_url_tests
|
||||
tests/muninn_rudp_url_tests.cpp)
|
||||
target_compile_features(muninn_rudp_url_tests PRIVATE cxx_std_20)
|
||||
target_include_directories(muninn_rudp_url_tests PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR})
|
||||
add_test(NAME muninn_rudp_url_tests COMMAND muninn_rudp_url_tests)
|
||||
|
|
|
|||
50
native/obs_stem_source/tests/muninn_rudp_url_tests.cpp
Normal file
50
native/obs_stem_source/tests/muninn_rudp_url_tests.cpp
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#include "muninn_rudp_url.h"
|
||||
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
namespace {
|
||||
|
||||
void require(bool condition, const std::string &message)
|
||||
{
|
||||
if (!condition) {
|
||||
std::cerr << message << '\n';
|
||||
std::exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int main()
|
||||
{
|
||||
const auto configured = muninn_rudp_url::parse(
|
||||
"rudp://192.168.1.66:5204/muninn.raven.av.rudp?channel=media&format=muninn-typed-media&connection=0x6d750001&sender_resend_delay_ms=5&reliable_expire_after_ms=1200&assembly_deadline_ms=1200&gap_wait_ms=16");
|
||||
require(configured.has_value(), "configured RUDP URL did not parse");
|
||||
require(configured->port == 5204, "configured RUDP URL port was not parsed");
|
||||
require(configured->video_local_port == 15204, "configured RUDP video local port was not derived");
|
||||
require(configured->audio_local_port == 15205, "configured RUDP audio local port was not derived");
|
||||
require(configured->connection_id == 0x6d750001, "configured RUDP connection id was not parsed");
|
||||
require(configured->reliable_expire_after_ms == 1200, "configured reliable expiry did not survive parse");
|
||||
require(configured->video_assembly_deadline_ms == 1200, "configured assembly deadline did not survive parse");
|
||||
require(configured->gap_wait_ms == 16, "configured gap wait did not survive parse");
|
||||
|
||||
const auto clamped = muninn_rudp_url::parse(
|
||||
"rudp://192.168.1.66:5204/muninn.raven.av.rudp?reliable_expire_after_ms=9000&assembly_deadline_ms=9000");
|
||||
require(clamped.has_value(), "oversized latency RUDP URL did not parse");
|
||||
require(clamped->reliable_expire_after_ms == muninn_rudp_url::MaxLatencyBudgetMs,
|
||||
"oversized reliable expiry did not clamp to the max latency budget");
|
||||
require(clamped->video_assembly_deadline_ms == muninn_rudp_url::MaxLatencyBudgetMs,
|
||||
"oversized assembly deadline did not clamp to the max latency budget");
|
||||
|
||||
const auto fallback = muninn_rudp_url::parse("rudp://192.168.1.66:5204/muninn.raven.av.rudp");
|
||||
require(fallback.has_value(), "minimal RUDP URL did not parse");
|
||||
require(fallback->connection_id == muninn_rudp_url::DefaultMediaRudpConnectionId,
|
||||
"minimal RUDP URL did not keep the default connection id");
|
||||
require(fallback->reliable_expire_after_ms == muninn_rudp_url::DefaultReliableExpireAfterMs,
|
||||
"minimal RUDP URL did not keep the default reliable expiry");
|
||||
require(fallback->video_assembly_deadline_ms == muninn_rudp_url::DefaultVideoAssemblyDeadlineMs,
|
||||
"minimal RUDP URL did not keep the default assembly deadline");
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Reference in a new issue