From e803dbe2108a4fcacb792bf3097bed7e3d94d3d4 Mon Sep 17 00:00:00 2001 From: Sergey Silkin Date: Tue, 3 Apr 2018 14:13:04 +0200 Subject: [PATCH] Turn off per-layer frame dropping. Per-layer frame dropping was recently implemented in VP9 SVC encoder and set as default mode. This disables per-layer frame dropping in WebRTC VP9 encoder wrapper since receiver (jitter buffer) can't handle such drops yet. Bug: none Change-Id: Iad5491abf1e3fc1bccfe44eb7276ff6363176029 Reviewed-on: https://webrtc-review.googlesource.com/66460 Reviewed-by: Marco Paniconi Reviewed-by: Rasmus Brandt Commit-Queue: Sergey Silkin Cr-Commit-Position: refs/heads/master@{#22721} --- modules/video_coding/codecs/vp9/vp9_impl.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/video_coding/codecs/vp9/vp9_impl.cc b/modules/video_coding/codecs/vp9/vp9_impl.cc index 600993aa7d..e329536a60 100644 --- a/modules/video_coding/codecs/vp9/vp9_impl.cc +++ b/modules/video_coding/codecs/vp9/vp9_impl.cc @@ -487,6 +487,15 @@ int VP9EncoderImpl::InitAndSetControlSettings(const VideoCodec* inst) { } // Enable encoder skip of static/low content blocks. vpx_codec_control(encoder_, VP8E_SET_STATIC_THRESHOLD, 1); + + // Turn off per-layer frame dropping. + vpx_svc_frame_drop_t svc_frame_drop; + svc_frame_drop.framedrop_mode = CONSTRAINED_LAYER_DROP; + for (size_t sl_idx = 0; sl_idx < num_spatial_layers_; ++sl_idx) { + svc_frame_drop.framedrop_thresh[sl_idx] = config_->rc_dropframe_thresh; + } + vpx_codec_control(encoder_, VP9E_SET_SVC_FRAME_DROP_LAYER, &svc_frame_drop); + inited_ = true; return WEBRTC_VIDEO_CODEC_OK; }