svc: label only base spatial as key
Change-Id: I217ed783f393566fd4e46bce99fc36bcd3abcb08
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index 4764ed5..d3c1460 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -2588,15 +2588,8 @@
static aom_codec_frame_flags_t get_frame_pkt_flags(const AV1_COMP *cpi,
unsigned int lib_flags) {
- const SVC *const svc = &cpi->svc;
aom_codec_frame_flags_t flags = lib_flags << 16;
-
- if (lib_flags & FRAMEFLAGS_KEY ||
- (cpi->ppi->use_svc &&
- svc->layer_context[svc->spatial_layer_id * svc->number_temporal_layers +
- svc->temporal_layer_id]
- .is_key_frame))
- flags |= AOM_FRAME_IS_KEY;
+ if (lib_flags & FRAMEFLAGS_KEY) flags |= AOM_FRAME_IS_KEY;
if (lib_flags & FRAMEFLAGS_INTRAONLY) flags |= AOM_FRAME_IS_INTRAONLY;
if (lib_flags & FRAMEFLAGS_SWITCH) flags |= AOM_FRAME_IS_SWITCH;
if (lib_flags & FRAMEFLAGS_ERROR_RESILIENT)
diff --git a/examples/svc_encoder_rtc.c b/examples/svc_encoder_rtc.c
index e2da3ae..eb8dda4 100644
--- a/examples/svc_encoder_rtc.c
+++ b/examples/svc_encoder_rtc.c
@@ -1299,13 +1299,12 @@
while (frame_avail || got_data) {
struct aom_usec_timer timer;
frame_avail = read_frame(&(app_input.input_ctx), &raw);
- int is_key_frame = (frame_cnt % cfg.kf_max_dist) == 0;
// Loop over spatial layers.
for (unsigned int slx = 0; slx < ss_number_layers; slx++) {
aom_codec_iter_t iter = NULL;
const aom_codec_cx_pkt_t *pkt;
int layer = 0;
-
+ int is_key_frame = (frame_cnt % cfg.kf_max_dist) == 0 && slx == 0;
// For flexible mode:
if (app_input.layering_mode >= 0) {
// Set the reference/update flags, layer_id, and reference_map