Skip to content

Commit f4b97b5

Browse files
committed
TestSvcProducerStreamManager
1 parent 6f46922 commit f4b97b5

File tree

4 files changed

+1312
-40
lines changed

4 files changed

+1312
-40
lines changed

worker/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,7 @@ test_sources = [
420420
'test/src/RTC/TestConsumer.cpp',
421421
'test/src/RTC/TestSimpleProducerStreamManager.cpp',
422422
'test/src/RTC/TestSimulcastProducerStreamManager.cpp',
423+
'test/src/RTC/TestSvcProducerStreamManager.cpp',
423424
'test/src/RTC/TestKeyFrameRequestManager.cpp',
424425
'test/src/RTC/TestNackGenerator.cpp',
425426
'test/src/RTC/TestRateCalculator.cpp',

worker/test/src/RTC/TestSimpleProducerStreamManager.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -260,10 +260,10 @@ SCENARIO("SimpleProducerStreamManager", "[rtp][producer-stream-manager][simple]"
260260
MockListener listener;
261261
auto encodingContext = std::make_unique<MockEncodingContext>();
262262
auto manager = createManager(
263-
&listener,
264-
/*keyFrameSupported*/ false,
265-
RTC::Media::Kind::VIDEO,
266-
std::move(encodingContext));
263+
&listener,
264+
/*keyFrameSupported*/ false,
265+
RTC::Media::Kind::VIDEO,
266+
std::move(encodingContext));
267267
auto rtpStream = createRtpStreamRecv();
268268

269269
manager->ProducerRtpStream(rtpStream.get(), mappedSsrc);
@@ -331,7 +331,7 @@ SCENARIO("SimpleProducerStreamManager", "[rtp][producer-stream-manager][simple]"
331331
REQUIRE(result.tsOffset == 0u);
332332
}
333333

334-
SECTION("OnTransportConnected requests keyframe when active")
334+
SECTION("OnTransportConnected() requests keyframe when active")
335335
{
336336
MockListener listener;
337337
auto manager = createManager(&listener);
@@ -346,7 +346,7 @@ SCENARIO("SimpleProducerStreamManager", "[rtp][producer-stream-manager][simple]"
346346
REQUIRE(listener.lastKeyFrameRequestedMappedSsrc == mappedSsrc);
347347
}
348348

349-
SECTION("OnTransportConnected does not request keyframe when not active")
349+
SECTION("OnTransportConnected() does not request keyframe when not active")
350350
{
351351
MockListener listener;
352352
listener.isActive = false;
@@ -359,7 +359,7 @@ SCENARIO("SimpleProducerStreamManager", "[rtp][producer-stream-manager][simple]"
359359
REQUIRE(listener.keyFrameRequestCount == 0);
360360
}
361361

362-
SECTION("OnResumed sets syncRequired and requests keyframe")
362+
SECTION("OnResumed() sets syncRequired and requests keyframe")
363363
{
364364
MockListener listener;
365365
auto manager = createManager(&listener);
@@ -384,7 +384,7 @@ SCENARIO("SimpleProducerStreamManager", "[rtp][producer-stream-manager][simple]"
384384
REQUIRE(result.type == RtpPacketProcessResult::Type::BUFFER);
385385
}
386386

387-
SECTION("IncreaseLayer returns producer bitrate when it is less than available bitrate")
387+
SECTION("IncreaseLayer() returns producer bitrate when it is less than available bitrate")
388388
{
389389
MockListener listener;
390390
auto manager = createManager(&listener);
@@ -400,12 +400,12 @@ SCENARIO("SimpleProducerStreamManager", "[rtp][producer-stream-manager][simple]"
400400
auto nowMs = DepLibUV::GetTimeMs();
401401
auto steamBitrate = rtpStream->GetBitrate(nowMs);
402402
auto usedBitrate = manager->IncreaseLayer(
403-
/*bitrate*/ steamBitrate + 1u, /*considerLoss*/ false, /*lossPercentage*/ 0.0f, nowMs);
403+
/*bitrate*/ steamBitrate + 1u, /*considerLoss*/ false, /*lossPercentage*/ 0.0f, nowMs);
404404

405405
REQUIRE(usedBitrate == steamBitrate);
406406
}
407407

408-
SECTION("IncreaseLayer returns available bitrate when it is less than producer bitrate")
408+
SECTION("IncreaseLayer() returns available bitrate when it is less than producer bitrate")
409409
{
410410
MockListener listener;
411411
auto manager = createManager(&listener);
@@ -422,12 +422,12 @@ SCENARIO("SimpleProducerStreamManager", "[rtp][producer-stream-manager][simple]"
422422
auto streamBitrate = rtpStream->GetBitrate(nowMs);
423423
uint32_t availableBitrate = streamBitrate - 1;
424424
auto usedBitrate = manager->IncreaseLayer(
425-
/*bitrate*/ availableBitrate, /*considerLoss*/ false, /*lossPercentage*/ 0.0f, nowMs);
425+
/*bitrate*/ availableBitrate, /*considerLoss*/ false, /*lossPercentage*/ 0.0f, nowMs);
426426

427427
REQUIRE(usedBitrate == availableBitrate);
428428
}
429429

430-
SECTION("IncreaseLayer returns 0 on second call in same iteration")
430+
SECTION("IncreaseLayer() returns 0 on second call in same iteration")
431431
{
432432
MockListener listener;
433433
auto manager = createManager(&listener);
@@ -455,7 +455,7 @@ SCENARIO("SimpleProducerStreamManager", "[rtp][producer-stream-manager][simple]"
455455
REQUIRE(usedBitrate2 == 0u);
456456
}
457457

458-
SECTION("IncreaseLayer works again after ApplyLayers")
458+
SECTION("IncreaseLayer() works again after ApplyLayers()")
459459
{
460460
MockListener listener;
461461
auto manager = createManager(&listener);
@@ -482,7 +482,7 @@ SCENARIO("SimpleProducerStreamManager", "[rtp][producer-stream-manager][simple]"
482482
REQUIRE(usedBitrate > 0u);
483483
}
484484

485-
SECTION("GetDesiredBitrate returns producer bitrate for video")
485+
SECTION("GetDesiredBitrate() returns producer bitrate for video")
486486
{
487487
MockListener listener;
488488
auto manager = createManager(&listener);
@@ -502,7 +502,7 @@ SCENARIO("SimpleProducerStreamManager", "[rtp][producer-stream-manager][simple]"
502502
REQUIRE(desiredBitrate == steamBitrate);
503503
}
504504

505-
SECTION("GetDesiredBitrate returns 0 for audio kind")
505+
SECTION("GetDesiredBitrate() returns 0 for audio kind")
506506
{
507507
MockListener listener;
508508
auto manager = createManager(&listener, /*keyFrameSupported*/ false, RTC::Media::Kind::AUDIO);

worker/test/src/RTC/TestSimulcastProducerStreamManager.cpp

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
217217
packet->SetTimestamp(1000);
218218
packet->SetPayloadLength(40);
219219

220-
SECTION("ProcessRtpPacket returns DROP when target temporal layer is -1")
220+
SECTION("ProcessRtpPacket() returns DROP when target temporal layer is -1")
221221
{
222222
MockListener listener;
223223
auto manager = createManager(&listener);
@@ -250,7 +250,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
250250
}
251251

252252
SECTION(
253-
"ProcessRtpPacket returns BUFFER when sync required and packet is from target spatial layer but not keyframe")
253+
"ProcessRtpPacket() returns BUFFER when sync required and packet is from target spatial layer but not keyframe")
254254
{
255255
MockListener listener;
256256
auto manager = createManager(&listener);
@@ -270,7 +270,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
270270
REQUIRE(result.type == RTC::ProducerStreamManager::RtpPacketProcessResult::Type::BUFFER);
271271
}
272272

273-
SECTION("ProcessRtpPacket requires keyframe for spatial layer switch")
273+
SECTION("ProcessRtpPacket() requires keyframe for spatial layer switch")
274274
{
275275
MockListener listener;
276276
auto manager = createManager(&listener);
@@ -327,7 +327,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
327327
REQUIRE(manager->GetCurrentSpatialLayer() == 1);
328328
}
329329

330-
SECTION("ProcessRtpPacket returns SILENT_DROP for non-target and non-current spatial layer packet")
330+
SECTION("ProcessRtpPacket() returns SILENT_DROP for non-target and non-current spatial layer packet")
331331
{
332332
MockListener listener;
333333
auto manager = createManager(&listener);
@@ -362,7 +362,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
362362
}
363363

364364
SECTION(
365-
"ProcessRtpPacket returns SILENT_DROP when sync required and packet is from non-target spatial layer")
365+
"ProcessRtpPacket() returns SILENT_DROP when sync required and packet is from non-target spatial layer")
366366
{
367367
MockListener listener;
368368
auto manager = createManager(&listener, /*ssrcs*/ twoSsrcs);
@@ -385,7 +385,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
385385
REQUIRE(result.type == RTC::ProducerStreamManager::RtpPacketProcessResult::Type::SILENT_DROP);
386386
}
387387

388-
SECTION("ProcessRtpPacket returns FORWARD with sendBufferedPackets when syncing with a keyframe")
388+
SECTION("ProcessRtpPacket() returns FORWARD with sendBufferedPackets when syncing with a keyframe")
389389
{
390390
MockListener listener;
391391
auto manager = createManager(&listener);
@@ -411,7 +411,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
411411
REQUIRE(result.sendBufferedPackets == true);
412412
}
413413

414-
SECTION("ProcessRtpPacket returns FORWARD and completes sync when keyFrameSupported is false")
414+
SECTION("ProcessRtpPacket() returns FORWARD and completes sync when keyFrameSupported is false")
415415
{
416416
MockListener listener;
417417
auto manager = createManager(
@@ -437,7 +437,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
437437
REQUIRE(result.tsOffset == 0u);
438438
}
439439

440-
SECTION("ProcessRtpPacket returns DROP for empty payload packets on current spatial layer")
440+
SECTION("ProcessRtpPacket() returns DROP for empty payload packets on current spatial layer")
441441
{
442442
MockListener listener;
443443
auto manager = createManager(
@@ -465,7 +465,8 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
465465
REQUIRE(result.type == RTC::ProducerStreamManager::RtpPacketProcessResult::Type::DROP);
466466
}
467467

468-
SECTION("ProcessRtpPacket returns SILENT_DROP for empty payload packets on non-current spatial layer")
468+
SECTION(
469+
"ProcessRtpPacket() returns SILENT_DROP for empty payload packets on non-current spatial layer")
469470
{
470471
MockListener listener;
471472
auto manager = createManager(
@@ -494,7 +495,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
494495
REQUIRE(result.type == RTC::ProducerStreamManager::RtpPacketProcessResult::Type::SILENT_DROP);
495496
}
496497

497-
SECTION("ProcessRtpPacket returns FORWARD for current layer packets after sync")
498+
SECTION("ProcessRtpPacket() returns FORWARD for current layer packets after sync")
498499
{
499500
MockListener listener;
500501
auto manager = createManager(
@@ -524,7 +525,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
524525
REQUIRE(result.tsOffset == 0u);
525526
}
526527

527-
SECTION("ProcessRtpPacket forwards packets from current layer after spatial switch")
528+
SECTION("ProcessRtpPacket() forwards packets from current layer after spatial switch")
528529
{
529530
MockListener listener;
530531
auto manager = createManager(
@@ -577,7 +578,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
577578
REQUIRE(result.type == RTC::ProducerStreamManager::RtpPacketProcessResult::Type::SILENT_DROP);
578579
}
579580

580-
SECTION("OnTransportConnected sets syncRequired")
581+
SECTION("OnTransportConnected() sets syncRequired")
581582
{
582583
MockListener listener;
583584
auto manager = createManager(
@@ -620,7 +621,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
620621
REQUIRE(result.isSyncPacket == true);
621622
}
622623

623-
SECTION("OnTransportConnected requests keyframe when active and target changes")
624+
SECTION("OnTransportConnected() requests keyframe when active and target changes")
624625
{
625626
MockListener listener;
626627
auto manager = createManager(&listener, /*ssrcs*/ twoSsrcs, /*preferredLayers*/ { 1, 0 });
@@ -659,7 +660,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
659660
REQUIRE(listener.keyFrameRequestCount > keyFrameCountBefore);
660661
}
661662

662-
SECTION("OnTransportConnected does not request keyframe when not active")
663+
SECTION("OnTransportConnected() does not request keyframe when not active")
663664
{
664665
MockListener listener;
665666
listener.isActive = false;
@@ -672,7 +673,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
672673
REQUIRE(listener.keyFrameRequestCount == 0);
673674
}
674675

675-
SECTION("RecalculateTargetLayers skips spatial layer without Sender Report")
676+
SECTION("RecalculateTargetLayers() skips spatial layer without Sender Report")
676677
{
677678
MockListener listener;
678679
auto manager = createManager(&listener, /*ssrcs*/ twoSsrcs, /*preferredLayers*/ { 1, 0 });
@@ -724,7 +725,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
724725
REQUIRE(result.tsOffset == 0u);
725726
}
726727

727-
SECTION("RecalculateTargetLayers switches to preferred layer after Sender Report")
728+
SECTION("RecalculateTargetLayers() switches to preferred layer after Sender Report")
728729
{
729730
MockListener listener;
730731
auto manager = createManager(&listener, /*ssrcs*/ twoSsrcs, /*preferredLayers*/ { 1, 0 });
@@ -800,7 +801,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
800801
REQUIRE(manager->GetCurrentSpatialLayer() == 1);
801802
}
802803

803-
SECTION("OnResumed sets syncRequired")
804+
SECTION("OnResumed() sets syncRequired")
804805
{
805806
MockListener listener;
806807
auto manager = createManager(
@@ -843,7 +844,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
843844
REQUIRE(result.isSyncPacket == true);
844845
}
845846

846-
SECTION("OnTransportDisconnected resets target layers")
847+
SECTION("OnTransportDisconnected() resets target layers")
847848
{
848849
MockListener listener;
849850
auto manager = createManager(&listener);
@@ -860,7 +861,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
860861
REQUIRE(targetLayers.temporal == -1);
861862
}
862863

863-
SECTION("OnPaused resets target layers")
864+
SECTION("OnPaused() resets target layers")
864865
{
865866
MockListener listener;
866867
auto manager = createManager(&listener);
@@ -877,7 +878,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
877878
REQUIRE(targetLayers.temporal == -1);
878879
}
879880

880-
SECTION("IncreaseLayer returns 0 on second call in same iteration")
881+
SECTION("IncreaseLayer() returns 0 on second call in same iteration")
881882
{
882883
MockListener listener;
883884
auto manager = createManager(&listener, /*ssrcs*/ oneSsrc, /*preferredLayers*/ { 0, 0 });
@@ -905,7 +906,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
905906
REQUIRE(usedBitrate2 == 0u);
906907
}
907908

908-
SECTION("IncreaseLayer works again after ApplyLayers")
909+
SECTION("IncreaseLayer() works again after ApplyLayers()")
909910
{
910911
MockListener listener;
911912
auto manager = createManager(&listener, /*ssrcs*/ twoSsrcs, /*preferredLayers*/ { 1, 0 });
@@ -938,7 +939,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
938939
REQUIRE(usedBitrate > 0u);
939940
}
940941

941-
SECTION("GetDesiredBitrate returns max bitrate across all producer streams")
942+
SECTION("GetDesiredBitrate() returns max bitrate across all producer streams")
942943
{
943944
MockListener listener;
944945
auto manager = createManager(&listener, /*ssrcs*/ twoSsrcs, /*preferredLayers*/ { 1, 0 });
@@ -967,7 +968,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
967968
REQUIRE(desiredBitrate == bitrate1);
968969
}
969970

970-
SECTION("GetProducerCurrentRtpStream returns nullptr before sync")
971+
SECTION("GetProducerCurrentRtpStream() returns nullptr before sync")
971972
{
972973
MockListener listener;
973974
auto manager = createManager(&listener);
@@ -979,7 +980,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
979980
REQUIRE(manager->GetCurrentSpatialLayer() == -1);
980981
}
981982

982-
SECTION("GetProducerTargetRtpStream returns correct stream after UpdateTargetLayers")
983+
SECTION("GetProducerTargetRtpStream() returns correct stream after UpdateTargetLayers()")
983984
{
984985
MockListener listener;
985986
auto manager = createManager(&listener);
@@ -996,7 +997,7 @@ SCENARIO("SimulcastProducerStreamManager", "[rtp][producer-stream-manager][simul
996997
REQUIRE(manager->GetTargetLayers().temporal == 0);
997998
}
998999

999-
SECTION("RequestKeyFrame requests for both target and current spatial layers")
1000+
SECTION("RequestKeyFrame() requests for both target and current spatial layers")
10001001
{
10011002
MockListener listener;
10021003
auto manager = createManager(

0 commit comments

Comments
 (0)