Set cur_frame_force_integer_mv in MACROBLOCKD The current code sets this in encode_sb_row(). But in case of row-mt, the 'xd' instance in encode_sb_row() and the 'xd' instance in write_tile_obut() are different. So to get the right behavior, we would have to set the value here as well. This fixes a bug where row-mt produces invalid bitstream sometimes. BUG=aomedia:3325 Change-Id: Ibeb8d507c985d5e2ce6059eeb6d3202bdb57161a (cherry picked from commit 0bfc125711a3f373f0841288c5be30d2df73bb95)
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c index ef4cd7d..3dfe0cf 100644 --- a/av1/encoder/encoder.c +++ b/av1/encoder/encoder.c
@@ -3493,6 +3493,11 @@ cpi->common.features.cur_frame_force_integer_mv = 0; } + // This is used by av1_pack_bitstream. So this needs to be set in case of + // row-mt where the encoding code will use a temporary structure. + cpi->td.mb.e_mbd.cur_frame_force_integer_mv = + cpi->common.features.cur_frame_force_integer_mv; + // Set default state for segment based loop filter update flags. cm->lf.mode_ref_delta_update = 0;