]> granicus.if.org Git - libvpx/commitdiff
Reset the cyclic_refresh_mode_index to 0 on resize.
authorMarco Paniconi <marpan@google.com>
Wed, 26 Sep 2012 22:42:36 +0000 (15:42 -0700)
committerMarco Paniconi <marpan@google.com>
Wed, 26 Sep 2012 22:46:51 +0000 (15:46 -0700)
On an internal spatial resize, this mode index was not reset to 0,
and therefore could exceed dimensions of seg_map or cyclic_refresh_map.

Change-Id: I6fe85dbd2765eb0207a9d9f71fda8d8b8c34f075

vp8/encoder/onyx_if.c

index 87092ef0748ce475de393f8b4242e813c5859941..1278b240162e805b5da302c9310e8c296a0abd5f 100644 (file)
@@ -467,6 +467,7 @@ static void cyclic_background_refresh(VP8_COMP *cpi, int Q, int lf_adjustment)
         /* Cycle through the macro_block rows */
         /* MB loop to set local segmentation map */
         i = cpi->cyclic_refresh_mode_index;
+        assert(i < mbs_in_frame);
         do
         {
           /* If the MB is as a candidate for clean up then mark it for
@@ -3915,6 +3916,7 @@ static void encode_frame_to_data_rate
               Q = vp8_regulate_q(cpi, cpi->this_frame_target);
               if (cpi->cyclic_refresh_mode_enabled)
               {
+                cpi->cyclic_refresh_mode_index = 0;
                 if (cpi->current_layer==0)
                   cyclic_background_refresh(cpi, Q, 0);
                 else