Reland "Launch external ref control for vp9 encoder"
This reverts commit 9665b7d1017bc5b44ffe550c4625921d0315df90. Reason for revert: Fixes are in the PS#2 Original change's description: > Revert "Launch external ref control for vp9 encoder" > > This reverts commit 9427b51d6ff50af73c217cb725b1c59b9d701796. > > Reason for revert: Breaks downstream tests > > Original change's description: > > Launch external ref control for vp9 encoder > > > > Change field trial condition to killswitch instead. > > > > Finch trial is going to 100% public today. > > > > Bug: chromium:1027108,webrtc:11319 > > Change-Id: I29494a7c8515a454706983dd15ae444d3f85271f > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173752 > > Reviewed-by: Sergey Silkin <ssilkin@webrtc.org> > > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#31122} > > TBR=ilnik@webrtc.org,ssilkin@webrtc.org > > Change-Id: I44436febb2b646cdd350fa9afee1c3a7ea307d04 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: chromium:1027108, webrtc:11319 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173761 > Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#31123} TBR=ilnik@webrtc.org,ssilkin@webrtc.org Change-Id: I8aed0edca2015297da512aa084515812103c6f48 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1027108, webrtc:11319 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173780 Reviewed-by: Sergey Silkin <ssilkin@webrtc.org> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31125}
This commit is contained in:
parent
e110a44628
commit
1fb4a05e9e
@ -582,10 +582,18 @@ int VP9EncoderImpl::InitEncode(const VideoCodec* inst,
|
|||||||
|
|
||||||
// External reference control is required for different frame rate on spatial
|
// External reference control is required for different frame rate on spatial
|
||||||
// layers because libvpx generates rtp incompatible references in this case.
|
// layers because libvpx generates rtp incompatible references in this case.
|
||||||
external_ref_control_ = field_trial::IsEnabled("WebRTC-Vp9ExternalRefCtrl") ||
|
external_ref_control_ =
|
||||||
|
!field_trial::IsDisabled("WebRTC-Vp9ExternalRefCtrl") ||
|
||||||
(num_spatial_layers_ > 1 &&
|
(num_spatial_layers_ > 1 &&
|
||||||
codec_.mode == VideoCodecMode::kScreensharing) ||
|
codec_.mode == VideoCodecMode::kScreensharing) ||
|
||||||
inter_layer_pred_ == InterLayerPredMode::kOn;
|
inter_layer_pred_ == InterLayerPredMode::kOn;
|
||||||
|
// TODO(ilnik): Remove this workaround once external reference control works
|
||||||
|
// nicely with simulcast SVC mode.
|
||||||
|
// Simlucast SVC mode is currently only used in some tests and is impossible
|
||||||
|
// to trigger for users without using some field trials.
|
||||||
|
if (inter_layer_pred_ == InterLayerPredMode::kOff) {
|
||||||
|
external_ref_control_ = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (num_temporal_layers_ == 1) {
|
if (num_temporal_layers_ == 1) {
|
||||||
gof_.SetGofInfoVP9(kTemporalStructureMode1);
|
gof_.SetGofInfoVP9(kTemporalStructureMode1);
|
||||||
|
|||||||
@ -121,8 +121,6 @@ bool LayerFilteringTransport::SendRtp(const uint8_t* packet,
|
|||||||
if (vp9_header.ss_data_available) {
|
if (vp9_header.ss_data_available) {
|
||||||
RTC_DCHECK(vp9_header.temporal_idx == kNoTemporalIdx ||
|
RTC_DCHECK(vp9_header.temporal_idx == kNoTemporalIdx ||
|
||||||
vp9_header.temporal_idx == 0);
|
vp9_header.temporal_idx == 0);
|
||||||
RTC_DCHECK(vp9_header.spatial_idx == kNoSpatialIdx ||
|
|
||||||
vp9_header.spatial_idx == 0);
|
|
||||||
num_active_spatial_layers_ = vp9_header.num_spatial_layers;
|
num_active_spatial_layers_ = vp9_header.num_spatial_layers;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user