Upstream status: Mailed to libquicktime-devel@sf mailing list on 26/10/2009 Merged on 27/10/2009 Index: plugins/x264/lqt_x264.c =================================================================== RCS file: /cvsroot/libquicktime/libquicktime/plugins/x264/lqt_x264.c,v retrieving revision 1.13 diff -u -B -r1.13 lqt_x264.c --- plugins/x264/lqt_x264.c 6 Dec 2008 14:03:10 -0000 1.13 +++ plugins/x264/lqt_x264.c 26 Oct 2009 11:02:55 -0000 @@ -94,6 +94,17 @@ .val_max = { .val_int = 100 }, .help_string = TRS("Influences how often B-frames are used"), }, +#if X264_BUILD >= 78 + { + .name = "x264_i_bframe_pyramid", + .real_name = TRS("B-frame pyramid"), + .type = LQT_PARAMETER_INT, + .val_default = { .val_int = 0 }, + .val_min = { .val_int = 0 }, + .val_max = { .val_int = 2 }, + .help_string = TRS("Keep some B-frames as references") + }, +#else { .name = "x264_b_bframe_pyramid", .real_name = TRS("B-frame pyramid"), @@ -103,6 +114,7 @@ .val_max = { .val_int = 1 }, .help_string = TRS("Keep some B-frames as references") }, +#endif { .name = "x264_ratecontrol", .real_name = TRS("Ratecontrol"), Index: plugins/x264/x264.c =================================================================== RCS file: /cvsroot/libquicktime/libquicktime/plugins/x264/x264.c,v retrieving revision 1.30 diff -u -B -r1.30 x264.c --- plugins/x264/x264.c 11 Mar 2009 14:25:50 -0000 1.30 +++ plugins/x264/x264.c 26 Oct 2009 11:02:55 -0000 @@ -67,7 +67,11 @@ lqt_dump(" i_bframe: %d\n", params->i_bframe); // 0.. X264_BFRAME_MAX lqt_dump(" b_bframe_adaptive: %d\n", params->b_bframe_adaptive); lqt_dump(" i_bframe_bias: %d\n", params->i_bframe_bias); +#if X264_BUILD >= 78 + lqt_dump(" i_bframe_pyramid: %d\n", params->i_bframe_pyramid); +#else lqt_dump(" b_bframe_pyramid: %d\n", params->b_bframe_pyramid); +#endif lqt_dump(" b_deblocking_filter: %d\n", params->b_deblocking_filter); lqt_dump(" i_deblocking_filter_alphac0: %d\n", params->i_deblocking_filter_alphac0); // -6..6 @@ -174,14 +178,21 @@ { uint8_t *p = buf; int i; +#if X264_BUILD < 76 int s; +#endif for(i = 0; i < nnal; i++) { +#if X264_BUILD >= 76 + memcpy(p, nals[i].p_payload, nals[i].i_payload); + p+=nals[i].i_payload; +#else s = x264_nal_encode(p, &size, 1, nals + i); if(s < 0) return -1; p += s; +#endif } return p - buf; @@ -407,7 +417,11 @@ pic_out.i_pts = 0; /* Encode frames, get nals */ +#if X264_BUILD >= 76 + if(x264_encoder_encode(codec->enc, &nal, &nnal, pic_in, &pic_out)<0) +#else if(x264_encoder_encode(codec->enc, &nal, &nnal, pic_in, &pic_out)) +#endif return 0; /* Encode nals -> get h264 stream */ @@ -782,7 +796,11 @@ ENUMPARAM("x264_i_bframe_adaptive", codec->params.i_bframe_adaptive, bframe_adaptives); #endif INTPARAM("x264_i_bframe_bias", codec->params.i_bframe_bias); +#if X264_BUILD >= 78 + INTPARAM("x264_i_bframe_pyramid", codec->params.i_bframe_pyramid); +#else INTPARAM("x264_b_bframe_pyramid", codec->params.b_bframe_pyramid); +#endif ENUMPARAM("x264_i_rc_method", codec->params.rc.i_rc_method, rc_methods); INTPARAM("x264_i_bitrate", codec->params.rc.i_bitrate);