Commit 5e85fd9f authored by Andrew Wason's avatar Andrew Wason Committed by Michael Niedermayer

libx264: fix overwriting presets with flags2

This fixes overwriting x264 preset settings for flags2 based options.
See https://ffmpeg.org/trac/ffmpeg/ticket/448
parent 6c9a2463
...@@ -358,16 +358,18 @@ static av_cold int X264_init(AVCodecContext *avctx) ...@@ -358,16 +358,18 @@ static av_cold int X264_init(AVCodecContext *avctx)
if (avctx->partitions & X264_PART_B8X8) if (avctx->partitions & X264_PART_B8X8)
x4->params.analyse.inter |= X264_ANALYSE_BSUB16x16; x4->params.analyse.inter |= X264_ANALYSE_BSUB16x16;
} }
x4->params.analyse.b_ssim = avctx->flags2 & CODEC_FLAG2_SSIM; if (avctx->flags2) {
x4->params.b_intra_refresh = avctx->flags2 & CODEC_FLAG2_INTRA_REFRESH; x4->params.analyse.b_ssim = avctx->flags2 & CODEC_FLAG2_SSIM;
x4->params.i_bframe_pyramid = avctx->flags2 & CODEC_FLAG2_BPYRAMID ? X264_B_PYRAMID_NORMAL : X264_B_PYRAMID_NONE; x4->params.b_intra_refresh = avctx->flags2 & CODEC_FLAG2_INTRA_REFRESH;
x4->params.analyse.b_weighted_bipred = avctx->flags2 & CODEC_FLAG2_WPRED; x4->params.i_bframe_pyramid = avctx->flags2 & CODEC_FLAG2_BPYRAMID ? X264_B_PYRAMID_NORMAL : X264_B_PYRAMID_NONE;
x4->params.analyse.b_mixed_references = avctx->flags2 & CODEC_FLAG2_MIXED_REFS; x4->params.analyse.b_weighted_bipred = avctx->flags2 & CODEC_FLAG2_WPRED;
x4->params.analyse.b_transform_8x8 = avctx->flags2 & CODEC_FLAG2_8X8DCT; x4->params.analyse.b_mixed_references = avctx->flags2 & CODEC_FLAG2_MIXED_REFS;
x4->params.analyse.b_fast_pskip = avctx->flags2 & CODEC_FLAG2_FASTPSKIP; x4->params.analyse.b_transform_8x8 = avctx->flags2 & CODEC_FLAG2_8X8DCT;
x4->params.b_aud = avctx->flags2 & CODEC_FLAG2_AUD; x4->params.analyse.b_fast_pskip = avctx->flags2 & CODEC_FLAG2_FASTPSKIP;
x4->params.analyse.b_psy = avctx->flags2 & CODEC_FLAG2_PSY; x4->params.b_aud = avctx->flags2 & CODEC_FLAG2_AUD;
x4->params.rc.b_mb_tree = !!(avctx->flags2 & CODEC_FLAG2_MBTREE); x4->params.analyse.b_psy = avctx->flags2 & CODEC_FLAG2_PSY;
x4->params.rc.b_mb_tree = !!(avctx->flags2 & CODEC_FLAG2_MBTREE);
}
#endif #endif
if (avctx->me_method == ME_EPZS) if (avctx->me_method == ME_EPZS)
...@@ -578,6 +580,7 @@ static const AVClass class = { ...@@ -578,6 +580,7 @@ static const AVClass class = {
static const AVCodecDefault x264_defaults[] = { static const AVCodecDefault x264_defaults[] = {
{ "b", "0" }, { "b", "0" },
{ "bf", "-1" }, { "bf", "-1" },
{ "flags2", "0" },
{ "g", "-1" }, { "g", "-1" },
{ "qmin", "-1" }, { "qmin", "-1" },
{ "qmax", "-1" }, { "qmax", "-1" },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment