webrtc/api/test
Tony Herre 64437e8cc0 Calculate the audio level of audio packets before encoded transforms
Calculate the RMS audio level of audio packets being sent before
invoking an encoded frame transform, and pass them with the encode frame
object.

Before this, the audio level was calculated at send time by having rms_levels_ look at all audio samples encoded since the last send. This
is fine without a transform, as this is done synchronously after
encoding, but with an async transform which might take arbitrarily long,
we could end up marking older audio packets with newer audio levels, or
not at all.

This also makes things work correctly if external encoded frames are
injected from elsewhere to be sent, and exposes the AudioLevel on the
TransformableFrame interface.

Bug: chromium:337193823, webrtc:42226202
Change-Id: If55d2c1d30dc03408ca9fb0193d791db44428316
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/349263
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tony Herre <herre@google.com>
Cr-Commit-Position: refs/heads/main@{#42193}
2024-04-29 15:14:25 +00:00
..
metrics Revert "Add the java proto options in metrics set proto." 2023-11-30 19:57:51 +00:00
network_emulation Remove all usage of //rtc_base target 2023-01-16 14:36:06 +00:00
pclf Move webrtc::AudioProcessing include to api/ folder 2024-04-20 07:02:50 +00:00
video Provide Environment when creating VideoEncoder in test code 2024-03-12 11:09:31 +00:00
audio_quality_analyzer_interface.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
audioproc_float.cc Add ability for audioproc_f to operate on any AudioProcessing object. 2020-05-19 11:37:18 +00:00
audioproc_float.h Move webrtc::AudioProcessing include to api/ folder 2024-04-20 07:02:50 +00:00
compile_all_headers.cc Create MockTransformableFrame. 2023-11-14 15:51:02 +00:00
create_frame_generator.cc In IvfVideoFrameGenerator test helper allow to pass webrtc::Environment at construction 2024-03-22 16:39:54 +00:00
create_frame_generator.h In IvfVideoFrameGenerator test helper allow to pass webrtc::Environment at construction 2024-03-22 16:39:54 +00:00
create_network_emulation_manager.cc Add a FieldTrialsView argument to the NetworkEmulationManager ctor. 2023-12-05 15:23:01 +00:00
create_network_emulation_manager.h Add a FieldTrialsView argument to the NetworkEmulationManager ctor. 2023-12-05 15:23:01 +00:00
create_peer_connection_quality_test_frame_generator.cc Use classes from media_configuration.h instead of the ones in PeerConnectionE2EQualityTestFixture. 2022-11-07 16:56:47 +00:00
create_peer_connection_quality_test_frame_generator.h Use classes from media_configuration.h instead of the ones in PeerConnectionE2EQualityTestFixture. 2022-11-07 16:56:47 +00:00
create_peerconnection_quality_test_fixture.cc Migrate test_main_lib on new global metrics API 2022-09-23 19:22:37 +00:00
create_peerconnection_quality_test_fixture.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
create_simulcast_test_fixture.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
create_simulcast_test_fixture.h Generalize SimulcastEncoderAdapter, use for H264 & VP8. 2018-06-21 15:57:43 +00:00
create_time_controller.cc Pass Clock through Environment when constructing Call 2023-12-06 19:13:39 +00:00
create_time_controller.h Delete deprecated CreateTimeControllerBasedCallFactory 2023-12-04 11:28:55 +00:00
create_time_controller_unittest.cc Use newer version of TimeDelta and TimeStamp factories in webrtc 2020-02-10 12:21:17 +00:00
create_video_quality_test_fixture.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
create_video_quality_test_fixture.h Format almost everything. 2019-07-08 13:45:15 +00:00
create_videocodec_test_fixture.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
create_videocodec_test_fixture.h Move VideoCodecTest configuration classes to api/test. 2018-05-22 12:14:38 +00:00
DEPS Delete ProcessThread creation from test TimeController as unused 2022-06-23 09:41:43 +00:00
fake_frame_decryptor.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fake_frame_decryptor.h Add rtc::make_ref_counted to api/ 2022-06-13 15:53:27 +00:00
fake_frame_encryptor.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fake_frame_encryptor.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
frame_generator_interface.cc Prepare to rename RTC_NOTREACHED to RTC_DCHECK_NOTREACHED 2021-11-15 21:44:59 +00:00
frame_generator_interface.h Make FrameGeneratorInterface::fps() pure virtual. 2023-02-27 17:39:27 +00:00
mock_async_dns_resolver.h Convert AsyncDnsResolver to use absl::AnyInvocable 2023-08-31 08:50:40 +00:00
mock_audio_mixer.h Revert "Add checks for api/test mocks to make sure they're complete" 2022-11-10 13:33:59 +00:00
mock_audio_sink.h Extend mocks for public types 2022-11-30 19:01:40 +00:00
mock_data_channel.h [DataChannelInterface] Introduce DataChannelInterface::SendAsync() 2023-04-11 19:46:36 +00:00
mock_dtmf_sender.h Revert "Add checks for api/test mocks to make sure they're complete" 2022-11-10 13:33:59 +00:00
mock_encoder_selector.h RtpSenderInterface::SetEncoderSelector 2022-06-08 11:06:52 +00:00
mock_fec_controller_override.h Revert "Add checks for api/test mocks to make sure they're complete" 2022-11-10 13:33:59 +00:00
mock_frame_decryptor.h Revert "Add checks for api/test mocks to make sure they're complete" 2022-11-10 13:33:59 +00:00
mock_frame_encryptor.h Revert "Add checks for api/test mocks to make sure they're complete" 2022-11-10 13:33:59 +00:00
mock_frame_transformer.h Consolidate encoded transform mocks into api/test/ 2024-01-26 12:46:34 +00:00
mock_media_stream_interface.h Extend mocks for public types 2022-11-30 19:01:40 +00:00
mock_packet_socket_factory.h Remove more ProxyInfo references. 2024-04-17 11:55:00 +00:00
mock_peer_connection_factory_interface.h New PeerConnectionFactory::CreateVideoTrack with refcounted source 2023-03-22 09:10:27 +00:00
mock_peerconnectioninterface.h Update MockPeerConnectionInterface and fake with missing methods. 2024-02-24 08:31:45 +00:00
mock_rtp_transceiver.h Rename header extension API methods 2023-03-07 10:55:58 +00:00
mock_rtpreceiver.h Extend mocks for public types 2022-11-30 19:01:40 +00:00
mock_rtpsender.h Introduce the TransformerHost interface 2024-04-25 07:54:28 +00:00
mock_session_description_interface.h Fix errors in new SessionDescriptionInterface mock 2022-10-25 09:27:40 +00:00
mock_transformable_audio_frame.h Calculate the audio level of audio packets before encoded transforms 2024-04-29 15:14:25 +00:00
mock_transformable_frame.h Create MockTransformableFrame. 2023-11-14 15:51:02 +00:00
mock_transformable_video_frame.h Expose video mimeType for insertable streams 2023-10-25 16:01:32 +00:00
mock_video_bitrate_allocator.h Revert "Add checks for api/test mocks to make sure they're complete" 2022-11-10 13:33:59 +00:00
mock_video_bitrate_allocator_factory.h Revert "Add checks for api/test mocks to make sure they're complete" 2022-11-10 13:33:59 +00:00
mock_video_decoder.h Remove EncodedFrame::MissingFrame and start removing Decode() param 2023-08-30 10:38:35 +00:00
mock_video_decoder_factory.h Delete CreateVideoDecoder from VideoDecoderFactory interface 2024-03-04 16:05:51 +00:00
mock_video_encoder.h Revert "Add checks for api/test mocks to make sure they're complete" 2022-11-10 13:33:59 +00:00
mock_video_encoder_factory.h Delete legacy VideoEncoderFactory::CreateVideoEncoder 2024-04-10 17:11:34 +00:00
mock_video_track.h Extend mocks for public types 2022-11-30 19:01:40 +00:00
neteq_simulator.cc Remove the move constructor from NetEqState. 2018-09-11 09:19:09 +00:00
neteq_simulator.h Add SSRC filter and NetEq accessor to NetEq simulator. 2024-04-05 10:02:38 +00:00
neteq_simulator_factory.cc Add SSRC filter and NetEq accessor to NetEq simulator. 2024-04-05 10:02:38 +00:00
neteq_simulator_factory.h Add SSRC filter and NetEq accessor to NetEq simulator. 2024-04-05 10:02:38 +00:00
network_emulation_manager.cc Move call/simulated_network to test/network 2024-04-29 09:55:06 +00:00
network_emulation_manager.h Add setters to NetworkEmulationManager::SimulatedNetworkNode::Builder. 2023-08-04 10:38:59 +00:00
OWNERS Adds more owners to api/test 2020-12-02 11:19:55 +00:00
peer_network_dependencies.h New struct PeerNetworkDependencies 2021-11-23 08:37:36 +00:00
peerconnection_quality_test_fixture.h Move webrtc::AudioProcessing include to api/ folder 2024-04-20 07:02:50 +00:00
peerconnection_quality_test_fixture_unittest.cc Move media configuration classes out of PeerConnectionE2EQualityTestFixture. 2022-11-07 09:34:59 +00:00
simulated_network.h Change BuiltInNetworkBehaviorConfig.loss_percent to double 2024-02-27 14:38:31 +00:00
simulcast_test_fixture.h generateKeyframe: pass frame_types in bypass mode 2022-12-06 10:54:59 +00:00
stats_observer_interface.h Use backticks not vertical bars to denote variables in comments for /api 2021-07-26 18:27:34 +00:00
test_dependency_factory.cc Set up a new rtc::Thread instance per test. 2020-05-15 09:13:02 +00:00
test_dependency_factory.h [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
time_controller.cc Rename done() into condition(), because it is actually condition in TimeController API 2020-04-29 10:29:09 +00:00
time_controller.h Delete ProcessThread creation from test TimeController as unused 2022-06-23 09:41:43 +00:00
track_id_stream_info_map.h [PCLF] Propagate relevant metadata to all metrics 2022-11-03 16:11:31 +00:00
video_quality_analyzer_interface.h [DVQA] Add a GetSenderPeerName method. 2023-04-17 13:05:33 +00:00
video_quality_test_fixture.h Reland "Unify access to SDP codec parameters" 2024-01-03 12:03:11 +00:00
videocodec_test_fixture.h Refactor video codec testing stats 2023-02-02 15:56:40 +00:00
videocodec_test_stats.cc Report encode/decode latency 2022-02-17 12:17:42 +00:00
videocodec_test_stats.h Refactor video codec testing stats 2023-02-02 15:56:40 +00:00