vp9-RC: Add drop_frame support to external RC
authorMarco Paniconi <marpan@google.com>
Tue, 24 Oct 2023 18:03:56 +0000 (11:03 -0700)
committerMarco Paniconi <marpan@google.com>
Tue, 31 Oct 2023 16:34:42 +0000 (09:34 -0700)
commit0d3ef6ffd22bda0ba1ec1bf9c7a24852e4a1d111
treef77268ffabba80754e11dcb035f54451162982db
parentcab1f4b9b24fd4138c6e86c571e088de2924a544
vp9-RC: Add drop_frame support to external RC

Supports single layer and svc. For svc only the
framedrop_mode = FULL_SUPERFRAME_DROP is allowed
for now.

Dropping frames due to overshoot is enabled by the
oxcf->drop_frames_water_mark, which is zero as default.
Note that this CL also allows for drop/skip encoding of
enhancement layers if that layer bitrate is zero.

max_consec_drop is also added, set to INT_MAX as default.
Note that max_consec_drop is only used for svc mode.
It has not been added yet for single layer in libvpx encoder.

Tests added for single layer and svc case.

Change-Id: Ic12f6a0eb3fbf07d8eb8456c46cec27b2e1930d3
test/vp9_ratectrl_rtc_test.cc
vp9/encoder/vp9_encoder.c
vp9/encoder/vp9_ratectrl.c
vp9/encoder/vp9_ratectrl.h
vp9/encoder/vp9_svc_layercontext.c
vp9/encoder/vp9_svc_layercontext.h
vp9/ratectrl_rtc.cc
vp9/ratectrl_rtc.h
vpx/internal/vpx_ratectrl_rtc.h