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
diff --git a/av1/encoder/encoder.c b/av1/encoder/encoder.c index 156febf..c3c7345 100644 --- a/av1/encoder/encoder.c +++ b/av1/encoder/encoder.c
@@ -3553,6 +3553,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;