# HG changeset patch # User lorenm # Date 1109941861 0 # Node ID 68582488a5d6c9c0371e7a1e0886278a292fb68e # Parent 5146c58fcf240b9194fe52792471fc452dfccd08 sync to x264 r150: new option 'b_pyramid' diff -r 5146c58fcf24 -r 68582488a5d6 DOCS/man/en/mplayer.1 --- a/DOCS/man/en/mplayer.1 Fri Mar 04 07:50:55 2005 +0000 +++ b/DOCS/man/en/mplayer.1 Fri Mar 04 13:11:01 2005 +0000 @@ -7660,6 +7660,20 @@ A higher b_bias produces more B-frames. (default: 0) . .TP +.B (no)b_pyramid +Allows B-frames to be used as references for predicting other frames. +For example, consider 3 consecutive B-frames: I0 B1 B2 B3 P4. +Without this option, B-frames follow the same pattern as MPEG-[124]. +So they are coded in the order I0 P4 B1 B2 B3, and all the B-frames +are predicted from I0 and P4. +With this option, they are coded as I0 P4 B2 B1 B3. +B2 is the same as above, but B1 is predicted from I0 and B2, and +B3 is predicted from B2 and P4. +This results in slightly improved compression, at no speed cost. +Requires bframes >= 2. +Disadvantage: increases decoding delay to 2 frames. +. +.TP .B (no)deblock Use deblocking filter (default: on). As it takes very little time compared to its quality gain, it's not diff -r 5146c58fcf24 -r 68582488a5d6 configure --- a/configure Fri Mar 04 07:50:55 2005 +0000 +++ b/configure Fri Mar 04 13:11:01 2005 +0000 @@ -5920,7 +5920,7 @@ #include #include #include -#if X264_BUILD < 0x0013 +#if X264_BUILD < 0x0014 #error We do not support old versions of x264. Get the latest from SVN. #endif int main(void) { x264_encoder_open((void*)0); return 0; } diff -r 5146c58fcf24 -r 68582488a5d6 libmpcodecs/ve_x264.c --- a/libmpcodecs/ve_x264.c Fri Mar 04 07:50:55 2005 +0000 +++ b/libmpcodecs/ve_x264.c Fri Mar 04 13:11:01 2005 +0000 @@ -67,6 +67,7 @@ static int bframe = 0; static int bframe_adaptive = 1; static int bframe_bias = 0; +static int bframe_pyramid = 0; static int deblock = 1; static int deblockalpha = 0; static int deblockbeta = 0; @@ -106,6 +107,8 @@ {"b_adapt", &bframe_adaptive, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"nob_adapt", &bframe_adaptive, CONF_TYPE_FLAG, 0, 1, 0, NULL}, {"b_bias", &bframe_bias, CONF_TYPE_INT, CONF_RANGE, -100, 100, NULL}, + {"b_pyramid", &bframe_pyramid, CONF_TYPE_FLAG, 0, 0, 1, NULL}, + {"nob_pyramid", &bframe_pyramid, CONF_TYPE_FLAG, 0, 1, 0, NULL}, {"deblock", &deblock, CONF_TYPE_FLAG, 0, 0, 1, NULL}, {"nodeblock", &deblock, CONF_TYPE_FLAG, 0, 1, 0, NULL}, {"deblockalpha", &deblockalpha, CONF_TYPE_INT, CONF_RANGE, -6, 6, NULL}, @@ -160,6 +163,7 @@ mod->param.i_bframe = bframe; mod->param.b_bframe_adaptive = bframe_adaptive; mod->param.i_bframe_bias = bframe_bias; + mod->param.b_bframe_pyramid = bframe_pyramid; mod->param.b_deblocking_filter = deblock; mod->param.i_deblocking_filter_alphac0 = deblockalpha; mod->param.i_deblocking_filter_beta = deblockbeta;