ffmpeg | branch: master | James Almer <jamr...@gmail.com> | Sun Sep  2 19:12:52 
2018 -0300| [8e789d244cc946bc350672eeb02453918b21a09f] | committer: James Almer

Merge commit '4ce701b4e640d4723a4005d664f31f8342fac40e'

* commit '4ce701b4e640d4723a4005d664f31f8342fac40e':
  qsvenc: remove vcm option on Linux

Merged-by: James Almer <jamr...@gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8e789d244cc946bc350672eeb02453918b21a09f
---

 libavcodec/qsvenc.h      | 1 -
 libavcodec/qsvenc_h264.c | 3 +++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h
index bb175c5df8..b2d63557ec 100644
--- a/libavcodec/qsvenc.h
+++ b/libavcodec/qsvenc.h
@@ -78,7 +78,6 @@
 { "slow",        NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_3  },    
        INT_MIN, INT_MAX, VE, "preset" },                                       
         \
 { "slower",      NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_2  },    
        INT_MIN, INT_MAX, VE, "preset" },                                       
         \
 { "veryslow",    NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 
MFX_TARGETUSAGE_BEST_QUALITY  }, INT_MIN, INT_MAX, VE, "preset" },              
                                  \
-{ "vcm",      "Use the video conferencing mode ratecontrol",  OFFSET(qsv.vcm), 
     AV_OPT_TYPE_INT, { .i64 = 0  },  0, 1,         VE },                       
         \
 { "rdo",            "Enable rate distortion optimization",    OFFSET(qsv.rdo), 
           AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE },                
         \
 { "max_frame_size", "Maximum encoded frame size in bytes",    
OFFSET(qsv.max_frame_size), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, UINT16_MAX, VE 
},                         \
 { "max_slice_size", "Maximum encoded slice size in bytes",    
OFFSET(qsv.max_slice_size), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, UINT16_MAX, VE 
},                         \
diff --git a/libavcodec/qsvenc_h264.c b/libavcodec/qsvenc_h264.c
index b107b87f34..06fa0ebf06 100644
--- a/libavcodec/qsvenc_h264.c
+++ b/libavcodec/qsvenc_h264.c
@@ -103,6 +103,9 @@ static const AVOption options[] = {
     QSV_COMMON_OPTS
 
     { "cavlc",          "Enable CAVLC",                           
OFFSET(qsv.cavlc),          AV_OPT_TYPE_INT, { .i64 = 0 },   0,          1, VE 
},
+#if QSV_HAVE_VCM
+    { "vcm",      "Use the video conferencing mode ratecontrol",  
OFFSET(qsv.vcm),      AV_OPT_TYPE_INT, { .i64 = 0  },  0, 1,         VE },
+#endif
     { "idr_interval", "Distance (in I-frames) between IDR frames", 
OFFSET(qsv.idr_interval), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },
     { "pic_timing_sei",    "Insert picture timing SEI with pic_struct_syntax 
element", OFFSET(qsv.pic_timing_sei), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, VE },
     { "single_sei_nal_unit",    "Put all the SEI messages into one NALU",      
  OFFSET(qsv.single_sei_nal_unit),     AV_OPT_TYPE_INT, { .i64 = -1 }, -1,      
    1, VE },


======================================================================

diff --cc libavcodec/qsvenc.h
index bb175c5df8,bac172f941..b2d63557ec
--- a/libavcodec/qsvenc.h
+++ b/libavcodec/qsvenc.h
@@@ -67,30 -66,31 +67,29 @@@
  #endif
  
  #define QSV_COMMON_OPTS \
 -{ "async_depth", "Maximum processing parallelism", OFFSET(qsv.async_depth), 
AV_OPT_TYPE_INT, { .i64 = ASYNC_DEPTH_DEFAULT }, 0, INT_MAX, VE },  \
 -{ "avbr_accuracy",    "Accuracy of the AVBR ratecontrol",    
OFFSET(qsv.avbr_accuracy),    AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },  
   \
 -{ "avbr_convergence", "Convergence of the AVBR ratecontrol", 
OFFSET(qsv.avbr_convergence), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },  
   \
 -{ "preset", NULL, OFFSET(qsv.preset), AV_OPT_TYPE_INT, { .i64 = 
MFX_TARGETUSAGE_BALANCED }, 0, 7,   VE, "preset" },                             
\
 -{ "fast",   NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_BEST_SPEED  
},   INT_MIN, INT_MAX, VE, "preset" },                             \
 -{ "medium", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_BALANCED  }, 
    INT_MIN, INT_MAX, VE, "preset" },                             \
 -{ "slow",   NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_BEST_QUALITY 
 }, INT_MIN, INT_MAX, VE, "preset" },                             \
 -{ "la_depth", "Number of frames to analyze before encoding.", 
OFFSET(qsv.la_depth), AV_OPT_TYPE_INT, { .i64 = 9 },   9, 100, VE, "la_depth" 
},  \
 -{ "unset", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 9 }, INT_MIN, INT_MAX,        
                                               VE, "la_depth" },  \
 -{ "la_ds", "Downscaling factor for the frames saved for the lookahead 
analysis", OFFSET(qsv.la_ds), AV_OPT_TYPE_INT,                            \
 -                    { .i64 = MFX_LOOKAHEAD_DS_UNKNOWN }, 
MFX_LOOKAHEAD_DS_UNKNOWN, MFX_LOOKAHEAD_DS_4x, VE, "la_ds" },                   
       \
 -{ "auto", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_LOOKAHEAD_DS_UNKNOWN }, 
