svc_encoder_rtc: Fix control logic for error_resilience
Fix the condition for usage of the control,
add more comment.
Change-Id: I6737241a23ff0bab4ba959c608adf30a150268b9
diff --git a/examples/svc_encoder_rtc.c b/examples/svc_encoder_rtc.c
index 0084233..40e29b9 100644
--- a/examples/svc_encoder_rtc.c
+++ b/examples/svc_encoder_rtc.c
@@ -1538,11 +1538,16 @@
aom_codec_control(&codec, AV1E_SET_SVC_LAYER_ID, &layer_id);
}
- if (set_err_resil_frame) {
+ if (set_err_resil_frame && cfg.g_error_resilient == 0) {
// Set error_resilient per frame: off/0 for base layer and
// on/1 for enhancement layer frames.
- int err_resil_mode =
- (layer_id.spatial_layer_id > 0 || layer_id.temporal_layer_id > 0);
+ // Note that this is can only be done on the fly/per-frame/layer
+ // if the config error_resilience is off/0. See the logic for updating
+ // in set_encoder_config():
+ // tool_cfg->error_resilient_mode =
+ // cfg->g_error_resilient | extra_cfg->error_resilient_mode;
+ const int err_resil_mode =
+ layer_id.spatial_layer_id > 0 || layer_id.temporal_layer_id > 0;
aom_codec_control(&codec, AV1E_SET_ERROR_RESILIENT_MODE,
err_resil_mode);
}