mismatch_psnr_ += mismatch_psnr;
++mismatch_nframes_;
// std::cout << "Mismatch frame psnr: " << mismatch_psnr << "\n";
+ ASSERT_TRUE(0) << "Encode/Decode mismatch found";
}
void SetErrorFrames(int num, unsigned int *list) {
VP9_LAST4_FLAG = 1 << 3,
VP9_GOLD_FLAG = 1 << 4,
VP9_ALT_FLAG = 1 << 5,
+ VP9_REFFRAME_ALL = (1 << 6) - 1
#else
VP9_GOLD_FLAG = 1 << 1,
VP9_ALT_FLAG = 1 << 2,
+ VP9_REFFRAME_ALL = (1 << 3) - 1
#endif // CONFIG_EXT_REFS
} VP9_REFFRAME;
void vp10_apply_encoding_flags(VP10_COMP *cpi, vpx_enc_frame_flags_t flags) {
if (flags & (VP8_EFLAG_NO_REF_LAST | VP8_EFLAG_NO_REF_GF |
VP8_EFLAG_NO_REF_ARF)) {
- int ref = 7;
+ int ref = VP9_REFFRAME_ALL;
- if (flags & VP8_EFLAG_NO_REF_LAST)
+ if (flags & VP8_EFLAG_NO_REF_LAST) {
ref ^= VP9_LAST_FLAG;
+#if CONFIG_EXT_REFS
+ ref ^= VP9_LAST2_FLAG;
+ ref ^= VP9_LAST3_FLAG;
+ ref ^= VP9_LAST4_FLAG;
+#endif // CONFIG_EXT_REFS
+ }
if (flags & VP8_EFLAG_NO_REF_GF)
ref ^= VP9_GOLD_FLAG;
if (flags & (VP8_EFLAG_NO_UPD_LAST | VP8_EFLAG_NO_UPD_GF |
VP8_EFLAG_NO_UPD_ARF | VP8_EFLAG_FORCE_GF |
VP8_EFLAG_FORCE_ARF)) {
- int upd = 7;
+ int upd = VP9_REFFRAME_ALL;
- if (flags & VP8_EFLAG_NO_UPD_LAST)
+ if (flags & VP8_EFLAG_NO_UPD_LAST) {
upd ^= VP9_LAST_FLAG;
+#if CONFIG_EXT_REFS
+ upd ^= VP9_LAST2_FLAG;
+ upd ^= VP9_LAST3_FLAG;
+ upd ^= VP9_LAST4_FLAG;
+#endif // CONFIG_EXT_REFS
+ }
if (flags & VP8_EFLAG_NO_UPD_GF)
upd ^= VP9_GOLD_FLAG;