]> granicus.if.org Git - libvpx/commitdiff
don't dummy pack if we won't recode
authorJim Bankoski <jimbankoski@google.com>
Wed, 15 Jan 2014 23:30:13 +0000 (15:30 -0800)
committerJim Bankoski <jimbankoski@google.com>
Wed, 15 Jan 2014 23:30:13 +0000 (15:30 -0800)
Avoid packing the bitstream 2 times unless we need to.  For me this
at speed -5 was a 2% speed up.

Change-Id: I32205c98f55eedd4ff031ed5fb498c84bdaa855d

vp9/encoder/vp9_onyx_if.c

index 3af950548452146baafc4d24aea4781679c9ef5c..ac33e661991d748bb4108bc855b48d3ce3858450 100644 (file)
@@ -2681,14 +2681,16 @@ static void encode_with_recode_loop(VP9_COMP *cpi,
     // Dummy pack of the bitstream using up to date stats to get an
     // accurate estimate of output frame size to determine if we need
     // to recode.
-    vp9_save_coding_context(cpi);
-    cpi->dummy_packing = 1;
-    vp9_pack_bitstream(cpi, dest, size);
-    cpi->rc.projected_frame_size = (*size) << 3;
-    vp9_restore_coding_context(cpi);
-
-    if (frame_over_shoot_limit == 0)
-      frame_over_shoot_limit = 1;
+    if (cpi->sf.recode_loop != 0) {
+      vp9_save_coding_context(cpi);
+      cpi->dummy_packing = 1;
+      vp9_pack_bitstream(cpi, dest, size);
+      cpi->rc.projected_frame_size = (*size) << 3;
+      vp9_restore_coding_context(cpi);
+
+      if (frame_over_shoot_limit == 0)
+        frame_over_shoot_limit = 1;
+    }
 
     if (cpi->oxcf.end_usage == USAGE_CONSTANT_QUALITY) {
       loop = 0;