INT_MIN, INT_MAX,                                     VE, "la_ds" }, \
 -{ "off", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_LOOKAHEAD_DS_OFF }, 
INT_MIN, INT_MAX,                                          VE, "la_ds" }, \
 -{ "2x", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_LOOKAHEAD_DS_2x }, INT_MIN, 
INT_MAX,                                            VE, "la_ds" }, \
 -{ "4x", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_LOOKAHEAD_DS_4x }, INT_MIN, 
INT_MAX,                                            VE, "la_ds" }, \
 -{ "rdo",            "Enable rate distortion optimization",    
OFFSET(qsv.rdo),            AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
}, \
 -{ "max_frame_size", "Maximum encoded frame size in bytes",    
OFFSET(qsv.max_frame_size), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, UINT16_MAX, VE 
}, \
 -{ "max_slice_size", "Maximum encoded slice size in bytes",    
OFFSET(qsv.max_slice_size), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, UINT16_MAX, VE 
}, \
 -{ "bitrate_limit",  "Toggle bitrate limitations",             
OFFSET(qsv.bitrate_limit),  AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
}, \
 -{ "mbbrc",          "MB level bitrate control",               
OFFSET(qsv.mbbrc),          AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
}, \
 -{ "extbrc",         "Extended bitrate control",               
OFFSET(qsv.extbrc),         AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
}, \
 -{ "adaptive_i",     "Adaptive I-frame placement",             
OFFSET(qsv.adaptive_i),     AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
}, \
 -{ "adaptive_b",     "Adaptive B-frame placement",             
OFFSET(qsv.adaptive_b),     AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
}, \
 -{ "b_strategy",     "Strategy to choose between I/P/B-frames", 
OFFSET(qsv.b_strategy),    AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE },
 -
 +{ "async_depth", "Maximum processing parallelism", OFFSET(qsv.async_depth), 
AV_OPT_TYPE_INT, { .i64 = ASYNC_DEPTH_DEFAULT }, 0, INT_MAX, VE },              
            \
 +{ "avbr_accuracy",    "Accuracy of the AVBR ratecontrol",    
OFFSET(qsv.avbr_accuracy),    AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },  
                           \
 +{ "avbr_convergence", "Convergence of the AVBR ratecontrol", 
OFFSET(qsv.avbr_convergence), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },  
                           \
 +{ "preset", NULL, OFFSET(qsv.preset), AV_OPT_TYPE_INT, { .i64 = 
MFX_TARGETUSAGE_BALANCED }, MFX_TARGETUSAGE_BEST_QUALITY, 
MFX_TARGETUSAGE_BEST_SPEED,   VE, "preset" }, \
 +{ "veryfast",    NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 
MFX_TARGETUSAGE_BEST_SPEED  },   INT_MIN, INT_MAX, VE, "preset" },              
                                  \
 +{ "faster",      NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_6  },   
         INT_MIN, INT_MAX, VE, "preset" },                                      
          \
 +{ "fast",        NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_5  },   
         INT_MIN, INT_MAX, VE, "preset" },                                      
          \
 +{ "medium",      NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 
MFX_TARGETUSAGE_BALANCED  },     INT_MIN, INT_MAX, VE, "preset" },              
                                  \
 +{ "slow",        NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_3  },   
         INT_MIN, INT_MAX, VE, "preset" },                                      
          \
 +{ "slower",      NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_TARGETUSAGE_2  },   
         INT_MIN, INT_MAX, VE, "preset" },                                      
          \
 +{ "veryslow",    NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 
MFX_TARGETUSAGE_BEST_QUALITY  }, INT_MIN, INT_MAX, VE, "preset" },              
                                  \
