summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/encoders.texi4
-rw-r--r--libavcodec/libx264.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/doc/encoders.texi b/doc/encoders.texi
index 727549f1b1..585eae67c9 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -1079,6 +1079,10 @@ Enable calculation and printing SSIM stats after the encoding.
Enable the use of Periodic Intra Refresh instead of IDR frames when set
to 1.
+@item bluray-compat (@emph{bluray-compat})
+Configure the encoder to be compatible with the bluray standard.
+It is a shorthand for setting "bluray-compat=1 force-cfr=1".
+
@item b-bias (@emph{b-bias})
Set the influence on how often B-frames are used.
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 553c57ee46..ea7e905a85 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -64,6 +64,7 @@ typedef struct X264Context {
int weightb;
int ssim;
int intra_refresh;
+ int bluray_compat;
int b_bias;
int b_pyramid;
int mixed_refs;
@@ -433,6 +434,10 @@ static av_cold int X264_init(AVCodecContext *avctx)
x4->params.analyse.b_ssim = x4->ssim;
if (x4->intra_refresh >= 0)
x4->params.b_intra_refresh = x4->intra_refresh;
+ if (x4->bluray_compat >= 0) {
+ x4->params.b_bluray_compat = x4->bluray_compat;
+ x4->params.b_vfr_input = 0;
+ }
if (x4->b_bias != INT_MIN)
x4->params.i_bframe_bias = x4->b_bias;
if (x4->b_pyramid >= 0)
@@ -651,6 +656,7 @@ static const AVOption options[] = {
{ "smart", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = X264_WEIGHTP_SMART}, INT_MIN, INT_MAX, VE, "weightp" },
{ "ssim", "Calculate and print SSIM stats.", OFFSET(ssim), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE },
{ "intra-refresh", "Use Periodic Intra Refresh instead of IDR frames.",OFFSET(intra_refresh),AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE },
+ { "bluray-compat", "Bluray compatibility workarounds.", OFFSET(bluray_compat) ,AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE },
{ "b-bias", "Influences how often B-frames are used", OFFSET(b_bias), AV_OPT_TYPE_INT, { .i64 = INT_MIN}, INT_MIN, INT_MAX, VE },
{ "b-pyramid", "Keep some B-frames as references.", OFFSET(b_pyramid), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, VE, "b_pyramid" },
{ "none", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = X264_B_PYRAMID_NONE}, INT_MIN, INT_MAX, VE, "b_pyramid" },