Add async simulcast support to VideoProcessor.

For the buffering of |input_frames_|, we assume that frames
are ordered per simulcast layer but we make no assumptions
between layers.

For SVC, we still assume ordering of encode callbacks for
the spatial layers. If we ever add async codecs that support SVC,
they should still obey this assumption.

Bug: webrtc:8448
Change-Id: I4ebb0c1e1d0eef41d850ed5b92aacc79d0a11137
Reviewed-on: https://webrtc-review.googlesource.com/60801
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22380}
This commit is contained in:
Rasmus Brandt
2018-03-12 10:01:16 +01:00
committed by Commit Bot
parent 0fdb317b67
commit 0f1c0bd326
4 changed files with 148 additions and 122 deletions

View File

@ -119,10 +119,6 @@ void TestConfig::SetCodecSettings(VideoCodecType codec_type,
// Spatial scalability is only available with VP9.
RTC_CHECK(num_spatial_layers < 2 || codec_type == kVideoCodecVP9);
// Simulcast/SVC is only supposed to work with software codecs.
RTC_CHECK((!hw_encoder && !hw_decoder) ||
(num_simulcast_streams == 1 && num_spatial_layers == 1));
// Some base code requires numberOfSimulcastStreams to be set to zero
// when simulcast is not used.
codec_settings.numberOfSimulcastStreams =