[NORMATIVE] Use the primary reference frame as prev_frame Previously LAST_FRAME was used. BUG=aomedia:1589 Change-Id: I5358e81406afeda4b56de41e55c9c1ab104ec6c4
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c index c5b513f..70b20ff 100644 --- a/av1/encoder/bitstream.c +++ b/av1/encoder/bitstream.c
@@ -2928,8 +2928,9 @@ int frame; for (frame = LAST_FRAME; frame <= ALTREF_FRAME; ++frame) { const WarpedMotionParams *ref_params = - cm->error_resilient_mode ? &default_warp_params - : &cm->prev_frame->global_motion[frame]; + (cm->error_resilient_mode || cm->prev_frame == NULL) + ? &default_warp_params + : &cm->prev_frame->global_motion[frame]; write_global_motion_params(&cm->global_motion[frame], ref_params, wb, cm->allow_high_precision_mv); // TODO(sarahparker, debargha): The logic in the commented out code below @@ -3086,6 +3087,10 @@ } #endif + if (!cm->error_resilient_mode && !frame_is_intra_only(cm)) { + aom_wb_write_literal(wb, cm->primary_ref_frame, PRIMARY_REF_BITS); + } + if (cm->frame_type == KEY_FRAME) { write_frame_size(cm, frame_size_override_flag, wb); assert(av1_superres_unscaled(cm) || @@ -3243,9 +3248,7 @@ aom_wb_write_bit( wb, cm->refresh_frame_context == REFRESH_FRAME_CONTEXT_DISABLED); } - if (!cm->error_resilient_mode && !frame_is_intra_only(cm)) { - aom_wb_write_literal(wb, cm->primary_ref_frame, PRIMARY_REF_BITS); - } + #if CONFIG_TILE_INFO_FIRST write_tile_info(cm, saved_wb, wb); #endif // CONFIG_TILE_INFO_FIRST