As for intra-refresh it is just a commodity.
---

Now with documentation, if it builds it is ready to go =P.

 doc/encoders.texi    | 3 +++
 libavcodec/libx264.c | 6 ++++++
 2 files changed, 9 insertions(+)

diff --git a/doc/encoders.texi b/doc/encoders.texi
index 3d9ba75..d6f4bce 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -554,6 +554,9 @@ Possible values:
 Calculate and print SSIM stats.
 @item -intra-refresh @var{integer}
 Use Periodic Intra Refresh instead of IDR frames.
+@item -bluray-compat @var{integer}
+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 @var{integer}
 Influences how often B-frames are used.
 @item -b-pyramid @var{integer}
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index 665b31e..5d0c7a1 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -61,6 +61,7 @@ typedef struct X264Context {
     int weightb;
     int ssim;
     int intra_refresh;
+    int bluray_compat;
     int b_bias;
     int b_pyramid;
     int mixed_refs;
@@ -358,6 +359,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)
@@ -524,6 +529,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" },
--
1.8.3.2

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to