- { "vcm",      "Use the video conferencing mode ratecontrol",  
OFFSET(qsv.vcm),      AV_OPT_TYPE_INT, { .i64 = 0  },  0, 1,         VE },      
                          \
 +{ "rdo",            "Enable rate distortion optimization",    
OFFSET(qsv.rdo),            AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
},                         \
 +{ "max_frame_size", "Maximum encoded frame size in bytes",    
OFFSET(qsv.max_frame_size), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, UINT16_MAX, VE 
},                         \
 +{ "max_slice_size", "Maximum encoded slice size in bytes",    
OFFSET(qsv.max_slice_size), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, UINT16_MAX, VE 
},                         \
 +{ "bitrate_limit",  "Toggle bitrate limitations",             
OFFSET(qsv.bitrate_limit),  AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
},                         \
 +{ "mbbrc",          "MB level bitrate control",               
OFFSET(qsv.mbbrc),          AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
},                         \
 +{ "extbrc",         "Extended bitrate control",               
OFFSET(qsv.extbrc),         AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
},                         \
 +{ "adaptive_i",     "Adaptive I-frame placement",             
OFFSET(qsv.adaptive_i),     AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
},                         \
 +{ "adaptive_b",     "Adaptive B-frame placement",             
OFFSET(qsv.adaptive_b),     AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
},                         \
 +{ "b_strategy",     "Strategy to choose between I/P/B-frames", 
OFFSET(qsv.b_strategy),    AV_OPT_TYPE_INT, { .i64 = -1 }, -1,          1, VE 
},                         \
 +
 +typedef int SetEncodeCtrlCB (AVCodecContext *avctx,
 +                             const AVFrame *frame, mfxEncodeCtrl* enc_ctrl);
  typedef struct QSVEncContext {
      AVCodecContext *avctx;
  
diff --cc libavcodec/qsvenc_h264.c
index b107b87f34,2b9401ff99..06fa0ebf06
--- a/libavcodec/qsvenc_h264.c
+++ b/libavcodec/qsvenc_h264.c
@@@ -103,8 -68,10 +103,11 @@@ static const AVOption options[] = 
      QSV_COMMON_OPTS
  
      { "cavlc",          "Enable CAVLC",                           
OFFSET(qsv.cavlc),          AV_OPT_TYPE_INT, { .i64 = 0 },   0,          1, VE 
},
+ #if QSV_HAVE_VCM
+     { "vcm",      "Use the video conferencing mode ratecontrol",  
OFFSET(qsv.vcm),      AV_OPT_TYPE_INT, { .i64 = 0  },  0, 1,         VE },
+ #endif
      { "idr_interval", "Distance (in I-frames) between IDR frames", 
OFFSET(qsv.idr_interval), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },
 +    { "pic_timing_sei",    "Insert picture timing SEI with pic_struct_syntax 
element", OFFSET(qsv.pic_timing_sei), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, VE },
      { "single_sei_nal_unit",    "Put all the SEI messages into one NALU",     
   OFFSET(qsv.single_sei_nal_unit),     AV_OPT_TYPE_INT, { .i64 = -1 }, -1,     
     1, VE },
      { "max_dec_frame_buffering", "Maximum number of frames buffered in the 
DPB", OFFSET(qsv.max_dec_frame_buffering), AV_OPT_TYPE_INT, { .i64 = 0 },   0, 
UINT16_MAX, VE },
  

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

Reply via email to