shithub: libvpx

Download patch

ref: 1e2ab6ace0780d17320e0fcd7d05941fc2298868
parent: e5f7139951a0bf3cccb12ed12419dc85773a67a8
parent: de4e8185e963c0b6c8d5a2bdc8068c01348790f1
author: John Koleszar <jkoleszar@google.com>
date: Wed Dec 29 19:05:08 EST 2010

Merge remote branch 'origin/master' into experimental

Change-Id: Iedf38035a53aa772b947ae39e44e1da473d916ac

--- a/vp8/common/onyxc_int.h
+++ b/vp8/common/onyxc_int.h
@@ -105,7 +105,7 @@
     YV12_BUFFER_CONFIG post_proc_buffer;
     YV12_BUFFER_CONFIG temp_scale_frame;
 
-    FRAME_TYPE last_frame_type;  /* Add to check if vp8_frame_init_loop_filter() can be skipped. */
+    FRAME_TYPE last_frame_type;  /* Save last frame's frame type for loopfilter init checking and motion search. */
     FRAME_TYPE frame_type;
 
     int show_frame;
--- a/vp8/encoder/ethreading.c
+++ b/vp8/encoder/ethreading.c
@@ -310,6 +310,7 @@
     for (i = 0; i < 25; i++)
     {
         z->block[i].quant           = x->block[i].quant;
+        z->block[i].quant_fast      = x->block[i].quant_fast;
         z->block[i].quant_shift     = x->block[i].quant_shift;
         z->block[i].zbin            = x->block[i].zbin;
         z->block[i].zrun_zbin_boost   = x->block[i].zrun_zbin_boost;
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -4340,10 +4340,11 @@
             {
                 vp8cx_set_alt_lf_level(cpi, cm->filter_level);
                 vp8_loop_filter_frame(cm, &cpi->mb.e_mbd, cm->filter_level);
-                cm->last_frame_type = cm->frame_type;
                 cm->last_filter_type = cm->filter_type;
                 cm->last_sharpness_level = cm->sharpness_level;
             }
+            /* Move storing frame_type out of the above loop since it is also needed in motion search besides loopfilter */
+            cm->last_frame_type = cm->frame_type;
 
             vp8_yv12_extend_frame_borders_ptr(cm->frame_to_show);