Fix av1_refs_are_one_sided
av1_refs_are_one_sided() was using get_relative_dist()
which would give incorrect distance when very old frame
is used as a reference. This CL will fix the issue by
replacing it with av1_encoder_get_relative_dist().
Since, av1_refs_are_one_sided() is used only in the
encoder, it would not cause any compliance issues.
STATS_CHANGED
Change-Id: I553fb0a44e4b384492870d22395fa1e48c39e248
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index 06f6444..0b62a12 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -4491,9 +4491,10 @@
const RefCntBuffer *const buf = get_ref_frame_buf(cm, ref);
if (buf == NULL) continue;
- const int ref_order_hint = buf->order_hint;
- if (get_relative_dist(&cm->seq_params.order_hint_info, ref_order_hint,
- (int)cm->current_frame.order_hint) > 0) {
+ const int ref_display_order_hint = buf->display_order_hint;
+ if (av1_encoder_get_relative_dist(
+ &cm->seq_params.order_hint_info, ref_display_order_hint,
+ (int)cm->current_frame.display_order_hint) > 0) {
one_sided_refs = 0; // bwd reference
break;
}