]> granicus.if.org Git - libx264/commitdiff
Save a bit of memory with weightp + high bit depth
authorFiona Glaser <fiona@x264.com>
Fri, 12 Nov 2010 06:25:31 +0000 (22:25 -0800)
committerFiona Glaser <fiona@x264.com>
Sun, 14 Nov 2010 06:12:49 +0000 (22:12 -0800)
common/macroblock.c

index 55df8b5c7238c5ec1f600cafdf9c6b447c5464d9..04c480d007584456dc73968793b401816871f693 100644 (file)
@@ -238,7 +238,7 @@ int x264_macroblock_cache_allocate( x264_t *h )
     {
         int i_refs = X264_MIN(X264_REF_MAX, (i ? 1 + !!h->param.i_bframe_pyramid : h->param.i_frame_reference) ) << h->param.b_interlaced;
         if( h->param.analyse.i_weighted_pred == X264_WEIGHTP_SMART )
-            i_refs = X264_MIN(X264_REF_MAX, i_refs + 2); //smart weights add two duplicate frames
+            i_refs = X264_MIN(X264_REF_MAX, i_refs + 1 + (BIT_DEPTH == 8)); //smart weights add two duplicate frames, one in >8-bit
         else if( h->param.analyse.i_weighted_pred == X264_WEIGHTP_BLIND )
             i_refs = X264_MIN(X264_REF_MAX, i_refs + 1); //blind weights add one duplicate frame