rtc: Fix to svc patterns in fixed svc mode.

For fixed svc mode: the reference update was
done incorrectly for TL1, which was giving
wrong pattern for 2TL with #SL=2 or 3.

The refresh was only happening on TL1 frame
if #TL=3. But it should also happen if
spatial_layer_id < number_spatial_layers - 1,
as that updated reference slot is then used
for inter-layer prediction on upper spatial layer.

Change-Id: I07a335d9193dee67e55d6e90156e4ce06f734ad1
diff --git a/av1/encoder/svc_layercontext.c b/av1/encoder/svc_layercontext.c
index 85678dc..ada804f 100644
--- a/av1/encoder/svc_layercontext.c
+++ b/av1/encoder/svc_layercontext.c
@@ -499,7 +499,8 @@
       // Set all buffer_idx to 0.
       // Set GOLDEN to slot 5 and update slot 5.
       for (i = 0; i < INTER_REFS_PER_FRAME; i++) rtc_ref->ref_idx[i] = 0;
-      if (svc->temporal_layer_id < svc->number_temporal_layers - 1) {
+      if (svc->temporal_layer_id < svc->number_temporal_layers - 1 ||
+          svc->spatial_layer_id < svc->number_spatial_layers - 1) {
         rtc_ref->ref_idx[SVC_GOLDEN_FRAME] = 5;
         rtc_ref->refresh[5] = 1;
       }
@@ -509,7 +510,8 @@
       // Set LAST3 to slot 6 and update slot 6.
       for (i = 0; i < INTER_REFS_PER_FRAME; i++) rtc_ref->ref_idx[i] = 5;
       rtc_ref->ref_idx[SVC_LAST_FRAME] = 1;
-      if (svc->temporal_layer_id < svc->number_temporal_layers - 1) {
+      if (svc->temporal_layer_id < svc->number_temporal_layers - 1 ||
+          svc->spatial_layer_id < svc->number_spatial_layers - 1) {
         rtc_ref->ref_idx[SVC_LAST3_FRAME] = 6;
         rtc_ref->refresh[6] = 1;
       }